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-04 00:20:59 +0000
commit3ee5dfdcba047051ce81dca0696d6ddfeafe2d98 (patch)
tree26366ec2639d2cc0111654bf116d126b1cbda4d9
parent7f7167e8cb235ef90e2cd156866178c8f959026c (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.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 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 {