From f98e1086f5a039d98becf7203367b663e72d09f5 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Tue, 4 Feb 2020 10:11:12 -0800 Subject: [PATCH] Call getPackageInfo() with cleared calling identity in ensureSystemPackageName(). Otherwise non-primary users might get a SecurityException. Bug: 145981139 Bug: 148763415 Test: manual Change-Id: I5883e296a0d753e43075cbf0abc5dc4da91e2fca (cherry picked from commit e693b797bcf0be38f0fc9d878bb5278eacf8b4b1) --- .../com/android/server/pm/PackageManagerService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 80706c1862e58..dbb29470d4ee3 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -21228,8 +21228,13 @@ public class PackageManagerService extends IPackageManager.Stub if (packageName == null) { return null; } - if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) { - return null; + long token = Binder.clearCallingIdentity(); + try { + if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) { + return null; + } + } finally { + Binder.restoreCallingIdentity(token); } return packageName; }