diff options
author | 2021-04-30 23:00:51 +0000 | |
---|---|---|
committer | 2021-04-30 23:00:51 +0000 | |
commit | 9443a3e84d73d3423ede16e158b641fb320910dd (patch) | |
tree | 7a1bee57de50daf2a5d51fc2df6b211defccd959 | |
parent | 0833b47147e53f741f5558b8137a099075d1d964 (diff) | |
parent | 8d701c3a8e3c96da41bf91a778788d603c58e7d5 (diff) |
Merge "Filter package visibility in getAllPermissionGroups()." into sc-dev
-rw-r--r-- | services/core/java/com/android/server/pm/permission/PermissionManagerService.java | 9 |
1 files changed, 7 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 a1fa5865f5d1..884bbea2eb28 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -498,13 +498,18 @@ public class PermissionManagerService extends IPermissionManager.Stub { if (mPackageManagerInt.getInstantAppPackageName(callingUid) != null) { return ParceledListSlice.emptyList(); } + + final List<PermissionGroupInfo> out = new ArrayList<>(); synchronized (mLock) { - final List<PermissionGroupInfo> out = new ArrayList<>(); for (ParsedPermissionGroup pg : mRegistry.getPermissionGroups()) { out.add(PackageInfoUtils.generatePermissionGroupInfo(pg, flags)); } - return new ParceledListSlice<>(out); } + + final int callingUserId = UserHandle.getUserId(callingUid); + out.removeIf(it -> mPackageManagerInt.filterAppAccess(it.packageName, callingUid, + callingUserId)); + return new ParceledListSlice<>(out); } |