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
This commit is contained in:
Hai Zhang
2020-02-04 10:11:12 -08:00
parent 25f9b23c6a
commit e693b797bc

View File

@@ -21231,9 +21231,14 @@ public class PackageManagerService extends IPackageManager.Stub
if (packageName == null) { if (packageName == null) {
return null; return null;
} }
long token = Binder.clearCallingIdentity();
try {
if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) { if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
return null; return null;
} }
} finally {
Binder.restoreCallingIdentity(token);
}
return packageName; return packageName;
} }