diff options
author | 2019-05-23 23:34:37 -0700 | |
---|---|---|
committer | 2019-05-23 23:34:37 -0700 | |
commit | 0425d7413cbf2942e1111ce3e14f447149e01b62 (patch) | |
tree | 4532126cf31b40925d661aa686b15e8d0f4b3f1b | |
parent | 2a2bb2054ea2fe52e091d4f5ab44a8e5c35709c4 (diff) | |
parent | 4ec6c1e80781100bc99d1f6f9d63febe40d6116e (diff) |
Merge "Don't expand loc permission on fresh Q install" into qt-dev am: 4925973145
am: 4ec6c1e807
Change-Id: I8a95de0d51b2bb084eff9f94e40d607acd2d4594
-rw-r--r-- | PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java | 60 |
1 files changed, 38 insertions, 22 deletions
diff --git a/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java b/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java index cf668c5ed..6c11432c2 100644 --- a/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java +++ b/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java @@ -78,7 +78,18 @@ class RuntimePermissionsUpgradeController { | PackageManager.GET_PERMISSIONS); final int appCount = apps.size(); - if (currentVersion <= 0) { + final boolean sdkUpgradedFromP; + if (currentVersion <= -1) { + Log.i(LOG_TAG, "Upgrading from Android P"); + + sdkUpgradedFromP = true; + + currentVersion = 0; + } else { + sdkUpgradedFromP = false; + } + + if (currentVersion == 0) { Log.i(LOG_TAG, "Grandfathering SMS and CallLog permissions"); final List<String> smsPermissions = Utils.getPlatformPermissionNamesOfGroup( @@ -105,34 +116,39 @@ class RuntimePermissionsUpgradeController { } if (currentVersion == 1) { - Log.i(LOG_TAG, "Expanding location permissions"); - - for (int i = 0; i < appCount; i++) { - final PackageInfo app = apps.get(i); - if (app.requestedPermissions == null) { - continue; - } + if (sdkUpgradedFromP) { + Log.i(LOG_TAG, "Expanding location permissions"); - for (String perm : app.requestedPermissions) { - String groupName = Utils.getGroupOfPlatformPermission(perm); - - if (!TextUtils.equals(groupName, Manifest.permission_group.LOCATION)) { + for (int i = 0; i < appCount; i++) { + final PackageInfo app = apps.get(i); + if (app.requestedPermissions == null) { continue; } - final AppPermissionGroup group = AppPermissionGroup.create(context, app, perm, - false); - final AppPermissionGroup bgGroup = group.getBackgroundPermissions(); + for (String perm : app.requestedPermissions) { + String groupName = Utils.getGroupOfPlatformPermission(perm); - if (group.areRuntimePermissionsGranted() - && bgGroup != null - && !bgGroup.isUserSet() && !bgGroup.isSystemFixed() - && !bgGroup.isPolicyFixed()) { - bgGroup.grantRuntimePermissions(group.isUserFixed()); - } + if (!TextUtils.equals(groupName, Manifest.permission_group.LOCATION)) { + continue; + } - break; + final AppPermissionGroup group = AppPermissionGroup.create(context, app, + perm, false); + final AppPermissionGroup bgGroup = group.getBackgroundPermissions(); + + if (group.areRuntimePermissionsGranted() + && bgGroup != null + && !bgGroup.isUserSet() && !bgGroup.isSystemFixed() + && !bgGroup.isPolicyFixed()) { + bgGroup.grantRuntimePermissions(group.isUserFixed()); + } + + break; + } } + } else { + Log.i(LOG_TAG, "Not expanding location permissions as this is not an upgrade " + + "from Android P"); } currentVersion = 2; |