summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Philip P. Moltmann <moltmann@google.com> 2019-05-23 23:21:49 -0700
committer android-build-merger <android-build-merger@google.com> 2019-05-23 23:21:49 -0700
commit4ec6c1e80781100bc99d1f6f9d63febe40d6116e (patch)
tree1fcbb5f9d86fb53b5fa51a7974d513d781b3e1e5
parentc75728625e2dd21e86e6964701b4d03ba67986a9 (diff)
parent49259731455c4e3542ccde93426e82bde7287178 (diff)
Merge "Don't expand loc permission on fresh Q install" into qt-dev
am: 4925973145 Change-Id: I1c882fbf686a70da685854c3ae7c703eb8372cc9
-rw-r--r--PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java60
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;