一、HLK/HCK签名
这种类型的驱动签名需要先进行HLK/HCK的测试,其中HCK(HardwareCertification Kit)是win8、win8.1的驱动测试工具;而HLK(Hardware Lab Kit)是微软随win10而新推出的驱动测试工具。HLK/HCK类型的驱动签名,需要在sysdev上提交的是HLKX/HCKX类型的文件。这些文件正是HCK/HLK的测试结果。
1.1 生成HCKX文件
生成HCKX文件的过程,也即使用HCK工具对驱动进行测试的过程。HCK工具需安装、部署在Windows Server上,具体的操作步骤如下:
1.1.1 连接特定的HCK测试项
具体操作步骤如图1所示。在Step4中对文件进行选择时,有两个可选的文件:X64.hckx、X86.hckx,两者分别对应64位的系统和32位的系统。可根据所要签名的驱动类型进行相应的选择。
图1
特别说明:该步骤中所连接的测试项是由微软特别给到我们公司的,因为在win8及win8.1下的驱动签名必须要通过HCK测试才可以,但由于我们公司芯片的特殊性,无法完全通过HCK测试,所以微软给出特别的测试文件,以便我们能够通过HCK生成HCKX文件。
1.1.2 导入需要签名的驱动包
具体操作步骤如图2所示。在Step 2之后,会弹出一个选择驱动包的界面,在该界面选定好想要签名的驱动包。
在Step 3和Step 4的标签下,将标签中的每一项都选择上,然后点击“OK”完成驱动包的导入。
图2
1.1.3 使用公司的证书生成HCKX文件
在将驱动包导入到HCK之后,按图3所示步骤进行HCKX文件的生成,并保存结果。在Step1后会弹出一个选择证书的界面,如图4所示,选择我们公司的证书即可。(证书如过期,或不存在,则需要联系FAE进行修复或购买)。
图3
图4
1.2 修改HCKX文件
在使用HCK工具对驱动包进行测试并生成HCKX文件之后,还需要对HCKX文件进行如下处理:
a. Rename the hckx file to .zip;
b. Extractto a folder;
c. Goto that folder, where you see _rels, hck, package folders and a file called[Content_Types].xml;
d. Selectall of them, and Send To Compressed Zip folder;
e. Renamethe zip folder as hckx package;
特别说明:因为之前在提交驱动签名时总是出现错误,所以微软提供了以上操作来解决提交出错的问题。
1.3 提交HCKX文件进行签名
在完成以上步骤后,即可在Sysdev上进行驱动签名的提交了。Sysdev是微软的一个管理驱动签名、发布、Bug调试等功能的一个网站,其网址为:
https://sysdev.microsoft.com
公司在sysdev上的账号跟密码可向FAE索取。
1.3.1 上传HCKX文件
在登陆Sysdev后即可使用Sysdev -> Hardware compatibility -> Create HLK/HCK submission的功能提交HCK/HLK类型的驱动签名的申请。Sysdev的界面如图5中所示。
在点击了“Create HLK/HCK submission”之后,即进入签名提交的页面,首先要做的是:选择之前通过HCK测试工具生成的HCKX文件进行上传,然后会自动进入到下一步。
图5
1.3.2填写必要的信息
a. 在选择好HCXK文件之后,进入到如图6所示的界面,在这里需要注意红色标注的几处。
图6
b. 点击“Next”后即进入到如图7所示的界面中来。该界面是用于选取驱动所面向的操作系统类型的,在这里通常只选取Windows 8.1即可。由于HCK是面向win8和win8.1的,所以当提交HCKX类型的文件时,这里没有win10系统的选项。
图7
c. 继续点击“Next”,进入如图8所示的界面,在该界面中需填写一些驱动信息。其中“Product Name”这一项一定要填写“GoodixTouchDriver(Driver Signing Only)”;关于“Firmware Version”通过填写的是驱动的版本号;在“Preferred Publishing Data”这一项是用作在Windows Update上发布驱动用的,可以不填。检查所填写的信息,点击进入到下一步。
图8
d. 继续点击“Next”,进入如图9所示的界面,这里主要是一些驱动发布与市场推广的一些额外信息,一般都不做修改,直接进入到下一步。
图9
e. 最后一步,是用来Review所填写的信息的,在确认无误后点击“Finish”即完成提交,具体界面如图10所示。
图10
1.4签名过程中的注意事项
1.4.1 Sysdev的处理流程
在提交HLK/HCK的签名申请后,该申请在sysdev上要经历大概13个步骤的流程才可以最终得到签名的驱动。以往该流程大概需要3天左右的时间,win10之后该速度有所提升,1-2天可完成。如需加急,可联系微软相关的人员帮忙处理。
1.4.2提交签名时Product Name的填写
在提交HCK签名的提交过程中,在ProductName这一项应填写GoodixTouchDriver(Driver Signing Only),如填写成GoodixTouchDriver的话,会导致签名的失败。因为不填写Driver Signing Only的话Sysdev会因无法判定签名的目的,而将签名失败掉。
1.4.3凌晨编译生成驱动并签名的问题
曾在凌晨1点左右编译生成驱动包,然后通过HCK生成HCKX文件,上传Sysdev进行签名,但最终结果,却是失败的。这是由于时差的问题而导致的。由于中国所在时区的时间要早于伦敦时间,所以在凌晨的时候我们已经是新的一天,而伦敦时间还是昨天。这样一来,微软的Sysdev服务器会认为我们驱动的时间不合法,是在还未来到的一天中生成的驱动,所以签名会失败。
最好不要在凌晨进行驱动包的编译生成,如果在这个时间段编译驱动Visual Studio首先也会报错:时间不对,无法生成测试签名。这时需要先对Visual Studio中的驱动工程的属性进行更改,才能成功完成编译。
如果是在凌晨编译生成的驱动包,那么需要手动将inf文件中的DriverVer一项中的时间给更改一下。比如:DriverVer=07/21/2014,1.2.1.0 则需要修改为DriverVer=07/20/2014,1.2.1.0或更早的日期。但该日期绝不能前一版本驱动的日期,否则会导致驱动在安装过程中的版本混乱。
将inf文件中的日期修改后,即可按以上介绍的流程,正常地进行驱动的签名提交了。