나승훈*_*나승훈 9 macos codesign kernel-extension
我在优胜美地的kext上签了代码.但是kextload失败了.
这是版本2的代码签名.codesign --verify
是真的.
但是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
Run Code Online (Sandbox Code Playgroud)
它显示版本2.
但是sudo kextload ./myKext.kext
返回以下内容:
/Path/to/myKext.kext加载失败 - (libkern/kext)无法加载(原因未指定); 检查系统/内核日志是否有错误或尝试kextutil(8).
cat /var/log/system.log
收益:
com.apple.kextd [19]:错误:com.myKext.kext.Firewall的签名无效,不会加载
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
Run Code Online (Sandbox Code Playgroud)
为什么签名无效?!
我已经在约塞米蒂签署了版本2协同设计.
我做错了什么标志?请有人教我.
我也有同样的问题.我和你分享了解决方案.
Apple更改了Mac Developer Program,并从中删除了kext认证.因此,即使您是Mac开发人员计划的成员,除非您在开发者ID和关守中请求,否则您将无法获得kext开发认证.
顺便说一句,苹果说,
"KEXT签署旨在签署商业运输的kexts或广泛分布在大型组织中的项目."
所以我们可以做的是通过添加"kext-dev-mode = 1"boot-arg在KEXT开发模式下运行我们的Kext.喜欢,
sudo nvram boot-args="debug=0x146 kext-dev-mode=1"
Run Code Online (Sandbox Code Playgroud)
然后重启.
我希望这对你有所帮助.
归档时间: |
|
查看次数: |
11877 次 |
最近记录: |