diff options
| author | 2024-01-04 00:18:16 +0000 | |
|---|---|---|
| committer | 2024-01-04 00:20:59 +0000 | |
| commit | 3ee5dfdcba047051ce81dca0696d6ddfeafe2d98 (patch) | |
| tree | 26366ec2639d2cc0111654bf116d126b1cbda4d9 | |
| parent | 7f7167e8cb235ef90e2cd156866178c8f959026c (diff) | |
Stop marking apps as privileged if they are not signed properly.
Fixes: 311374917
Test: atest android.content.pm.cts.PackageManagerTest
Change-Id: I5b5b81cf43b06837a22c8dfd170a112106dd64c1
| -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 b638d306544c..f8bc9d8f60b4 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -4590,7 +4590,9 @@ final class InstallPackageHelper { private void assertPackageWithSharedUserIdIsPrivileged(AndroidPackage pkg) throws PackageManagerException { - if (!AndroidPackageLegacyUtils.isPrivileged(pkg) && (pkg.getSharedUserId() != null)) { + if (!AndroidPackageLegacyUtils.isPrivileged(pkg) + && (pkg.getSharedUserId() != null) + && !pkg.isLeavingSharedUser()) { SharedUserSetting sharedUserSetting = null; try { synchronized (mPm.mLock) { @@ -4630,7 +4632,8 @@ final class InstallPackageHelper { if (((scanFlags & SCAN_AS_PRIVILEGED) == 0) && !AndroidPackageLegacyUtils.isPrivileged(pkg) && (pkg.getSharedUserId() != null) - && !skipVendorPrivilegeScan) { + && !skipVendorPrivilegeScan + && !pkg.isLeavingSharedUser()) { SharedUserSetting sharedUserSetting = null; synchronized (mPm.mLock) { try { |