Filter package visibility in getPermissionInfo().

Bug: 183122164
Test: manual
Change-Id: I5019de75b19f9f53ab71dec36cf01d1aa887936a
This commit is contained in:
Hai Zhang
2021-04-28 00:48:21 +00:00
parent 1700fa9e5c
commit 24d9d7d4c2

View File

@@ -531,16 +531,26 @@ public class PermissionManagerService extends IPermissionManager.Stub {
if (mPackageManagerInt.getInstantAppPackageName(callingUid) != null) {
return null;
}
final AndroidPackage opPackage = mPackageManagerInt.getPackage(opPackageName);
final int targetSdkVersion = getPermissionInfoCallingTargetSdkVersion(opPackage,
callingUid);
final PermissionInfo permissionInfo;
synchronized (mLock) {
final Permission bp = mRegistry.getPermission(permName);
if (bp == null) {
return null;
}
return bp.generatePermissionInfo(flags, targetSdkVersion);
permissionInfo = bp.generatePermissionInfo(flags, targetSdkVersion);
}
final int callingUserId = UserHandle.getUserId(callingUid);
if (mPackageManagerInt.filterAppAccess(permissionInfo.packageName, callingUid,
callingUserId)) {
EventLog.writeEvent(0x534e4554, "183122164", callingUid, permName);
return null;
}
return permissionInfo;
}
private int getPermissionInfoCallingTargetSdkVersion(@Nullable AndroidPackage pkg, int uid) {