diff options
author | Svet Ganov <svetoslavganov@google.com> | 2015-07-15 20:55:20 -0700 |
---|---|---|
committer | Svet Ganov <svetoslavganov@google.com> | 2015-07-15 20:55:23 -0700 |
commit | 4ab8b4fc91eaf8be6dc18b3428687b1d1ec295a1 (patch) | |
tree | 8ba1b371e920d8cd5577499bad3dd344bf0939c7 /src/com/android/packageinstaller | |
parent | b9b20815315d35ed2d10edcbbae4913da36f4107 (diff) | |
download | android_packages_apps_PackageInstaller-4ab8b4fc91eaf8be6dc18b3428687b1d1ec295a1.tar.gz android_packages_apps_PackageInstaller-4ab8b4fc91eaf8be6dc18b3428687b1d1ec295a1.tar.bz2 android_packages_apps_PackageInstaller-4ab8b4fc91eaf8be6dc18b3428687b1d1ec295a1.zip |
Do not disable app ops on a permission revocation for modern apps.
We were disabling both permission and app ops for modern apps - to
have app ops as a safety net. This creates the issue that if a
permission is revoked (which disables the app op) and data is
cleared, then apps that get permissions granted by default would
end up with th permission but not the app op and will not work.
We still enable the app op on a permission grant to ensure that
a legacy app with a disabled app ops will have the app op enabled
if updated and the permission is then granted.
bug:22464566
Change-Id: Ia5f4de42bcaf6f736e50d6f3109878ff2ce8ff9f
Diffstat (limited to 'src/com/android/packageinstaller')
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissionGroup.java | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java index 0dca9bb7..efd4bd10 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java @@ -295,7 +295,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return false; } - // Enable the permission app op before the permission grant. + // Ensure the permission app op enabled before the permission grant. if (permission.hasAppOp() && !permission.isAppOpAllowed()) { permission.setAppOpAllowed(true); mAppOps.setMode(permission.getAppOp(), uid, mPackageInfo.packageName, @@ -385,13 +385,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> return false; } - // Disable the permission app op before the permission. - if (permission.hasAppOp() && permission.isAppOpAllowed()) { - permission.setAppOpAllowed(false); - mAppOps.setMode(permission.getAppOp(), uid, mPackageInfo.packageName, - AppOpsManager.MODE_IGNORED); - } - // Revoke the permission if needed. if (permission.isGranted()) { permission.setGranted(false); |