From 8472fdb563d418a16e000bc76fa203e425f19432 Mon Sep 17 00:00:00 2001 From: Sam Dubey Date: Tue, 8 Mar 2022 05:05:23 +0000 Subject: [PATCH] Revert "Update PackageInfo APIs to reflect shared UID status" Revert "Update test to check PackageInfo" Revert submission 17050883-leave_shared_uid_pkginfo Reason for revert: Breaks AppIntegrityManagerTest* tests Bug: 223167660 Reverted Changes: I9a0c5d5ad:Update PackageInfo APIs to reflect shared UID stat... Ib338b21ab:Update test to check PackageInfo Change-Id: I7b5debf8c0ba38bf168a4fff36108ceef4e294a8 --- .../android/content/pm/PackageManager.java | 3 -- .../android/content/pm/PackageParser.java | 31 +++++++------------ .../android/server/pm/SharedUidMigration.java | 14 ++++++--- .../server/pm/parsing/PackageInfoUtils.java | 6 ---- 4 files changed, 22 insertions(+), 32 deletions(-) diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 2915d852cc26d..f4bc1616da2b9 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -121,9 +121,6 @@ public abstract class PackageManager { /** {@hide} */ public static final boolean APPLY_DEFAULT_TO_DEVICE_PROTECTED_STORAGE = true; - /** {@hide} */ - public static final boolean ENABLE_SHARED_UID_MIGRATION = true; - /** * This exception is thrown when a given package, application, or component * name cannot be found. diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 4d4a57db84bea..e914432630f71 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -1944,26 +1944,19 @@ public class PackageParser { TypedArray sa = res.obtainAttributes(parser, com.android.internal.R.styleable.AndroidManifest); - int maxSdkVersion = 0; - if (PackageManager.ENABLE_SHARED_UID_MIGRATION) { - maxSdkVersion = sa.getInteger( - com.android.internal.R.styleable.AndroidManifest_sharedUserMaxSdkVersion, 0); - } - if (maxSdkVersion == 0 || maxSdkVersion >= Build.VERSION.RESOURCES_SDK_INT) { - String str = sa.getNonConfigurationString( - com.android.internal.R.styleable.AndroidManifest_sharedUserId, 0); - if (str != null && str.length() > 0) { - String nameError = validateName(str, true, true); - if (nameError != null && !"android".equals(pkg.packageName)) { - outError[0] = " specifies bad sharedUserId name \"" - + str + "\": " + nameError; - mParseError = PackageManager.INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID; - return null; - } - pkg.mSharedUserId = str.intern(); - pkg.mSharedUserLabel = sa.getResourceId( - com.android.internal.R.styleable.AndroidManifest_sharedUserLabel, 0); + String str = sa.getNonConfigurationString( + com.android.internal.R.styleable.AndroidManifest_sharedUserId, 0); + if (str != null && str.length() > 0) { + String nameError = validateName(str, true, true); + if (nameError != null && !"android".equals(pkg.packageName)) { + outError[0] = " specifies bad sharedUserId name \"" + + str + "\": " + nameError; + mParseError = PackageManager.INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID; + return null; } + pkg.mSharedUserId = str.intern(); + pkg.mSharedUserLabel = sa.getResourceId( + com.android.internal.R.styleable.AndroidManifest_sharedUserLabel, 0); } pkg.installLocation = sa.getInteger( diff --git a/services/core/java/com/android/server/pm/SharedUidMigration.java b/services/core/java/com/android/server/pm/SharedUidMigration.java index e44ef662efff8..a7d5e95501496 100644 --- a/services/core/java/com/android/server/pm/SharedUidMigration.java +++ b/services/core/java/com/android/server/pm/SharedUidMigration.java @@ -17,7 +17,6 @@ package com.android.server.pm; import android.annotation.IntDef; -import android.content.pm.PackageManager; import android.os.Build; import android.os.SystemProperties; @@ -60,15 +59,22 @@ public final class SharedUidMigration { @Retention(RetentionPolicy.SOURCE) public @interface Strategy {} - @Strategy private static final int DEFAULT = BEST_EFFORT; + /** + * All shared UID migration is disabled. + * This is not a strategy that can be set with system properties. + * To disable shared UID migration, change {@link #DEFAULT} to this value. + */ + private static final int DISABLED = 0; + /** * Whether shared UID migration is fully disabled. Disabled means the sharedUserMaxSdkVersion * attribute will be directly ignored in the parsing phase. */ + @SuppressWarnings("ConstantConditions") public static boolean isDisabled() { - return !PackageManager.ENABLE_SHARED_UID_MIGRATION; + return DEFAULT == DISABLED; } /** @@ -82,7 +88,7 @@ public final class SharedUidMigration { final int s = SystemProperties.getInt(PROPERTY_KEY, DEFAULT); // No transition strategies can be used (http://b/221088088) - if (s > BEST_EFFORT || s < NEW_INSTALL_ONLY) { + if (s > BEST_EFFORT || s <= DISABLED) { return DEFAULT; } return s; diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java index 124df47345ae6..63469cb24f2fd 100644 --- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java +++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java @@ -122,12 +122,6 @@ public class PackageInfoUtils { info.isStub = pkg.isStub(); info.coreApp = pkg.isCoreApp(); - if (!pkgSetting.hasSharedUser()) { - // It is possible that this shared UID app has left - info.sharedUserId = null; - info.sharedUserLabel = 0; - } - if ((flags & PackageManager.GET_ACTIVITIES) != 0) { final int N = pkg.getActivities().size(); if (N > 0) {