Я пытаюсь выборочно проверять и отключать определенные USB-устройства. Для этой цели я написал драйвер IOUSBInterface
, который определяет подстановочные знаки для idProduct
, idVendor
и bcdDevice
. Каждый раз, когда я не хочу отключить данное устройство, я устанавливаю probeScore
в 0 и возвращаюсь.
Подход probeScore
работает почти во всех случаях, и я вижу, как мой драйвер рассматривает каждое USB-устройство по очереди в system.log
. Но в случае USB-хост-контроллера Bluetooth ядро прикрепляет к нему мой драйвер, несмотря на то, что моя оценка проверки равна 0. Для сравнения, если моего драйвера нет, хост-контроллер Bluetooth USB соответствует оценке проверки, равной 90 000.
Это правда, что мой драйвер указывает OSBundleRequired
как Root
, но хост-контроллер Bluetooth USB указывает OSBundleRequired
как Safe Boot
, что, казалось бы, ставит их в один ряд. С другой стороны, у меня те же проблемы Yosemite Bluetooth, что и у других, и моя Bluetooth-мышь не отвечает до тех пор, пока я не войду в систему, предполагая, что USB-хост-контроллер Bluetooth может не загружаться до окончания загрузки.
/System /Library/Extensions/IOBluetoothFamily.kext/Contents/PlutIns/BroadcomBluetoothHostControllerUSBTransport.kext
, я получаю сообщение об ошибке неверной подписи, хотя у системы нет проблем с загрузкой этого драйвера после входа в систему. Возможно, мне нужно задать этот вопрос на Задать вопрос другому. - person Neil Steiner   schedule 01.10.2015kextcache
имеет флаг-print-diagnostics
, который может помочь определить проблему. - person pmdj   schedule 02.10.2015sudo kextcache -system-caches -print-diagnostics -v 6
и некоторые другие варианты, но не нашел того, что искал. Какое использование вы имели в виду? - person Neil Steiner   schedule 05.10.2015