kernel: DK: MyDriver-0x100000f45: provider entitlements check failed
kernel: DK: IOUserServer(com.MyDriver-0x100000f45)::exit(Entitlements check failed)
kernel: (com.MyDriver.dext) Kernel requested exit (Entitlements check failed)
我正在尝试使用 PCIDriverKit 创建驱动程序。找不到任何合理的示例代码。
我的问题是我正在尝试访问所有设备,即使我已将它们的掩码正确地放置在 theInfo.plist (0x12345678&0x000000000)
和 thecom.apple.developer.driverkit = TRUE
和com.apple.developer.driverkit.transport.pci
权利中。
对于大多数设备,我在 macOS 日志中收到上述错误。在我之前使用的 A KEXT 中,相同的面具工作得非常好。
SIP当然是禁用的,系统扩展开发者模式是开启的。
我目前在 XCode 中使用“登录本地运行”选项,因为这是一个开发阶段。
如何获得 DEXT 以打开 Mac 上的所有 PCI 设备?
编辑:这些是 DEXT 的权利,根据codesign -d --entitlements -
:
▒▒qq<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.driverkit</key>
<true/>
<key>com.apple.developer.driverkit.transport.pci</key>
<array>
<dict>
<key>IOPCIPrimaryMatch</key>
<string>0x12345678&0x00000000</string>
</dict>
</array>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>
amfid 日志:
amfid: [com.apple.MobileFileIntegrity:amfid] Basic requirement validation failed, error: (null)
amfid: /Library/SystemExtensions/{SOME_GUID}/com.MyDriver.dext/com.MyDriver signature not valid: -67050