I am trying to selectively screen and disable certain USB devices. For that purpose I have written an IOUSBInterface
driver that specifies wildcards for idProduct
, idVendor
, and bcdDevice
. Anytime I do not want to disable a given device, I set probeScore
to 0 and return.
The probeScore
approach works in almost all cases, and I can see my driver considering each USB device in turn in system.log
. But in the case of the Bluetooth USB Host Controller, the kernel attaches my driver to it despite my probe score of 0. By comparison, if my driver is not present, the Bluetooth USB Host Controller matches with a probe score of 90,000.
It is true that my driver specifies OSBundleRequired
as Root
, but the Bluetooth USB Host Controller specifies OSBundleRequired
as Safe Boot
, which would seem to put them on the same footing. On the other hand I'm having the same Yosemite Bluetooth problems as others, and my Bluetooth mouse doesn't respond until after I login, suggesting that the Bluetooth USB Host Controller might not be getting loaded until after boot time.
/System /Library/Extensions/IOBluetoothFamily.kext/Contents/PlutIns/BroadcomBluetoothHostControllerUSBTransport.kext
, I get an invalid signature error even though the system has no problem loading that driver once I log in. Perhaps I need to ask this question on Ask Different. – Neil Steinerkextcache
command line tool has a-print-diagnostics
flag which might help pinpoint the issue. – pmdjsudo kextcache -system-caches -print-diagnostics -v 6
and some other options, but didn't really find what I was looking for. What usage did you have in mind? – Neil Steiner