summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-05-12 11:03:29 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2015-05-12 23:26:49 +0000
commit0430e255aebb6cf64f65eeaaf052786ee2834819 (patch)
tree0ac899007e15422eb8ab0153d809547cf093ec0d
parent785a9b6369db4c46a389a43ae30e1f6e8003366b (diff)
downloadandroid_packages_apps_PackageInstaller-0430e255aebb6cf64f65eeaaf052786ee2834819.tar.gz
android_packages_apps_PackageInstaller-0430e255aebb6cf64f65eeaaf052786ee2834819.tar.bz2
android_packages_apps_PackageInstaller-0430e255aebb6cf64f65eeaaf052786ee2834819.zip
Runtime permissions for system components not revokable - package installer
bug:20953205 Change-Id: Ie497e3124f127843d10645a625b47f2ee77dd269
-rw-r--r--src/com/android/packageinstaller/permission/model/Permission.java4
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionApps.java4
-rw-r--r--src/com/android/packageinstaller/permission/model/PermissionGroup.java11
-rw-r--r--src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java5
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java5
5 files changed, 29 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/model/Permission.java b/src/com/android/packageinstaller/permission/model/Permission.java
index bfe44af7..388ae75a 100644
--- a/src/com/android/packageinstaller/permission/model/Permission.java
+++ b/src/com/android/packageinstaller/permission/model/Permission.java
@@ -72,6 +72,10 @@ public final class Permission {
}
}
+ public boolean isSystemFixed() {
+ return (mFlags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0;
+ }
+
public boolean isPolicyFixed() {
return (mFlags & PackageManager.FLAG_PERMISSION_POLICY_FIXED) != 0;
}
diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java
index 2ea2092d..70edbbcc 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionApps.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java
@@ -141,6 +141,10 @@ public class PermissionApps {
return mPermissionGroup.isPolicyFixed();
}
+ public boolean isSystemFixed() {
+ return mPermissionGroup.isSystemFixed();
+ }
+
@Override
public int compareTo(PermissionApp another) {
final int result = mLabel.compareTo(another.mLabel);
diff --git a/src/com/android/packageinstaller/permission/model/PermissionGroup.java b/src/com/android/packageinstaller/permission/model/PermissionGroup.java
index 749ac29e..451b5d9e 100644
--- a/src/com/android/packageinstaller/permission/model/PermissionGroup.java
+++ b/src/com/android/packageinstaller/permission/model/PermissionGroup.java
@@ -430,6 +430,17 @@ public final class PermissionGroup implements Comparable<PermissionGroup> {
return true;
}
+ public boolean isSystemFixed() {
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ Permission permission = mPermissions.valueAt(i);
+ if (permission.isSystemFixed()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Override
public int compareTo(PermissionGroup another) {
final int result = mLabel.toString().compareTo(another.mLabel.toString());
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
index cbe098a0..8fc78a54 100644
--- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
@@ -154,6 +154,11 @@ public final class AppPermissionsFragment extends SettingsWithHeader
});
for (PermissionGroup group : mAppPermissions.getPermissionGroups()) {
+ // We currently will not show permissions fixed by the system
+ // which is what the system does for system components.
+ if (group.isSystemFixed()) {
+ continue;
+ }
SwitchPreference preference = new SwitchPreference(activity);
preference.setOnPreferenceChangeListener(this);
preference.setKey(group.getName());
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
index 85113842..f18acfe3 100644
--- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
@@ -131,6 +131,11 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements
}
preferences.removeAll();
for (PermissionApp app : mPermissionApps.getApps()) {
+ // We currently will not show permissions fixed by the system
+ // which is what the system does for system components.
+ if (app.isSystemFixed()) {
+ continue;
+ }
SwitchPreference pref = (SwitchPreference) findPreference(app.getKey());
if (pref == null) {
pref = new SwitchPreference(context);