这是我第一次尝试签署内核扩展,所以我很乐意我做错了。
我要求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
帮帮我O Stackoverflow-Wan。你是我唯一的希望!
答案 0 :(得分:2)
我应该在您的codesign
输出中发现这一点,但您的评论明确指出:问题在于您使用的证书。 Apple发布了4种Mac代码签名证书:
可能出于安全原因,证书类型2-4仅发布给Apple Developer帐户中的Team Agents 。低开发人员只获得“Mac开发人员”证书,这些证书纯粹是临时性的,因此它们与安全无关。
总而言之,您的问题是您使用的是“Mac Developer”证书来签署kext。您需要使用“开发者ID应用程序”证书,特别是在开发团队被Apple授予kext签名权限后颁发的证书。如果您尚未申请kext签名权限,you can do so using this form。 (听起来你之前已经这样做了,但是我指的是为了同样情况下可能在将来偶然发现这种情况的人的利益。)