From dcb567646ca22d5c2808e3ceced75b6b75a63abd Mon Sep 17 00:00:00 2001 From: Songchun Fan Date: Fri, 3 Dec 2021 16:11:36 -0800 Subject: [pm] fix getInstalledApplications ag/16176950 introduced a regression where duplicated results were included in getInstalledApplications by mistake because packageState() might include uninstalled packages. This CL reverts that. BUG: 208768731 Test: manual and verified that wellbeing doesn't crash Change-Id: Ica00a47b77d84d9669cc3062332b0d9948ef20e6 --- services/core/java/com/android/server/pm/ComputerEngine.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index 9b2179026124..59250c5d452d 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -4629,9 +4629,9 @@ public class ComputerEngine implements Computer { } } else { list = new ArrayList<>(mPackages.size()); - for (PackageStateInternal packageState : packageStates.values()) { - final AndroidPackage pkg = packageState.getPkg(); - if (pkg == null) { + for (AndroidPackage p : mPackages.values()) { + final PackageStateInternal packageState = packageStates.get(p.getPackageName()); + if (packageState == null) { continue; } if (filterSharedLibPackage(packageState, Binder.getCallingUid(), userId, flags)) { @@ -4640,10 +4640,10 @@ public class ComputerEngine implements Computer { if (shouldFilterApplication(packageState, callingUid, userId)) { continue; } - ApplicationInfo ai = PackageInfoUtils.generateApplicationInfo(pkg, flags, + ApplicationInfo ai = PackageInfoUtils.generateApplicationInfo(p, flags, packageState.getUserStateOrDefault(userId), userId, packageState); if (ai != null) { - ai.packageName = resolveExternalPackageName(pkg); + ai.packageName = resolveExternalPackageName(p); list.add(ai); } } -- cgit v1.2.3-59-g8ed1b