From a978e6f5fabd0502837488feba324d001eaeb62a Mon Sep 17 00:00:00 2001 From: Jackal Guo Date: Wed, 13 Oct 2021 14:02:59 +0800 Subject: [PATCH] Apply visibility to #getSuspendedPackageLauncherExtras Callers shouldn't be able to get the launcher extras if the target package isn't visible to them. Bug: 202298672 Test: atest AppEnumerationTests Test: atest SuspendPackagesTest Test: manually using the PoC in the buganizer to ensure the symptom no longer exists. Change-Id: Iad37765710b0b13f9c338bbacdd68be5d2574d22 --- .../com/android/server/pm/LauncherAppsService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index 8721603cf4e44..375ffc497eadb 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -746,11 +746,15 @@ public class LauncherAppsService extends SystemService { @Override public Bundle getSuspendedPackageLauncherExtras(String packageName, UserHandle user) { - if (!canAccessProfile(user.getIdentifier(), "Cannot get launcher extras")) { + final int callingUid = injectBinderCallingUid(); + final int userId = user.getIdentifier(); + if (!canAccessProfile(userId, "Cannot get launcher extras")) { return null; } - return mPackageManagerInternal.getSuspendedPackageLauncherExtras(packageName, - user.getIdentifier()); + if (mPackageManagerInternal.filterAppAccess(packageName, callingUid, userId)) { + return null; + } + return mPackageManagerInternal.getSuspendedPackageLauncherExtras(packageName, userId); } @Override