summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/model
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-07-10 14:30:34 -0700
committerSvet Ganov <svetoslavganov@google.com>2015-07-10 15:43:34 -0700
commit16b031455af5d950ab7c74041c62b05df942d929 (patch)
treedbaacb86f90357a8d5e1ebe0d8e5a7d2e276ecb1 /src/com/android/packageinstaller/permission/model
parent57b5d43f4839c62225cf616296f464b0739e66ba (diff)
downloadandroid_packages_apps_PackageInstaller-16b031455af5d950ab7c74041c62b05df942d929.tar.gz
android_packages_apps_PackageInstaller-16b031455af5d950ab7c74041c62b05df942d929.tar.bz2
android_packages_apps_PackageInstaller-16b031455af5d950ab7c74041c62b05df942d929.zip
Teach strorage appops.
Change app ops before toggling a permissions as we don't always restart the app when permisisons change and this may cause evaluation of the storage mount state which depends on both app ops and permissions. bug:22104923 Change-Id: I274b581a3ef44ae33c668aaa9eab5c9379365856
Diffstat (limited to 'src/com/android/packageinstaller/permission/model')
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
index 8e86678d..0dca9bb7 100644
--- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
@@ -295,6 +295,13 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
return false;
}
+ // Enable the permission app op before the permission grant.
+ if (permission.hasAppOp() && !permission.isAppOpAllowed()) {
+ permission.setAppOpAllowed(true);
+ mAppOps.setMode(permission.getAppOp(), uid, mPackageInfo.packageName,
+ AppOpsManager.MODE_ALLOWED);
+ }
+
// Grant the permission if needed.
if (!permission.isGranted()) {
permission.setGranted(true);
@@ -316,13 +323,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
0, mUserHandle);
}
}
-
- // Enable the permission app op.
- if (permission.hasAppOp() && !permission.isAppOpAllowed()) {
- permission.setAppOpAllowed(true);
- mAppOps.setMode(permission.getAppOp(), uid, mPackageInfo.packageName,
- AppOpsManager.MODE_ALLOWED);
- }
} else {
// Legacy apps cannot have a not granted permission but just in case.
// Also if the permissions has no corresponding app op, then it is a
@@ -385,6 +385,13 @@ 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);
@@ -416,13 +423,6 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
mUserHandle);
}
}
-
- // Disable the permission app op.
- if (permission.hasAppOp() && permission.isAppOpAllowed()) {
- permission.setAppOpAllowed(false);
- mAppOps.setMode(permission.getAppOp(), uid, mPackageInfo.packageName,
- AppOpsManager.MODE_IGNORED);
- }
} else {
// Legacy apps cannot have a non-granted permission but just in case.
// Also if the permission has no corresponding app op, then it is a