diff options
-rw-r--r-- | src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java b/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java index cedb108e..65c348c1 100644 --- a/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java +++ b/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java @@ -79,6 +79,8 @@ class RuntimePermissionsUpgradeController { final int appCount = apps.size(); final boolean sdkUpgradedFromP; + boolean isFreshInstall = false; + if (currentVersion <= -1) { Log.i(LOG_TAG, "Upgrading from Android P"); @@ -90,6 +92,10 @@ class RuntimePermissionsUpgradeController { } if (currentVersion == 0) { + if (!sdkUpgradedFromP) { + isFreshInstall = true; + } + Log.i(LOG_TAG, "Grandfathering SMS and CallLog permissions"); final List<String> smsPermissions = Utils.getPlatformPermissionNamesOfGroup( @@ -178,7 +184,7 @@ class RuntimePermissionsUpgradeController { } if (currentVersion == 6) { - if (sdkUpgradedFromP) { + if (!isFreshInstall || sdkUpgradedFromP) { Log.i(LOG_TAG, "Expanding location permissions"); for (int i = 0; i < appCount; i++) { @@ -200,7 +206,7 @@ class RuntimePermissionsUpgradeController { if (group.areRuntimePermissionsGranted() && bgGroup != null - && !bgGroup.isUserSet() && !bgGroup.isSystemFixed() + && !bgGroup.isSystemFixed() && !bgGroup.isPolicyFixed()) { bgGroup.grantRuntimePermissions(group.isUserFixed()); } |