From dccef33d901398b1f39a8fea4dd919d57c5643f2 Mon Sep 17 00:00:00 2001 From: Patrick Baumann Date: Wed, 7 Feb 2018 09:05:12 -0800 Subject: [PATCH] Install for all on replace Prior to this change, installing for all users that results in a replace will only install for currently installed users. This change ensures that when USER_ALL is defined, that we properly update settings for all users. Change-Id: Ie2aae958d012e60e002aef84c90c5573bc06b158 Fixes: 64472557 Test: manual - adb install for single user, replace for all works --- .../java/com/android/server/pm/PackageManagerService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2816bbd36b0bc..05949998abf3f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -16610,6 +16610,12 @@ public class PackageManagerService extends IPackageManager.Stub if (userId != UserHandle.USER_ALL) { ps.setInstalled(true, userId); ps.setEnabled(COMPONENT_ENABLED_STATE_DEFAULT, userId, installerPackageName); + } else { + for (int currentUserId : sUserManager.getUserIds()) { + ps.setInstalled(true, currentUserId); + ps.setEnabled(COMPONENT_ENABLED_STATE_DEFAULT, currentUserId, + installerPackageName); + } } // When replacing an existing package, preserve the original install reason for all