summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alex Buynytskyy <alexbuy@google.com> 2024-01-04 00:18:16 +0000
committer Alex Buynytskyy <alexbuy@google.com> 2024-01-29 15:55:33 +0000
commite336c7d7c9ceb49d934bbef0d27ecef344ad80ed (patch)
tree10a1029a70a8e06e6cbff9d095770bbc23f1c4a9
parenteee89b5a9f3c35ef0d1101debb039c7f080d33f6 (diff)
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)
-rw-r--r--services/core/java/com/android/server/pm/InstallPackageHelper.java7
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 {