summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-05-24 05:59:44 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-05-24 05:59:44 +0000
commit49259731455c4e3542ccde93426e82bde7287178 (patch)
tree2abe7d50a08a6286abf2dfcd00b0467f2381af83
parentf0c2960c9504a11aaecfceae5195c5c734dc001c (diff)
parent5b8f567738bd8cd47d4eb7e5e2de96e267494ec4 (diff)
Merge "Don't expand loc permission on fresh Q install" into qt-dev
-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;