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 5ed633aae2979..a1fa5865f5d13 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; }