From 06ad0f5a850b97988c7ef1ac68da9213dbb4139f Mon Sep 17 00:00:00 2001 From: Jackal Guo Date: Tue, 26 Oct 2021 14:59:29 +0800 Subject: [PATCH] Fix shell command 'list staged-sessions' After applying visibility to get session info APIs, ROOT_UID should still be able to list staged-sessions via adb shell. Bug: 204141763 Test: manually test 'pm list staged-sessions' via adb shell with and without root to verify if the result is the same. Change-Id: I09a8a146be82deba10d3b11deea7a0b344a36c56 --- .../core/java/com/android/server/pm/PackageManagerService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 3eaa26e77bfc7..7b0571b2e7fcc 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -8914,7 +8914,8 @@ public class PackageManagerService extends IPackageManager.Stub * return {@code true} if any one application belongs to the shared user ID meets the criteria. */ boolean canQueryPackage(int callingUid, @Nullable String targetPackageName) { - if (targetPackageName == null) { + // Since getSettingLPr returns null for ROOT_UID, add an extra check for it here. + if (callingUid == Process.ROOT_UID || targetPackageName == null) { return true; } synchronized (mLock) {