summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Philip P. Moltmann <moltmann@google.com> 2019-05-23 23:29:24 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-05-23 23:29:24 +0000
commitf0c2960c9504a11aaecfceae5195c5c734dc001c (patch)
treead50741ca15aa0aa0d2e22281faf0d16698e1796
parentc85ace2da06a1a552c8f86298c6d82cb6ec569ed (diff)
parent227919830f13743ae607f33b5ca3d4aec66a4da6 (diff)
Merge "Grandfather bg location perm on upgrade" into qt-dev
-rw-r--r--PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java24
1 files changed, 23 insertions, 1 deletions
diff --git a/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java b/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java
index a7cae3ba8..cf668c5ed 100644
--- a/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java
+++ b/PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java
@@ -38,7 +38,7 @@ class RuntimePermissionsUpgradeController {
private static final String LOG_TAG = RuntimePermissionsUpgradeController.class.getSimpleName();
// The latest version of the runtime permissions database
- private static final int LATEST_VERSION = 3;
+ private static final int LATEST_VERSION = 4;
private RuntimePermissionsUpgradeController() {
/* do nothing - hide constructor */
@@ -163,6 +163,28 @@ class RuntimePermissionsUpgradeController {
currentVersion = 3;
}
+ if (currentVersion == 3) {
+ Log.i(LOG_TAG, "Grandfathering location background permissions");
+
+ for (int i = 0; i < appCount; i++) {
+ final PackageInfo app = apps.get(i);
+ if (app.requestedPermissions == null) {
+ continue;
+ }
+
+ for (String requestedPermission : app.requestedPermissions) {
+ if (requestedPermission.equals(
+ Manifest.permission.ACCESS_BACKGROUND_LOCATION)) {
+ context.getPackageManager().addWhitelistedRestrictedPermission(
+ app.packageName, Manifest.permission.ACCESS_BACKGROUND_LOCATION,
+ PackageManager.FLAG_PERMISSION_WHITELIST_UPGRADE);
+ break;
+ }
+ }
+ }
+ currentVersion = 4;
+ }
+
// XXX: Add new upgrade steps above this point.
return currentVersion;