Merge "Fix a bug in UserSystemPackageInstaller#installWhitelistedSystemPackages"
This commit is contained in:
@@ -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 -> {
|
||||
|
||||
Reference in New Issue
Block a user