summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/InstallPackageHelper.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java
index 5bd8ca63c3ff..186cf5e37003 100644
--- a/services/core/java/com/android/server/pm/InstallPackageHelper.java
+++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java
@@ -1170,6 +1170,7 @@ final class InstallPackageHelper {
@GuardedBy("mPm.mInstallLock")
private void preparePackageLI(InstallRequest request) throws PrepareFailure {
+ final int[] allUsers = mPm.mUserManager.getUserIds();
final int installFlags = request.getInstallFlags();
final boolean onExternal = request.getVolumeUuid() != null;
final boolean instantApp = ((installFlags & PackageManager.INSTALL_INSTANT_APP) != 0);
@@ -1445,7 +1446,7 @@ final class InstallPackageHelper {
systemApp = ps.isSystem();
request.setOriginUsers(ps.queryUsersInstalledOrHasData(
- mPm.mUserManager.getUserIds()));
+ allUsers));
}
final int numGroups = ArrayUtils.size(parsedPackage.getPermissionGroups());
@@ -1703,7 +1704,6 @@ final class InstallPackageHelper {
final boolean isInstantApp = (scanFlags & SCAN_AS_INSTANT_APP) != 0;
- final int[] allUsers;
final int[] installedUsers;
final int[] uninstalledUsers;
@@ -1796,7 +1796,6 @@ final class InstallPackageHelper {
}
// In case of rollback, remember per-user/profile install state
- allUsers = mPm.mUserManager.getUserIds();
installedUsers = ps.queryInstalledUsers(allUsers, true);
uninstalledUsers = ps.queryInstalledUsers(allUsers, false);
@@ -2220,7 +2219,7 @@ final class InstallPackageHelper {
final PackageSetting ps = mPm.mSettings.getPackageLPr(packageName);
if (ps != null) {
installRequest.setNewUsers(
- ps.queryInstalledUsers(mPm.mUserManager.getUserIds(), true));
+ ps.queryInstalledUsers(allUsers, true));
ps.setUpdateAvailable(false /*updateAvailable*/);
File appMetadataFile = new File(ps.getPath(), APP_METADATA_FILE_NAME);
@@ -2327,7 +2326,7 @@ final class InstallPackageHelper {
// Retrieve the overlays for shared libraries of the package.
if (!ps.getPkgState().getUsesLibraryInfos().isEmpty()) {
for (SharedLibraryWrapper sharedLib : ps.getPkgState().getUsesLibraryInfos()) {
- for (int currentUserId : UserManagerService.getInstance().getUserIds()) {
+ for (int currentUserId : allUsers) {
if (sharedLib.getType() != SharedLibraryInfo.TYPE_DYNAMIC) {
// TODO(146804378): Support overlaying static shared libraries
continue;
@@ -2416,9 +2415,8 @@ final class InstallPackageHelper {
}
// Set install reason for users that are having the package newly installed.
- final int[] allUsersList = mPm.mUserManager.getUserIds();
if (userId == UserHandle.USER_ALL) {
- for (int currentUserId : allUsersList) {
+ for (int currentUserId : allUsers) {
if (!previousUserIds.contains(currentUserId)
&& ps.getInstalled(currentUserId)) {
ps.setInstallReason(installReason, currentUserId);
@@ -2438,7 +2436,7 @@ final class InstallPackageHelper {
}
// Ensure that the uninstall reason is UNKNOWN for users with the package installed.
- for (int currentUserId : allUsersList) {
+ for (int currentUserId : allUsers) {
if (ps.getInstalled(currentUserId)) {
ps.setUninstallReason(UNINSTALL_REASON_UNKNOWN, currentUserId);
}