From 1090b7909edea4179a8f53dfa38ec51304f4fda1 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Wed, 28 Apr 2021 00:50:02 +0000 Subject: [PATCH] Filter package visibility in getPermissionGroupInfo(). Bug: 186113473 Test: manual Change-Id: I584695034003f2a58f32d7c453d3a1835f14a31e --- .../permission/PermissionManagerService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 2d1178a3f116d..a94487b69abea 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -516,10 +516,24 @@ public class PermissionManagerService extends IPermissionManager.Stub { if (mPackageManagerInt.getInstantAppPackageName(callingUid) != null) { return null; } + + final PermissionGroupInfo permissionGroupInfo; synchronized (mLock) { - return PackageInfoUtils.generatePermissionGroupInfo( - mRegistry.getPermissionGroup(groupName), flags); + final ParsedPermissionGroup permissionGroup = mRegistry.getPermissionGroup(groupName); + if (permissionGroup == null) { + return null; + } + permissionGroupInfo = PackageInfoUtils.generatePermissionGroupInfo(permissionGroup, + flags); } + + final int callingUserId = UserHandle.getUserId(callingUid); + if (mPackageManagerInt.filterAppAccess(permissionGroupInfo.packageName, callingUid, + callingUserId)) { + EventLog.writeEvent(0x534e4554, "186113473", callingUid, groupName); + return null; + } + return permissionGroupInfo; }