Loading services/core/java/com/android/server/pm/PackageManagerService.java +5 −4 Original line number Diff line number Diff line Loading @@ -3217,10 +3217,11 @@ public class PackageManagerService extends IPackageManager.Stub { final PermissionsState permissionsState = ps.getPermissionsState(); // Compute GIDs only if requested final int[] gids = (flags & PackageManager.GET_GIDS) != 0 ? permissionsState.computeGids(userId) : EMPTY_INT_ARRAY; // TODO b/29879962 Calculate granted permissions only if needed in generatePackageInfo final Set<String> permissions = permissionsState.getPermissions(userId); final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY : permissionsState.computeGids(userId); // Compute granted permissions only if package has requested permissions final Set<String> permissions = ArrayUtils.isEmpty(p.requestedPermissions) ? Collections.<String>emptySet() : permissionsState.getPermissions(userId); final PackageUserState state = ps.readUserState(userId); return PackageParser.generatePackageInfo(p, gids, flags, Loading services/core/java/com/android/server/pm/PermissionsState.java +2 −1 Original line number Diff line number Diff line Loading @@ -274,7 +274,7 @@ public final class PermissionsState { return Collections.emptySet(); } Set<String> permissions = new ArraySet<>(); Set<String> permissions = new ArraySet<>(mPermissions.size()); final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { Loading @@ -282,6 +282,7 @@ public final class PermissionsState { if (hasInstallPermission(permission)) { permissions.add(permission); continue; } if (userId != UserHandle.USER_ALL) { Loading Loading
services/core/java/com/android/server/pm/PackageManagerService.java +5 −4 Original line number Diff line number Diff line Loading @@ -3217,10 +3217,11 @@ public class PackageManagerService extends IPackageManager.Stub { final PermissionsState permissionsState = ps.getPermissionsState(); // Compute GIDs only if requested final int[] gids = (flags & PackageManager.GET_GIDS) != 0 ? permissionsState.computeGids(userId) : EMPTY_INT_ARRAY; // TODO b/29879962 Calculate granted permissions only if needed in generatePackageInfo final Set<String> permissions = permissionsState.getPermissions(userId); final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY : permissionsState.computeGids(userId); // Compute granted permissions only if package has requested permissions final Set<String> permissions = ArrayUtils.isEmpty(p.requestedPermissions) ? Collections.<String>emptySet() : permissionsState.getPermissions(userId); final PackageUserState state = ps.readUserState(userId); return PackageParser.generatePackageInfo(p, gids, flags, Loading
services/core/java/com/android/server/pm/PermissionsState.java +2 −1 Original line number Diff line number Diff line Loading @@ -274,7 +274,7 @@ public final class PermissionsState { return Collections.emptySet(); } Set<String> permissions = new ArraySet<>(); Set<String> permissions = new ArraySet<>(mPermissions.size()); final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { Loading @@ -282,6 +282,7 @@ public final class PermissionsState { if (hasInstallPermission(permission)) { permissions.add(permission); continue; } if (userId != UserHandle.USER_ALL) { Loading