3

好的,我正在开发一个 uController 项目(指针设备),我正在尝试编写用户空间驱动程序IOkit.framework

使用 idProduct 和 idVendor 我可以得到IOUSBInterfaceInterface300obj

问题是当我尝试

kr = (*intf)->USBInterfaceOpen(intf);

它失败了kIOReturnExclusiveAccess,很可能是因为HID经理已经打开了具有独占访问权限的设备。

这里说无代码的 kext 可以防止 HID 管理器接管设备

在 Mac 上读取和写入 USB (HID) 中断端点

idVendor我用and创建了一个 kextidProduct并使用 kextload 来加载它。我从 kextload取回“加载成功”

但不知何故我仍然无法打开界面?难道我做错了什么?

我通过创建一个文件名 Info.plist (内容与调整了 idProduct 和 idVendor 的帖子相同)来创建 kext,并将其放在名为 MyUSBDeviceTest.kext 的文件夹中

然后将所有者更改为 root:wheel 然后将 kext 复制到/System/Library/Extensionsthen

sudo kextload -vt /System/Library/Extensions/MyUSBDeviceTest.kext

我已尝试重新启动并重新连接设备,但我无法从HID系统中获取接口

4

0 回答 0