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

Commit 6ec462de 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 am: 8927357b

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id31355ce04a22c27bb83793b5664a3f6358fd83d
parents b2c31eab 8927357b
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -7593,6 +7593,7 @@ package android.os {
    method @NonNull public static String formatUid(int);
    method @NonNull public static String formatUid(int);
    method public static int getAppId(int);
    method public static int getAppId(int);
    method public int getIdentifier();
    method public int getIdentifier();
    method public static int getUid(@NonNull android.os.UserHandle, int);
    method @Deprecated public boolean isOwner();
    method @Deprecated public boolean isOwner();
    method public boolean isSystem();
    method public boolean isSystem();
    method public static int myUserId();
    method public static int myUserId();
+13 −0
Original line number Original line Diff line number Diff line
@@ -302,6 +302,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.
     * Returns the app id (or base uid) for a given uid, stripping out the user id from it.
     * @hide
     * @hide
+8 −2
Original line number Original line Diff line number Diff line
@@ -265,7 +265,10 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
        for (Entry<Integer, Boolean> app : apps.entrySet()) {
        for (Entry<Integer, Boolean> app : apps.entrySet()) {
            List<Integer> list = app.getValue() ? system : network;
            List<Integer> list = app.getValue() ? system : network;
            for (int user : users) {
            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 {
        try {
@@ -550,7 +553,10 @@ public class PermissionMonitor implements PackageManagerInternal.PackageListObse
        for (UidRange range : ranges) {
        for (UidRange range : ranges) {
            for (int userId = range.getStartUser(); userId <= range.getEndUser(); userId++) {
            for (int userId = range.getStartUser(); userId <= range.getEndUser(); userId++) {
                for (int appId : appIds) {
                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)) {
                    if (range.contains(uid)) {
                        result.add(uid);
                        result.add(uid);
                    }
                    }