天天看點

[RK3399][Android7.1] 調試筆記 --- 預設禁止彈出USB權限對話框

Platform: RK3399

OS: Android 7.1

Kernel: v4.4.83

現象:

問題一:

每次插上USB列印機會彈出以下權限框

[RK3399][Android7.1] 調試筆記 --- 預設禁止彈出USB權限對話框

問題二:

開機後主動打開列印機demo,預設沒有權限操作USB列印機

解決方法:

問題一對應方法:

diff --git a/packages/SystemUI/src/com/android/systemui/usb/UsbConfirmActivity.java b/packages/SystemUI/src/com/android/systemui/usb/UsbConfirmActivity.java
index 3eccccd..18130ab 100644
--- a/packages/SystemUI/src/com/android/systemui/usb/UsbConfirmActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/usb/UsbConfirmActivity.java
@@ -99,6 +99,11 @@ public class UsbConfirmActivity extends AlertActivity
 
         setupAlert();
 
+        //Kris, 190506, Release usb permission to app.
+        if (mResolveInfo.activityInfo.packageName.substring(0,11).equals("com.xxx")) {
+            onClick(this, AlertDialog.BUTTON_POSITIVE);
+        } 
     }
 
           

問題二對應方法:

@Override
diff --git a/services/usb/java/com/android/server/usb/UsbSettingsManager.java b/services/usb/java/com/android/server/usb/UsbSettingsManager.java
index de9ede3..337ffcf 100644
--- a/services/usb/java/com/android/server/usb/UsbSettingsManager.java
+++ b/services/usb/java/com/android/server/usb/UsbSettingsManager.java
@@ -999,6 +999,10 @@ class UsbSettingsManager {
     }
 
     public boolean hasPermission(UsbDevice device) {
+
+//Kris, 190506, Release usb permission to benebot app.
+       return true;
+/*
         synchronized (mLock) {
             int uid = Binder.getCallingUid();
             if (uid == Process.SYSTEM_UID || mDisablePermissionDialogs) {
@@ -1010,6 +1014,7 @@ class UsbSettingsManager {
             }
             return uidList.get(uid);
         }
+*/
     }
 
     public boolean hasPermission(UsbAccessory accessory) {
           

相關原理可參考 [RK3399][Android7.1] USB裝置權限申請控制流程小結

參考:

Android7.1去掉USB權限彈窗

Android繞過usb主機permision确認對話框framework修改方案