Filter package visibility in queryPermissionsByGroup().

Bug: 183121510
Test: manual
Change-Id: I48a0b62be696174bca22b7de003849baa83c0534
This commit is contained in:
Hai Zhang
2021-04-28 00:46:45 +00:00
parent 1700fa9e5c
commit 4756081329

View File

@@ -564,18 +564,23 @@ public class PermissionManagerService extends IPermissionManager.Stub {
if (mPackageManagerInt.getInstantAppPackageName(callingUid) != null) {
return null;
}
final List<PermissionInfo> out = new ArrayList<>(10);
synchronized (mLock) {
if (groupName != null && mRegistry.getPermissionGroup(groupName) == null) {
return null;
}
final ArrayList<PermissionInfo> out = new ArrayList<PermissionInfo>(10);
for (Permission bp : mRegistry.getPermissions()) {
if (Objects.equals(bp.getGroup(), groupName)) {
out.add(bp.generatePermissionInfo(flags));
}
}
return new ParceledListSlice<>(out);
}
final int callingUserId = UserHandle.getUserId(callingUid);
out.removeIf(it -> mPackageManagerInt.filterAppAccess(it.packageName, callingUid,
callingUserId));
return new ParceledListSlice<>(out);
}
@Override