diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageSetting.java | 4 |
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; + } } |