Android-Framework grants permissions to installed applications by default

1. Environment

Qualcomm 865 Android

2. Scenario

Proactively grant permissions to installed applications to avoid permission requests

Note: This method does not take effect for applications prefabricated into the system.

3. Code implementation

frameworks/base/core/java/android/app/AppOpsManager.java
@@ -1802,7 +1802,7 @@ public class AppOpsManager {
             AppOpsManager.MODE_ALLOWED, // READ_ICC_SMS
             AppOpsManager.MODE_ALLOWED, // WRITE_ICC_SMS
             AppOpsManager.MODE_DEFAULT, // WRITE_SETTINGS
-            getSystemAlertWindowDefault(), // SYSTEM_ALERT_WINDOW
+            AppOpsManager.MODE_ALLOWED, //getSystemAlertWindowDefault(), // SYSTEM_ALERT_WINDOW
             AppOpsManager.MODE_ALLOWED, // ACCESS_NOTIFICATIONS
             AppOpsManager.MODE_ALLOWED, // CAMERA
             AppOpsManager.MODE_ALLOWED, // RECORD_AUDIO
packages/apps/PermissionController/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
@@ -388,14 +388,14 @@ public class GrantPermissionsActivity extends Activity
                 }
             }
         }
-
+/*
         setContentView(mViewHandler.createView());
 
         Window window = getWindow();
         WindowManager.LayoutParams layoutParams = window.getAttributes();
         mViewHandler.updateWindowAttributes(layoutParams);
         window.setAttributes(layoutParams);
-
+*/
         // Restore UI state after lifecycle events. This has to be before
         // showNextPermissionGroupGrantRequest is called. showNextPermissionGroupGrantRequest might
         // update the UI and the UI behaves differently for updates and initial creations.
@@ -707,10 +707,17 @@ public class GrantPermissionsActivity extends Activity
 
                 // Set the permission message as the title so it can be announced.
                 setTitle(message);
-
+/*
                 mViewHandler.updateUi(groupState.mGroup.getName(), numGrantRequests, currentIndex,
                         icon, message, detailMessage, mButtonLabels);
-
+                        */
+                if (groupState.mGroup.getName() != null) {
+                   Log.d(LOG_TAG, "requestedPermission groupState.mGroup.getName() = " + groupState.mGroup.getName());
+                    try {
+                          onPermissionGrantResult(groupState.mGroup.getName(), GRANTED_ALWAYS);
+                        } catch (Exception e){}
+                    }
+                        
                 return true;
             }
 

Note: In this solution, when the application user data is cleared, the permissions will also be cleared. For related processing methods, please refer to another blog:

Android-Framework clears application user data without clearing permissions-CSDN Blog

Guess you like

Origin blog.csdn.net/banzhuantuqiang/article/details/133943149