【发布时间】:2017-11-10 21:57:23
【问题描述】:
这是我第一次尝试签署内核扩展,所以我对自己做错的可能性持开放态度。
我向 Apple 申请了内核签名证书。我被要求填写一个表格,证明我确实需要创建一个内核驱动程序,而不是一个与 IOUserClient 通信的用户空间驱动程序。
$ sudo kextutil FL2000.kext/
Password:
Notice: /Library/Extensions/FL2000.kext has debug properties set.
Diagnostics for /Library/Extensions/FL2000.kext:
Code Signing Failure: code signature is invalid
Untrusted kexts are not allowed
ERROR: invalid signature for com.frescologic.FL2000, will not load
它不会在启动时加载——它需要加载,因为它是一个图形驱动程序。
$ codesign --verify -vvvv FL2000.kext/
FL2000.kext/: valid on disk
FL2000.kext/: satisfies its Designated Requirement
$ codesign --display -vvvv FL2000.kext/
Executable=/Library/Extensions/FL2000.kext/Contents/MacOS/FL2000
Identifier=com.frescologic.FL2000
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=1590 flags=0x0(none) hashes=44+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=83a0328f9af971484b7e30c8d04e68a96dee72c1
CandidateCDHash sha256=cd6c72d17f00d2eed36078eece6a5b536c482772
Hash choices=sha1,sha256
Page size=4096
CDHash=cd6c72d17f00d2eed36078eece6a5b536c482772
Signature size=4693
Authority=Mac Developer: Michael Crawford (YU8CSARZFD)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=Nov 10, 2017, 1:10:07 PM
Info.plist entries=20
TeamIdentifier=444JK52Q93
Sealed Resources version=2 rules=13 files=2
Internal requirements count=1 size=184
帮助我哦 Stackoverflow-Wan。你是我唯一的希望!
【问题讨论】:
-
在您的 kext 签名获得批准后,您是否使用该开发者帐户生成了新的开发者 ID 证书?在此之前颁发的任何证书都不会具有正确的证书扩展名。所需的扩展名是"( 1.2.840.113635.100.6.1.18 )"。
-
我没有那个扩展。我不清楚如何生成新的开发者 ID 证书。我想要一个用于生产,但该页面仅提供它们用于开发。
-
我有两个 Mac 开发者证书,一个是我的电子邮件,另一个是我的名字。我想我的名字是由我的客户发行的。在任何情况下,证书都不包含该扩展名。
-
我的团队管理员申请了新的开发者 ID 应用程序证书。它现在肯定有那个扩展名。但我的签名仍然无效。
-
我让它工作了!明天我会写一个正确的答案,除非某个雇佣的刺客因为威胁要发布一个合理的解释而惹怒我。
标签: xcode macos certificate driver xnu