Предоставьте разрешения USB как владелец устройства - PullRequest
8 голосов
/ 02 мая 2019

A владелец устройства может предоставить разрешения времени выполнения стороннему приложению, используя DevicePolicyManager.setPermissionGrantState () , чтобы избежать запросов пользователя.

Но может ли владелец устройства также предоставить USB-разрешения , чтобы приложение получало доступ к подключенным USB-устройствам без запроса пользователя?

Я также пытался вызвать UsbManager.grantPermission() (с отражением), но он вызывает SecurityException, поскольку для него требуется разрешение MANAGE_USB, которое предоставляется только системным приложениям (и, очевидно, не владельцу устройства).

Примечание: я ищу решение, работающее на некорневой и нестандартной системе Android, приложение владельца устройства настроено с использованием методов обеспечения Android Enterprise .

1 Ответ

4 голосов
/ 08 мая 2019

Существует специальная конфигурация системы, чтобы отключить диалоги прав доступа USB: https://github.com/aosp-mirror/platform_frameworks_base/blob/8ff4a5a5b510e724b25ac00369696594bb0c9fdc/core/res/res/values/config.xml#L2283

Может быть, вы также можете изменить его во время выполнения с привилегиями root с помощью setprop.

Другой способ - настроить класс UsbUserSettingsManager, а именно этот метод: https://android.googlesource.com/platform/frameworks/base.git/+/master/services/usb/java/com/android/server/usb/UsbUserSettingsManager.java#178

Я предположил, что как владелец устройства вы имеете полный контроль над исходным кодом вашего ПЗУ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...