授予USB权限作为设备所有者

sda*_*bet 9 android android-usb android-enterprise android-management-api

设备所有者可以授予运行时权限使用给第三方应用DevicePolicyManager.setPermissionGrantState() ,以避免用户提示。

但是,设备所有者也可以通过任何方式授予USB权限,以使该应用无需用户提示即可访问插入的USB设备吗?

我也尝试调用UsbManager.grantPermission()(反射),但是它引发了一个,SecurityException因为它需要MANAGE_USB仅授予系统应用程序(显然不授予设备所有者)的权限。

注意:我正在寻找在非root用户和非自定义Android系统上运行的解决方案,设备所有者应用是使用Android Enterprise设置方法设置的

Woj*_*ski 4

有一个特殊的系统配置可以禁用USB权限对话框: https://github.com/aosp-mirror/platform_frameworks_base/blob/8ff4a5a5b510e724b25ac00369696594bb0c9fdc/core/res/res/values/config.xml#L2283

也许您还可以使用 setprop 在运行时以 root 权限更改它。

另一种方法是自定义UsbUserSettingsManager类,具体是这个方法:https ://android.googlesource.com/platform/frameworks/base.git/+/master/services/usb/java/com/android/server/usb/UsbUserSettingsManager .java#178

我假设作为设备所有者,您可以完全控制 ROM 源代码。