Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8927357b authored by Chiachang Wang's avatar Chiachang Wang Committed by Automerger Merge Worker
Browse files

Merge "Create new system API in UserHandle to get uid" am: af649431

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1573942

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia8303c08be1e76ff48e60965518de4d469dc0352
parents fe5578dc af649431
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7593,6 +7593,7 @@ package android.os {
    method @NonNull public static String formatUid(int);
    method public static int getAppId(int);
    method public int getIdentifier();
    method public static int getUid(@NonNull android.os.UserHandle, int);
    method @Deprecated public boolean isOwner();
    method public boolean isSystem();
    method public static int myUserId();
+13 −0
Original line number Diff line number Diff line
@@ -294,6 +294,19 @@ public final class UserHandle implements Parcelable {
        }
    }

    /**
     * Returns the uid that is composed from the userHandle and the appId.
     *
     * @param userHandle the UserHandle to compose the uid
     * @param appId the AppId to compose the uid
     * @return the uid that is composed from the userHandle and the appId
     * @hide
     */
    @SystemApi
    public static int getUid(@NonNull UserHandle userHandle, @AppIdInt int appId) {
        return getUid(userHandle.getIdentifier(), appId);
    }

    /**
     * Returns the app id (or base uid) for a given uid, stripping out the user id from it.
     * @hide
+8 −2
Original line number Diff line number Diff line
@@ -265,7 +265,10 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
        for (Entry<Integer, Boolean> app : apps.entrySet()) {
            List<Integer> list = app.getValue() ? system : network;
            for (int user : users) {
                list.add(UserHandle.getUid(user, app.getKey()));
                final UserHandle handle = UserHandle.of(user);
                if (handle == null) continue;

                list.add(UserHandle.getUid(handle, app.getKey()));
            }
        }
        try {
@@ -550,7 +553,10 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
        for (UidRange range : ranges) {
            for (int userId = range.getStartUser(); userId <= range.getEndUser(); userId++) {
                for (int appId : appIds) {
                    final int uid = UserHandle.getUid(userId, appId);
                    final UserHandle handle = UserHandle.of(userId);
                    if (handle == null) continue;

                    final int uid = UserHandle.getUid(handle, appId);
                    if (range.contains(uid)) {
                        result.add(uid);
                    }