我在优胜美地的kext上有一个代码签名。但是kextload失败。
那是version2 codesign。 codesign --verify为true。
但是kextload失败。为什么不载入优胜美地?

这是我的日志。

我已经检查了codesign -dvvv ./myKext.kext,没关系。
codesign -dvvv ./myKext.kext返回以下内容:

Executable=/Path/to/myKext
Identifier=com.myKext.kext.Firewall
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=317 flags=0x0(none) hashes=9+3 location=embedded
Hash type=sha1 size=20
CDHash=d0ff68bd8b49c650f45349c2d1570d45a8c1f148
Signature size=8544
Authority=Developer ID Application: My Kext Co., Ltd. (R2PBZJ465V)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=2014. 10. 31. 오전 11:09:35
Info.plist entries=18
TeamIdentifier=not set
Sealed Resources version=2 rules=12 files=1
Internal requirements count=1 size=188

它显示版本2。
但是sudo kextload ./myKext.kext返回以下内容:


cat /var/log/system.log返回:


sudo kextutil -l ./myKext.kext返回:
Diagnostics for ./myKext.kext:
Code Signing Failure: code signature is invalid
ERROR: invalid signature for com.myKext.kext.Firewall, will not load

为什么签名无效?
我已经在优胜美地使用version2 codesign进行了签名。
我做错了什么标志?有人请教我。

最佳答案

我也有同样的问题。我得到了与您共享的解决方案。

苹果更改了Mac Developer Program,并从中删除了kext的认证。
因此,即使您是Mac Developer Program的成员,也不会获得ext的认证,除非您向Developer ID and Gatekeeper提出要求。

苹果说,顺便说一句,



因此,我们可以做的就是通过添加“kext-dev-mode = 1” boot-arg在KEXT开发模式下运行Kext。喜欢,

sudo nvram boot-args="debug=0x146 kext-dev-mode=1"

并重新启动。

希望对您有帮助。

10-08 03:40