summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/pm/PackageSettingBase.java
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-03-25 22:57:39 -0700
committerSvet Ganov <svetoslavganov@google.com>2015-03-25 23:48:17 -0700
commitd5752bdc8fd39d4f0a508f9088c538e30e73044a (patch)
tree3526cfdef1e846671a81778917b9f3cfc71c189d /services/core/java/com/android/server/pm/PackageSettingBase.java
parent4976d6b52588772117dff43fb814fe6661bfe598 (diff)
downloadframeworks_base-d5752bdc8fd39d4f0a508f9088c538e30e73044a.zip
frameworks_base-d5752bdc8fd39d4f0a508f9088c538e30e73044a.tar.gz
frameworks_base-d5752bdc8fd39d4f0a508f9088c538e30e73044a.tar.bz2
Properly handle system app permissions - for real.
System apps targeting SDK greater than Lollipop MR1 get runtime permissions by default but if the user takes them away we should not regrant them. To do that we keep track for each package which user ids were handled in the last permissions update. If a new user id has appeared we grant runtime permissions for this user to the sys package. When we start clean (i.e. first boot) the sys packages were updated for no user so we grant the runtime perms for the owner. When reading a package from packages.xml we set the updated user ids to all users ids on the device as the state in the xml reflects the latest state before a shutdown, i.e. the last state when permissions were updated. Change-Id: I93135baa57950405a357b139c59f432cf02f0bc6
Diffstat (limited to 'services/core/java/com/android/server/pm/PackageSettingBase.java')
-rw-r--r--services/core/java/com/android/server/pm/PackageSettingBase.java1
1 files changed, 1 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index 9e8b3df..c40784b 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -198,6 +198,7 @@ abstract class PackageSettingBase extends SettingBase {
* Make a shallow copy of this package settings.
*/
public void copyFrom(PackageSettingBase base) {
+ setPermissionsUpdatedForUserIds(base.getPermissionsUpdatedForUserIds());
getPermissionsState().copyFrom(base.getPermissionsState());
primaryCpuAbiString = base.primaryCpuAbiString;
secondaryCpuAbiString = base.secondaryCpuAbiString;