diff --git a/services/core/java/com/android/server/pm/Computer.java b/services/core/java/com/android/server/pm/Computer.java index 2be23123fd7e2..9748aba84c732 100644 --- a/services/core/java/com/android/server/pm/Computer.java +++ b/services/core/java/com/android/server/pm/Computer.java @@ -41,6 +41,7 @@ import android.content.pm.SharedLibraryInfo; import android.content.pm.SigningDetails; import android.content.pm.UserInfo; import android.content.pm.VersionedPackage; +import android.os.UserHandle; import android.util.ArrayMap; import android.util.ArraySet; import android.util.Pair; @@ -519,14 +520,15 @@ public interface Computer extends PackageDataSnapshot { * returns false. */ boolean isComponentEffectivelyEnabled(@NonNull ComponentInfo componentInfo, - @UserIdInt int userId); + @NonNull UserHandle userHandle); /** * @return true if the runtime app user enabled state and the install-time app manifest enabled * state are both effectively enabled for the given app. Or if the app cannot be found, * returns false. */ - boolean isApplicationEffectivelyEnabled(@NonNull String packageName, @UserIdInt int userId); + boolean isApplicationEffectivelyEnabled(@NonNull String packageName, + @NonNull UserHandle userHandle); @Nullable KeySet getKeySetByAlias(@NonNull String packageName, @NonNull String alias); diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index 42b10c857843f..acd4a96c28173 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -5131,9 +5131,10 @@ public class ComputerEngine implements Computer { @Override public boolean isComponentEffectivelyEnabled(@NonNull ComponentInfo componentInfo, - @UserIdInt int userId) { + @NonNull UserHandle userHandle) { try { String packageName = componentInfo.packageName; + int userId = userHandle.getIdentifier(); int appEnabledSetting = mSettings.getApplicationEnabledSetting(packageName, userId); if (appEnabledSetting == COMPONENT_ENABLED_STATE_DEFAULT) { @@ -5156,9 +5157,10 @@ public class ComputerEngine implements Computer { @Override public boolean isApplicationEffectivelyEnabled(@NonNull String packageName, - @UserIdInt int userId) { + @NonNull UserHandle userHandle) { try { - int appEnabledSetting = mSettings.getApplicationEnabledSetting(packageName, userId); + int appEnabledSetting = mSettings.getApplicationEnabledSetting(packageName, + userHandle.getIdentifier()); if (appEnabledSetting == COMPONENT_ENABLED_STATE_DEFAULT) { final AndroidPackage pkg = getPackage(packageName); if (pkg == null) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 95208ec1b24eb..6bc876037cfb8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2570,7 +2570,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService if (best == null || cur.priority > best.priority) { if (computer.isComponentEffectivelyEnabled(cur.getComponentInfo(), - UserHandle.USER_SYSTEM)) { + UserHandle.SYSTEM)) { best = cur; } else { Slog.w(TAG, "Domain verification agent found but not enabled"); diff --git a/services/core/java/com/android/server/pm/VerifyingSession.java b/services/core/java/com/android/server/pm/VerifyingSession.java index 5b967ec20cd3c..f340f9374dd5d 100644 --- a/services/core/java/com/android/server/pm/VerifyingSession.java +++ b/services/core/java/com/android/server/pm/VerifyingSession.java @@ -26,7 +26,6 @@ import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING; import static android.content.pm.SigningDetails.SignatureSchemeVersion.SIGNING_BLOCK_V4; import static android.os.PowerWhitelistManager.REASON_PACKAGE_VERIFIER; import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED; -import static android.os.Process.SYSTEM_UID; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; import static com.android.server.pm.PackageManagerService.CHECK_PENDING_INTEGRITY_VERIFICATION; @@ -408,7 +407,7 @@ final class VerifyingSession { final int numRequiredVerifierPackages = requiredVerifierPackages.size(); for (int i = numRequiredVerifierPackages - 1; i >= 0; i--) { if (!snapshot.isApplicationEffectivelyEnabled(requiredVerifierPackages.get(i), - SYSTEM_UID)) { + verifierUser)) { Slog.w(TAG, "Required verifier: " + requiredVerifierPackages.get(i) + " is disabled"); requiredVerifierPackages.remove(i);