好的,我正在开发一个 uController 项目(指针设备),我正在尝试编写用户空间驱动程序IOkit.framework
。
使用 idProduct 和 idVendor 我可以得到IOUSBInterfaceInterface300
obj
问题是当我尝试
kr = (*intf)->USBInterfaceOpen(intf);
它失败了kIOReturnExclusiveAccess
,很可能是因为HID
经理已经打开了具有独占访问权限的设备。
这里说无代码的 kext 可以防止 HID 管理器接管设备
idVendor
我用and创建了一个 kextidProduct
并使用 kextload 来加载它。我从 kextload取回“加载成功”
但不知何故我仍然无法打开界面?难道我做错了什么?
我通过创建一个文件名 Info.plist (内容与调整了 idProduct 和 idVendor 的帖子相同)来创建 kext,并将其放在名为 MyUSBDeviceTest.kext 的文件夹中
然后将所有者更改为 root:wheel 然后将 kext 复制到/System/Library/Extensions
then
sudo kextload -vt /System/Library/Extensions/MyUSBDeviceTest.kext
我已尝试重新启动并重新连接设备,但我无法从HID
系统中获取接口