macos - codesigned kext 但为什么不在 Yosemite(10.10) 中加载

标签 macos codesign kernel-extension

我在 Yosemite 的 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

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

/Path/to/myKext.kext failed to load - (libkern/kext) not loadable (reason unspecified); check the system/kernel logs for errors or try kextutil(8).

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

com.apple.kextd[19]: ERROR: invalid signature for com.myKext.kext.Firewall, will not load

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

为什么签名无效?!
我已在 Yosemite 中签署了 version2 codesign。
我做错了什么标志?请有人教我。

最佳答案

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

Apple 更改了 Mac 开发者计划,并从中删除了 kext 认证。 因此,即使您是 Mac 开发者计划的成员,您也不会获得 kext 开发认证,除非您通过 Developer ID and Gatekeeper 请求。 .

顺便说一句,苹果说,

"KEXT signing is intended for signing commercially shipping kexts or projects broadly distributed in a large organization."

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

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

然后重新启动。

希望这对您有所帮助。

关于macos - codesigned kext 但为什么不在 Yosemite(10.10) 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26671885/

相关文章:

macos - 无法切换分支 : untracked working tree file because of case-insensitivity?

macos - 从 NSVisualEffectView 活力中选择退出无边框 NSButton

xcode - 上传到 Mac App Store 时出错 : ITMS-90239

xcode - 在没有应用程序的情况下为遗留无代码 kext 创建 Dext?

macos - 从哪里开始编写一个应用程序来修改 OS X 上所有声音的输出?

python - 从命令行运行已安装的 python 包

javascript - 使用 Node.js 子进程时没有回车?

iPhone Codesign 目标文件格式无效或不合适

ios - "Application failed codesign verifications"Phonegap构建应用上传到App Store失败

c++ - 必须重新定义一些 kext 成员函数,以避免未解析的符号