Codeless Kext support moving forward?

Hi,


We use a codeless kext to stop the system USB HIB driver from matching our devices, which declare as USB HID, but are not true USB HID devices. All USB comms to the devices are via the userspace APIs


We also must use the OSBundleRequired Root flag to load at boot, or the System HID driver claims the device. Without this boot-time load, our devices would have to be phisically unplugged-replugged after a user application with embedded system extention is running - but this is not an acceptable situation for remote machines as an example.


We have plans to move away from HID-not-HID to a proper Vendor defined USB class, but we will continue to have a huge installed base of legacy devices to support going forward on the old HID stack.


How can we continue to support these devices moving forward as Kexts are deprecated?


Thanks,

-Patrick

Replies

I was wondering the same. Any updates on this?

Would love to know the same.

FWIW, I've managed to implement an (almost) codeless DriverKit extension that blocks the HID driver from loading for some specific devices.


I don't know if it's possible to instruct the system to load a DriverKit extension at boot.

I can offer a small tidbit of information, which is that I asked this exact question to an Apple engineer as part of a tech support incident, and while he wasn't willing to provide any information on timetables of feature deprecation (which is expected with Apple), he did say that codeless kexts are not mentioned in "Deprecated Kernel Extensions and System Extension Alternatives" at https://developer.apple.com/support/kernel-extensions/

So we can take that to mean that they will probably continue to be supported for at least a little while longer. Unless of course Apple has neglected to mention them in that document, which is totally possible.