Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f517fbd authored by BK Choi's avatar BK Choi Committed by Android (Google) Code Review
Browse files

Merge "Fix a bug in UserSystemPackageInstaller#installWhitelistedSystemPackages"

parents f40a743c 2fce0901
Loading
Loading
Loading
Loading
+14 −31
Original line number Diff line number Diff line
@@ -219,38 +219,21 @@ class UserSystemPackageInstaller {

        // 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();
                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);
                }
            });
            } 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.commitPackageStateMutation(null, packageStateMutator -> {