diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 39ed9c2d51d38..861fec7cc2364 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -2349,10 +2349,9 @@ 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) { - // TODO(b/152629990): It appears that the package doesn't actually get newly - // installed in this case, so the installReason shouldn't get modified? for (int currentUserId : allUsersList) { - if (!previousUserIds.contains(currentUserId)) { + if (!previousUserIds.contains(currentUserId) + && ps.getInstalled(currentUserId)) { ps.setInstallReason(installReason, currentUserId); } } diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp index ba580ecaad16f..e3c60fdfc6975 100644 --- a/services/tests/servicestests/Android.bp +++ b/services/tests/servicestests/Android.bp @@ -108,6 +108,7 @@ android_test { data: [ ":JobTestApp", + ":StubTestApp", ], java_resources: [ diff --git a/services/tests/servicestests/AndroidTest.xml b/services/tests/servicestests/AndroidTest.xml index 5a0f1ee963a2e..4c638d669019f 100644 --- a/services/tests/servicestests/AndroidTest.xml +++ b/services/tests/servicestests/AndroidTest.xml @@ -28,6 +28,17 @@