首页 文章

无代码kext加载问题

提问于
浏览
1

我创建了一个无代码kext,这样我的一个USB设备就不会被AppleUSBUHCI驱动程序绑架 . 当我插入一个,它应该加载一个不同的驱动程序 . 它发生在FTDI和CSR设备上 .

我把我的kext放在一起,而info.plist看起来很像这里的例子:http://www.projectosx.com/forum/index.php?showtopic=798只是有不同的VID / PID . 我用-entZ运行了kextutil,唯一的警告是我的个性有不同的CFBundleId . 我按照这里的说明Reading and writing to USB (HID) interrupt endpoints on Mac来加载它 .

当我加载kext时,它说它已成功加载,但我无法用kextstat看到它,当我插入我的设备时它仍然被劫持 . 当我尝试执行kextunload时,它表示未加载kext .

任何帮助,将不胜感激 .

1 回答

  • 4

    从Apple列表中,我了解到无代码的kexts不会出现kextstat,除非它们链接到现有的驱动程序 . 我链接到IOKit包的个性只有在加载后才显示,如果它有存根代码 .

    对于我的设备,我找到了类似设备的现有驱动程序,并首先为该驱动程序注入个性 . 当我插入设备时,我能够验证它已加载,我可以打开我的设备 . 我将该驱动程序恢复到原始状态 . 然后我创建了一个无代码kext,它具有我注入现有驱动程序的个性 . 当我插入设备时,该驱动程序随后被加载,然后我就可以与我的设备通信了 .

    原始问题的解决方案是我的原始无代码kext的CFBundleIdentifier和bcdDevice . 从http://lists.apple.com/archives/usb/2009/Aug/msg00050.html开始,我得到了关于不同类型无代码kexts的提示,并意识到我需要将CFBundleIdentifier用于现有驱动程序 .

相关问题