summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Buynytskyy <alexbuy@google.com>2024-01-04 00:18:16 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-02-15 09:40:20 +0000
commitdde955da4adc67a16088373f424b2305e86bed4f (patch)
tree677fed84514d7fb48f69499ea63308573f660fcd
parentac275076540476d0e40d16bccc341bf0d628ca4f (diff)
downloadbase-dde955da4adc67a16088373f424b2305e86bed4f.tar.gz
Stop marking apps as privileged if they are not signed properly.
Fixes: 311374917 Test: atest android.content.pm.cts.PackageManagerTest (cherry picked from commit 3ee5dfdcba047051ce81dca0696d6ddfeafe2d98) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:06775341ad7d77410798f95117cbee7a1a02c201) Merged-In: I5b5b81cf43b06837a22c8dfd170a112106dd64c1 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 d0304b43215e..f26a9f8f3aed 100644
--- a/services/core/java/com/android/server/pm/InstallPackageHelper.java
+++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java
@@ -4742,7 +4742,9 @@ final class InstallPackageHelper {
private void assertPackageWithSharedUserIdIsPrivileged(AndroidPackage pkg)
throws PackageManagerException {
- if (!AndroidPackageUtils.isPrivileged(pkg) && (pkg.getSharedUserId() != null)) {
+ if (!AndroidPackageUtils.isPrivileged(pkg)
+ && (pkg.getSharedUserId() != null)
+ && !pkg.isLeavingSharedUser()) {
SharedUserSetting sharedUserSetting = null;
try {
synchronized (mPm.mLock) {
@@ -4783,7 +4785,8 @@ final class InstallPackageHelper {
if (((scanFlags & SCAN_AS_PRIVILEGED) == 0)
&& !AndroidPackageUtils.isPrivileged(pkg)
&& (pkg.getSharedUserId() != null)
- && !skipVendorPrivilegeScan) {
+ && !skipVendorPrivilegeScan
+ && !pkg.isLeavingSharedUser()) {
SharedUserSetting sharedUserSetting = null;
synchronized (mPm.mLock) {
try {