我在优胜美地的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"
并重新启动。
希望对您有帮助。