summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2015-06-22 17:48:19 -0700
committerAmith Yamasani <yamasani@google.com>2015-06-23 12:41:48 -0700
commit1d3660600282ec2cda1d5eeb114253923eb7dcc7 (patch)
treefa00ecae1f4933bb3e8a4998e5931cdf81755c92 /src/com
parenteea1ab14df885388c1804e6f38db9a780ed3f693 (diff)
downloadandroid_packages_apps_PackageInstaller-1d3660600282ec2cda1d5eeb114253923eb7dcc7.tar.gz
android_packages_apps_PackageInstaller-1d3660600282ec2cda1d5eeb114253923eb7dcc7.tar.bz2
android_packages_apps_PackageInstaller-1d3660600282ec2cda1d5eeb114253923eb7dcc7.zip
Mark permissions that are auto granted/revoked as policy_fixed
Let PackageManager know that the permission state was changed by policy so that it can't be modified by the user anymore. Bug: 21888917 Change-Id: Idd09005515fac89fb1603b3aff0345a1f5e7bd79
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissionGroup.java13
-rw-r--r--src/com/android/packageinstaller/permission/model/Permission.java8
-rw-r--r--src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java2
3 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
index 7b2de19a..6bd15aff 100644
--- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java
@@ -459,6 +459,19 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup>
return true;
}
+ public void setPolicyFixed() {
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ Permission permission = mPermissions.valueAt(i);
+ permission.setPolicyFixed(true);
+ mPackageManager.updatePermissionFlags(permission.getName(),
+ mPackageInfo.packageName,
+ PackageManager.FLAG_PERMISSION_POLICY_FIXED,
+ PackageManager.FLAG_PERMISSION_POLICY_FIXED,
+ mUserHandle);
+ }
+ }
+
public List<Permission> getPermissions() {
return new ArrayList<>(mPermissions.values());
}
diff --git a/src/com/android/packageinstaller/permission/model/Permission.java b/src/com/android/packageinstaller/permission/model/Permission.java
index 09c927be..da234bdb 100644
--- a/src/com/android/packageinstaller/permission/model/Permission.java
+++ b/src/com/android/packageinstaller/permission/model/Permission.java
@@ -96,6 +96,14 @@ public final class Permission {
}
}
+ public void setPolicyFixed(boolean policyFixed) {
+ if (policyFixed) {
+ mFlags |= PackageManager.FLAG_PERMISSION_POLICY_FIXED;
+ } else {
+ mFlags &= ~PackageManager.FLAG_PERMISSION_POLICY_FIXED;
+ }
+ }
+
public boolean shouldRevokeOnUpgrade() {
return (mFlags & PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE) != 0;
}
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
index 98773f54..29000606 100644
--- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
@@ -119,12 +119,14 @@ public class GrantPermissionsActivity extends Activity
case DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT: {
if (!group.areRuntimePermissionsGranted()) {
group.grantRuntimePermissions(false);
+ group.setPolicyFixed();
}
} break;
case DevicePolicyManager.PERMISSION_POLICY_AUTO_DENY: {
if (!group.areRuntimePermissionsGranted()) {
group.revokeRuntimePermissions(false);
+ group.setPolicyFixed();
}
} break;