我是 UniversalADBDriver 的开发人员,这是一个在用户计算机上创建自签名 Android USB 驱动程序的工具。
安装程序和安装包源代码: https ://github.com/koush/UniversalAdbDriver
该工具会生成一个密钥对并将证书添加到用户的密钥库中,然后对驱动程序文件进行签名。这一直很好,直到 Windows 10,它莫名其妙地停止工作。我手动运行命令行:
The following certificates were considered:
Issued to: UniversalADB
Issued by: UniversalADB
Expires: Fri Aug 25 17:00:00 2017
SHA1 hash: C8701DF4CDC7DD75813400AD2B3B4C2EFDA4E662
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.
在 Windows 10 上,证书被“私钥过滤器”过滤掉。不知道那是什么,上面没有任何文档。
更新
我发现通过 Windows 10 上的安装程序调用时,makecert.exe 或 X509Store.add 都无法将证书/密钥写入当前用户存储。但是,本地计算机存储中的证书放置正确。我不确定为什么会这样。所以基本上,私钥没有正确放置在存储中,因此签名失败。在命令行上手动运行相同的步骤是可行的。但是,我仍然需要弄清楚为什么私钥没有保留在商店中。