星期四, 十月 11, 2012

HP Compaq pro 4300 SFF OEM 激活机制研究


Windows 7的OEM激活是微软给OEM厂商提供的一种可以量产化的激活方式,详细的基本原理可以参考BIOS之家的相关文章。厂商一般根据自己的情况实现OEM激活的具体方式,HP Pro 4300 SFF的BIOS全部自带SLIC 2.1,但是预装Windows的型号SLIC 2.1在ACPI表中是可见的,而无Windows预装的则不可见,也就不能实现安装HP版本Windows的自动激活。根据BIOS之家和其它网站的文章看,是HP在BIOS中设置了标记,程序根据标记决定是否在ACPI表中导出SLIC信息,在HP台式机中,这个标记是feature byte,本本不详。这个标记是可以用程序设置的,笔记本使用HP SLP Tools设置,而台式机则根据BIOS版本不同,设置方式不同。
根据hpfocus网站的信息,5.0以前的BIOS需要使用dmi503工具设置,6.0版本的开机用Ctrl+F10进入可以设置,而7.0的则是进入BIOS后通过Ctrl+A进入工程模式然后在Security->System IDs项目中设置。Pro 4300 sff的版本是7.0的,但是进入工程模式后发现feature byte不可写。Google之,在scribd上的文章里看到说feature byte只有当BIOS中type 11信息无效时才可写,否则只读。进一步Google看到Type 11信息是OEM String,Pro 4300 SFF使用的AMI BIOS可以使用amidebios.exe读写此信息。
使用amidebios /os命令打开oem string(type 11),可以看到实际上就是feature byte和BID合成的字符串。使用amidebios /os 1 ""和amidebios /os 2 ""将老信息清空,回到BIOS设置,发现feature byte变为可写。找一台预装Windows的PC的feature byte写入,再用SLIC Toolkit检查看到SLIC 2.1信息读取成功。
amidebios工具可以在网上搜HP DMI ToolKit,里面有。只可在DOS下运行。估计这个方法也适用于现在BIOS不太容易修改的8000系列、pro 6000系列等(未测试)。

没有评论: