Macos 签名无效的Kext可以在一台计算机上加载,但不能在另一台计算机上加载。为什么?

Macos 签名无效的Kext可以在一台计算机上加载,但不能在另一台计算机上加载。为什么?,macos,digital-signature,kernel-extension,firewire,Macos,Digital Signature,Kernel Extension,Firewire,我有一台iMac和一台MacBookPro。我把这两个版本都更新到了约塞米蒂公测版。 但我的音频接口Focusrite Saffire 24 DSP(Firewire)在iMac中正常工作,但在Macbook Pro上却无法正常工作 安装Saffire时,会出现一个Saffire.kext。 将其连接到iMac时,此kext加载良好,没有异常。 此kext在连接到Macbook Pro时不会加载。 我尝试手动加载它,但收到一条错误消息,说无法加载它,因为kext有一个无效的签名 现在,我检查了两

我有一台iMac和一台MacBookPro。我把这两个版本都更新到了约塞米蒂公测版。 但我的音频接口Focusrite Saffire 24 DSP(Firewire)在iMac中正常工作,但在Macbook Pro上却无法正常工作

安装Saffire时,会出现一个Saffire.kext。 将其连接到iMac时,此kext加载良好,没有异常。 此kext在连接到Macbook Pro时不会加载。 我尝试手动加载它,但收到一条错误消息,说无法加载它,因为kext有一个无效的签名

现在,我检查了两台计算机上的签名,他们都说签名无效。但是,即使签名无效,它在iMac上也可以正常加载

为什么呢?我不明白什么

下面是一些控制台输出,如果有帮助的话:

Mattiass-MacBook-Pro:Extensions mono$ codesign -dvvv Saffire.kext/
Executable=/System/Library/Extensions/Saffire.kext/Contents/MacOS/Saffire
Identifier=tc.tctechnologies.driver.Saffire
Format=bundle with Mach-O universal (i386 x86_64)
CodeDirectory v=20100 size=161 flags=0x0(none) hashes=1+3 location=embedded
Hash type=sha1 size=20
CDHash=ebc9c42dbea4f51770ff62d7de12552ae82a1fbc
Signature size=4240
Authority=Developer ID Application: TC Applied Technologies
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=13 Mar 2014 02:58:23
Info.plist entries=19
TeamIdentifier=not set
Sealed Resources version=1 rules=4 files=0
Internal requirements count=1 size=180

Mattiass-MacBook-Pro:Extensions mono$ codesign --verify -vvvv Saffire.kext/
Saffire.kext/: invalid signature (code or signature have been modified)
In architecture: x86_64
(Saffire连接到Belkin Thunderbolt船坞,该船坞连接到MBP,如果需要的话。)

更新:

下面是日志中的错误消息

28/07/14 00:51:33,693 com.apple.kextd[19]: ERROR: invalid signature for tc.tctechnologies.driver.Saffire, will not load
更新2:

我也让它在MBP工作。 我发现这个帖子: 这让我尝试了这个命令:

sudo nvram boot-args="kext-dev-mode=1"
重新启动后,一切都启动并再次运行


但我的问题仍然没有答案,为什么它在iMac上工作而在MBP上不工作?

根据您的更新为您的问题创建答案。据我所知,小牛保留了一个未签名kext的白名单,这样它就不会一次又一次地警告同一kext。我不知道约塞米蒂是否关心这个白名单,但这是可能的。在升级之前,您有没有在iMac上的Mavericks上使用kext,而不是MBP?在iMac上没有内核引导参数的情况下,它可以正常工作,这真是太奇怪了。与OSX 10.7兼容的i386/x86-64混合KEXT从未以令OSX 10.9或10.10满意的方式进行签名。供应商将需要向您发布一个新的、仅64位的kext,或者,如果您是Mac kext开发人员,您可能可以自己重新签署kext。关闭系统完整性检查我将投票关闭此问题作为非主题,因为这本应属于ask different,如果不是太旧的话。不涉及编程。