无法在macOS 10.13.6及更高版本上加载KEXT

时间:2019-07-04 13:24:27

标签: xcode driver macos-high-sierra macos-mojave kernel-extension

在macOS 10.13.6和更高版本(以及macOS 10.14.6 beta)上加载内核扩展时,我们遇到了问题。 我们有KAUTH kext,我们将其复制到“ / Library / Extensions /” 并调用 KextManagerLoadKextWithURL() API。

在系统偏好设置中,我们单击允许按钮以加载KEXT。

执行这些操作后,不会加载KEXT。因此,我们进行了更多分析,发现了以下发现。

  

1)“ /库/扩展” 中存在KEXT条目   “ /库/分段扩展/”

     

2)我们阅读 / private / var / db / SystemPolicyConfiguration / KextPolicy 。   KextPolicy数据库包含:    XXXXXXXXXX | com.company.driver.kauthkext | 1 | Company(P)Ltd. | 5 。从第2点起,我们有确凿的证据表明可以加载KEXT。

因此,我们进行了更多分析,发现以下差异。此处 System1 能够加载kext,而 System2 无法加载kext。

System1 :(从较低的操作系统升级到较高的操作系统)

    Range(Cells(1, 1), Cells(100, 1)).Select

    For Each xCell In Selection

    xCell.Value = CDate(xCell.Value)

    Next xCell

System2 :(预先安装了10.13.6 OS的新硬件)

System1:~ user$ ls -laO /Library/StagedExtensions/
total 0
drwxr-xr-x@  3 root  wheel  restricted   96 Jun 27 15:15 .
drwxr-xr-x+ 62 root  wheel  sunlnk     1984 Jul  3 12:24 ..
drwxr-xr-x   4 root  wheel  restricted  128 Jul  4 16:15 Library

以某种方式“ restricted” 标志起着操纵KEXT加载的作用。

  

注意:我们尚未将任何标志添加到   “ / Library / StagedExtensions” 目录。两台计算机上均启用了SIP(系统完整性保护)

请指导我们为什么KEXT无法在System2上加载。

谢谢。

0 个答案:

没有答案