Мне нужно отключить доступ к определенным устройствам (например, встроенной камеры FaceTime), и пытались сделать это, предоставив простой kext с более высокий показатель оценки, чем то, что в настоящее время прилагается.Попытка отключить доступ к устройству через OS X kext с более высоким значением оценки зонда
My kext соответствует и прикрепляется к камере как IOProviderClass IOUSBInterface
, так и IOProviderClass IOUSBDevice
, но все исходные kexts все еще прикрепляются к нему. Вот как это выглядит в IORegistryExplorer:
FaceTime HD Camera (Built-in)@14700000 # USB device
+-- FaceTime HD Camera (Built-in)@0 # USB interface
| +-- FaceTimeDisabler # my kext matching as IOUSBInterface
| +-- IOUSBInterfaceUserClientV3 # original
+-- IOUSBDeviceUserClientV2 # original
+-- [email protected] # original
| +-- IOUSBInterfaceUserClientV3 # original
+-- [email protected] # original
+-- FaceTimeDisabler # my kext matching as IOUSBDevice
Я думал точку устройства и соответствующий драйвер должен был выбрать один Kext присоединять к устройству, поэтому я ожидал, что, если мой Kext сочетается с наивысшим баллом зондом, он получит эксклюзивный контроль над устройством, но это явно не так.
Мои вопросы таковы:
- Как я могу убедиться, что мои доходы Kext эксклюзивный доступ к устройству?
- Если есть лучший способ отключить доступ к устройству, что это такое?
Работы красиво Отметил на kUSBOptionBitOpenExclusivelyMask, относящийся только к USB-устройствам.. –