diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/InstallPackageHelper.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index b541e33bde9e..52750e875c02 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -4373,7 +4373,9 @@ final class InstallPackageHelper { private void assertPackageWithSharedUserIdIsPrivileged(AndroidPackage pkg) throws PackageManagerException { - if (!pkg.isPrivileged() && (pkg.getSharedUserId() != null)) { + if (!pkg.isPrivileged() + && (pkg.getSharedUserId() != null) + && !pkg.isLeavingSharedUid()) { SharedUserSetting sharedUserSetting = null; try { sharedUserSetting = mPm.mSettings.getSharedUserLPw(pkg.getSharedUserId(), @@ -4407,7 +4409,8 @@ final class InstallPackageHelper { if (((scanFlags & SCAN_AS_PRIVILEGED) == 0) && !pkg.isPrivileged() && (pkg.getSharedUserId() != null) - && !skipVendorPrivilegeScan) { + && !skipVendorPrivilegeScan + && !pkg.isLeavingSharedUid()) { SharedUserSetting sharedUserSetting = null; synchronized (mPm.mLock) { try { |