diff options
author | 2019-05-23 23:29:24 +0000 | |
---|---|---|
committer | 2019-05-23 23:29:24 +0000 | |
commit | f0c2960c9504a11aaecfceae5195c5c734dc001c (patch) | |
tree | ad50741ca15aa0aa0d2e22281faf0d16698e1796 | |
parent | c85ace2da06a1a552c8f86298c6d82cb6ec569ed (diff) | |
parent | 227919830f13743ae607f33b5ca3d4aec66a4da6 (diff) |
Merge "Grandfather bg location perm on upgrade" into qt-dev
-rw-r--r-- | PermissionController/src/com/android/packageinstaller/permission/service/RuntimePermissionsUpgradeController.java | 24 |
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; |