Merge "Fix a bug in UserSystemPackageInstaller#installWhitelistedSystemPackages"

This commit is contained in:
BK Choi
2022-07-27 19:55:03 +00:00
committed by Android (Google) Code Review

View File

@@ -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();
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 -> {