Merge "Fix a bug in UserSystemPackageInstaller#installWhitelistedSystemPackages"
diff --git a/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java b/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java
index 937b2cf..b57d4d5 100644
--- a/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java
+++ b/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java
@@ -219,38 +219,21 @@
 
         // Install/uninstall system packages per user.
         for (int userId : mUm.getUserIds()) {
-            final Set<String> userWhitelist = getInstallablePackagesForUserId(userId);
+            final Set<String> userAllowlist = getInstallablePackagesForUserId(userId);
 
-            // If null, run for all packages
-            if (userWhitelist == null) {
-                pmInt.forEachPackageState(packageState -> {
-                    if (packageState.getPkg() == null) {
-                        return;
-                    }
-                    final boolean install = !packageState.getTransientState()
-                            .isHiddenUntilInstalled();
-                    if (packageState.getUserStateOrDefault(userId).isInstalled() != install
-                            && shouldChangeInstallationState(packageState, install, userId,
-                            isFirstBoot, isConsideredUpgrade, preExistingPackages)) {
-                        changesToCommit.add(userId, packageState.getPackageName(), install);
-                    }
-                });
-            } else {
-                for (String packageName : userWhitelist) {
-                    PackageStateInternal packageState = pmInt.getPackageStateInternal(packageName);
-                    if (packageState.getPkg() == null) {
-                        continue;
-                    }
-
-                    final boolean install = !packageState.getTransientState()
-                            .isHiddenUntilInstalled();
-                    if (packageState.getUserStateOrDefault(userId).isInstalled() != install
-                            && shouldChangeInstallationState(packageState, install, userId,
-                            isFirstBoot, isConsideredUpgrade, preExistingPackages)) {
-                        changesToCommit.add(userId, packageState.getPackageName(), install);
-                    }
+            pmInt.forEachPackageState(packageState -> {
+                if (packageState.getPkg() == null) {
+                    return;
                 }
-            }
+                boolean install = (userAllowlist == null
+                                || userAllowlist.contains(packageState.getPackageName()))
+                        && !packageState.getTransientState().isHiddenUntilInstalled();
+                if (packageState.getUserStateOrDefault(userId).isInstalled() != install
+                        && shouldChangeInstallationState(packageState, install, userId,
+                        isFirstBoot, isConsideredUpgrade, preExistingPackages)) {
+                    changesToCommit.add(userId, packageState.getPackageName(), install);
+                }
+            });
         }
 
         pmInt.commitPackageStateMutation(null, packageStateMutator -> {