我无法在macOS Sierra上加载kext

问题描述 投票:1回答:3

我正在尝试在macOS Sierra上加载kext。但是会发生错误。请有人帮助我。

1.

csrutil disable && reboot

禁用SIP。

2.

nvram boot-"debug=0x146 kext-dev-mode=1" && reboot

kext开发者模式。

3.使用xcode构建kext。

4.

cp -rf /Users//Library/Developer/Xcode/DerivedData//Build/Products/Debug /System/Library/Extensions

5.

kextload /System/Library/Extensions/test.kext

/System/Library/Extensions/test.kext无法加载 - (libkern / kext)验证失败(plist / executable);检查系统/内核日志是否有错误或尝试kextutil(8)。

6.

kextutil /System/Library/Extensions/test.kext

...代码签名失败:代码签名无效

macos-sierra kernel-extension
3个回答
0
投票

如果您开始使用kext dev,请不要将您的kext放在Library / Extensions文件夹中,因为如果您的kext出现问题并且阻止您的操作系统启动,这可能会导致灾难。您可以从Library / Extensions以外的任何位置加载它。

除非启用了csrutils的明显错误,否则应加载kext。就像评论中的某个人说的那样,通过使用csrutil status检查你是否启用了SIP。如果没有,我猜你的项目中有一个错误的plist。请张贴您的plist,以便我可以看看。

参考你的2.从sierra开始nvram将不起作用,除非你处于恢复模式。

如果你禁用了csrutil,你会看到

kext signature failure override allowing invalid signature -67050 0xFFFFFFFFFFFEFA16 for kext

在您的代码签名失败提示后,然后成功加载您的kext。


0
投票

关于步骤#2,according to Apple

从macOS El Capitan开始,kext-dev-mode boot-arg现在已经过时了。

$ sudo nvram boot-args="kext-dev-mode=1" # Has No Effect

0
投票

您只需在此授权列表中添加Oracle编辑器即可。在恢复模式下重启mac(cmd + R)

然后打开终端并输入:

spctl kext-consent add VB5E2TV963

重启你的mac。 Mojave和Virtual Box 6对我很好。

© www.soinside.com 2019 - 2024. All rights reserved.