顶级目录:/frameworks/base/services/core/java/

修改文件:com/android/server/pm/permission/DefaultPermissionGrantPolicy.java

private void grantDefaultSystemHandlerPermissions(int userId) {
    Log.i(TAG, "Granting permissions to default platform handlers for user " + userId);

+    PackageInfo yourAppPackageInfo = getPackageInfo("your app package");
+    if (yourAppPackageInfo != null && doesPackageSupportRuntimePermissions(yourAppPackageInfo)) {
+        grantPermissionsToPackage(yourAppPackageInfo, userId, false, true, true, STORAGE_PERMISSIONS);
+        grantPermissionsToPackage(yourAppPackageInfo, userId, false, true, true, ALWAYS_LOCATION_PERMISSIONS);
+    }
}
1
2
3
4
5
6
7
8
9

这里可授予的权限包有:

  1. STORAGE_PERMISSIONS
  2. ALWAYS_LOCATION_PERMISSIONS
  3. PHONE_PERMISSIONS
  4. CAMERA_PERMISSIONS
  5. SMS_PERMISSIONS
  6. CALENDAR_PERMISSIONS
  7. CONTACTS_PERMISSIONS
  8. SENSORS_PERMISSIONS
  9. MICROPHONE_PERMISSIONS
  10. ACTIVITY_RECOGNITION_PERMISSIONS

这些权限包涉及的具体权限,可在DefaultPermissionGrantPolicy.java这个文件中找到。

注意

这里预授权的应用,指的是APP在安装时默认授权,这些权限必须在AndroidManifest.xml中提前声明,如果是APK更新后加入的权限,可能不生效。