本文介绍如何进行WHLK/WHQL/WHCK测试,以获取微软的数字签名。 WHLK/WHQL/WHCK是同一个东东,历史上有过不同称呼而已。
Windows下的驱动程序,是必须通过微软的WHLK测试,经过微软的数字签名之后,才能在最终用户那边顺利安装的。WHLK测试工具是微软开发的一套测试工具,它自动识别驱动的设备类型,然后采用相对应的一系列test cases进行测试,整个测试周期根据设备类型不同而不同,例如声卡,不卡壳的话大约4天时间可跑完一个OS的测试。
注意,32位和64位需要分别测试的。Win7和win10的测试工具版本是不同的,对server版本要求也不同的,我们以win10为例介绍一下这个声卡whlk测试平台的搭建。
1. 购买商业数字证书 在进行WHLK测试之前,需要对我们的驱动进行数字签名,而数字签名的证书,我们需要向微软承认的第三方购买,例如GlobalSign, Symentec等。这些证书颁发机构会要求我们提供公司的一些信息,必须真实,工商部门登记的,他们是会去核实的。然后缴一笔不菲的费用,有效期一年。
购买到数字证书之后,安装,并导出到数字签名工具同目录下,就可以用来数字签名了:
2. 搭建WHLK平台这个WHLK搭建平台的文档,可以从msdn.microsoft.com上下载的。
2.1 安装windows server 2016;
2.2 从microsoft.com下载最新的Redstone的KitPreinstall.zip,里面有个readme.txt,在windows server 2016上安照指示安装那些证书和注册表;
2.3 从microsoft.com下载最新的HLK,在windows server 2016上安装HLK,controller和Studio都一起安装。这个HLK会把客户端需要安装的部分在一个文件夹共享出来;
2.4 按如何架构搭建WHLK测试平台,HLK Controller和Studio我们合二为一安装在这台Server2016上了: 2.5 从客户端打开共享文件夹,安装\\Server2016 ip address\HLKInstall\Client\Setupamd64.exe或exe,根据你客户端OS的类型选择对应的安装包。
2.6 回到Server2016,运行HLK Studio,右击”Root” ,Create Machine Pool
2.7 从Default Pool中可以发现你刚才安装的客户端机器,把它们移到你刚刚创建的新的machine里头去,并右击那个待测试的客户端的状态,选“Ready”:
2.8 点上图左上角的回退,然后Create Project:
2.9 点击Selection,选择刚才的machine pool,并选中待测的设备Buckhorn:
2.10 再点击Tests,勾选中所有测试项,即可进行测试了。WHLK测试工具本身也有bug的,所以跑完测试后,可以运行一下filter,这样由于WHLK工具自身的问题导致的测试失败就会被过滤掉。
2.11 所有测试项通过后,点package,Add Driver Folder,把我们x86/x64的已签名的驱动加进来:
2.12 Create Package,使用我们购买的数字证书签名,保存为hckx。
3. 向微软提交数字签名申请这个注册的过程中需要用到上面购买的数字证书,以验证身份。
3.2 然后提交buckhorn.hckx,每提交一次,缴一笔不菲的费用。然后微软会给我们的驱动用微软的数字证书签名。
3.3 这时,我们用微软签名过的驱动制作正式的安装包了。
本帖最后由 Buckhorn 于 19-5-6 09:02 编辑