Я пытаюсь перейти с KEXT на DEXT. Мое USB-устройство не должно соответствовать драйверу classi c (в другом случае он не позволяет открывать устройство и интерфейс).
Я использую образец USB-приложения для тестирования.
Итак, перед установкой расширения системы я смог увидеть 1 устройство и 3 интерфейса. Однако, когда я устанавливаю системное расширение (следующее), я не могу найти никаких интерфейсов. Кажется, они потерялись. Для поиска интерфейсов я использую команду «ioreg -lir c IOUSBHostInterface».
Есть идеи, почему это могло произойти?
Информация о моем драйвере. plist файл
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>IOKitPersonalities</key>
<dict>
<key>MyUserUSBInterfaceDriver</key>
<dict>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>IOClass</key>
<string>IOService</string>
<key>IOProviderClass</key>
<string>IOUSBHostDevice</string>
<key>IOUserClass</key>
<string>MyUserUSBInterfaceDriver</string>
<key>IOUserServerName</key>
<string>sc.knight.MyUserUSBInterfaceDriver</string>
<key>idProduct</key>
<integer>4</integer>
<key>idVendor</key>
<integer>10978</integer>
</dict>
</dict>
<key>OSBundleUsageDescription</key>
<string>Example user space USB driver</string>
</dict>
</plist>
и файл прав драйверов
<plist version="1.0">
<dict>
<key>com.apple.developer.driverkit</key>
<true/>
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idVendor</key>
<integer>10978</integer>
<key>idProduct</key>
<integer>4</integer>
</dict>
</array>
</dict>
</plist>
Результаты команды «ioreg -lir c IOUSBHostDevice» после установка расширения. Как видите ... 0 интерфейсов
admins-MBP:USBApp-updated-master-2 copy admin$ ioreg -lirc IOUSBHostDevice
+-o VXi Point@14300000 <class IORegistryEntry:IOService:IOUSBNub:IOUSBDevice, id 0x100000657, registered, matched, active, busy 0 (210 ms), retain 20>
.......
| }
|
+-o AppleUSBHostLegacyClient <class IORegistryEntry:IOService:AppleUSBHostLegacyClient, id 0x10000065a, !registered, !matched, active, busy 0, retain 8>.
| {
| "IOPowerManagement" = {"DevicePowerState"=0,"CurrentPowerState"=1,"CapabilityFlags"=65536,"MaxPowerState"=2,"DriverPowerState"=1}
| }
|
+-o MyUserUSBInterfaceDriver <class IORegistryEntry:IOService, id 0x10000065d, !registered, !matched, active, busy 0, retain 7>
{
......
}