Как установить права на `com.apple.developer.driverkit.transport.usb`?
Я не уверен, как установить com.apple.developer.driverkit.transport.usb
введите мой dext-файл прав. Файл Info.plist уже содержитIOKitPersonalities
словарь и чтение о com.apple.developer.driverkit.transport.usb
словарь, похоже, он должен содержать записи с той же информацией, что и записи IOKitPersonalities
.
В файле прав для проекта, который очень похож на то, что показано в видео WWDC о наборе драйверов, задается значение:
<key>com.apple.developer.driverkit.transport.usb</key>
<true/>
Когда я установил это <true/>
, запускается расширение системы. Я вижу такие строки до того, как увижу строки журнала из приложения:
...
2020-05-06 12:23:19.229709+0200 0x51ac2 Default 0x0 0 0 kernel: DK: IOUserServer(sc.example.MyUserUSBInterfaceDriver-0x100002aad)::exit(CDHash check failed)
Если это право просто отражает то, что IOKitPersonalities
Словарь?
С полностью удаленным ключом я получаю:
...
2020-05-06 12:23:19.229709+0200 0x51ac2 Default 0x0 0 0 kernel: DK: IOUserServer(sc.example.MyUserUSBInterfaceDriver-0x100002aad)::exit(CDHash check failed)
2020-05-06 12:23:19.253517+0200 0x51ac2 Default 0x0 0 0 kernel: DK: IOUserServer(sc.example.MyUserUSBInterfaceDriver-0x100002aae)::exit(Entitlements check failed)
.. так что я думаю, что ключ должен быть там.
Я просматриваю строки журнала, связанные с приложением, с log stream --source | grep MyUserUSBInterfaceDriver
1 ответ
Насколько я понимаю, вам необходимо составить список критериев соответствия идентификатора поставщика / устройства, то есть использовать один из этих трех шаблонов:
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idProduct</key>
<integer>123</integer>
<key>idVendor</key>
<integer>1234</integer>
</dict>
<dict>
<key>idProduct</key>
<integer>1024</integer>
<key>idProductMask</key>
<integer>65504</integer>
<key>idVendor</key>
<integer>1234</integer>
</dict>
<dict>
<key>idProductArray</key>
<array>
<integer>12345</integer>
<integer>23456</integer>
<integer>34567</integer>
</array>
<key>idVendor</key>
<integer>1234</integer>
</dict>
</array>
Чтобы было ясно, это означает, что право должно быть типа массив -> словари.
NB: Apple все еще не утвердила запрос прав моего клиента на DriverKit примерно через 4 недели, поэтому я все еще работаю с подписью разработки и отключенными частями SIP, но, по крайней мере, с указанным выше я не получаю никаких жалоб на недействительность com.apple.developer.driverkit.transport.usb
права в системном журнале (что я очень часто делаю с <true/>
).
Я предполагаю любой idVendor
Перечисленные значения также должны быть встроены в ваш сертификат подписи Apple, когда речь идет о подписании распространения.