From 37ede2019d2d245c2de2c9bf049526a108cf33ce Mon Sep 17 00:00:00 2001 From: Alex Buynytskyy Date: Thu, 4 Jan 2024 00:18:16 +0000 Subject: Stop marking apps as privileged if they are not signed properly. Fixes: 311374917 Test: atest android.content.pm.cts.PackageManagerTest Change-Id: I5b5b81cf43b06837a22c8dfd170a112106dd64c1 Merged-In: I5b5b81cf43b06837a22c8dfd170a112106dd64c1 (cherry picked from commit 3ee5dfdcba047051ce81dca0696d6ddfeafe2d98) --- services/core/java/com/android/server/pm/InstallPackageHelper.java | 7 +++++-- 1 file 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 a56ac9de6ebe..0ec70238ff64 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 { -- cgit v1.2.3-59-g8ed1b