我是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都无法将证书/密钥写入当前用户存储。但是,本地计算机存储中的证书已正确放置。我不确定为什么会这样。所以基本上,私钥没有正确放置在商店中,因此签名失败。在命令行上手动运行相同的步骤。我仍然需要弄清楚为什么私钥没有在商店中持久存在。