summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java6
-rw-r--r--services/core/java/com/android/server/pm/PackageSetting.java4
2 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index b9dfc2161f94..4752ace95716 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -7397,8 +7397,10 @@ public class PackageManagerService extends IPackageManager.Stub {
if (replace) {
ps.installPermissionsFixed = false;
- origPermissions = new PermissionsState(permissionsState);
- permissionsState.reset();
+ if (!ps.isSharedUser()) {
+ origPermissions = new PermissionsState(permissionsState);
+ permissionsState.reset();
+ }
}
permissionsState.setGlobalGids(mGlobalGids);
diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
index a3f4c0b545bf..e7c0ef765164 100644
--- a/services/core/java/com/android/server/pm/PackageSetting.java
+++ b/services/core/java/com/android/server/pm/PackageSetting.java
@@ -74,4 +74,8 @@ final class PackageSetting extends PackageSettingBase {
public boolean isSystem() {
return (pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
+
+ public boolean isSharedUser() {
+ return sharedUser != null;
+ }
}