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

Commit 48aa86bd authored by Jeff Davidson's avatar Jeff Davidson
Browse files

Expose APIs to analyze UIDs in UserHandle/Process.

Clients of the NetworkStatsManager public APIs may get UIDs belonging
to other users, and UIDs which don't actually represent applications.
These APIs allow clients to understand whether a given ID belongs to
the same user as themselves, and whether an ID represents an
application or something else (e.g. a system UID).

Change-Id: Ia56d5891521ce98e5594c41da8f9d756819deb66
parent f61a8478
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -29061,6 +29061,7 @@ package android.os {
    method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException;
    method public static final int getUidForName(java.lang.String);
    method public static final boolean is64Bit();
    method public static boolean isApplicationUid(int);
    method public static final void killProcess(int);
    method public static final int myPid();
    method public static final int myTid();
@@ -29241,6 +29242,7 @@ package android.os {
  public final class UserHandle implements android.os.Parcelable {
    ctor public UserHandle(android.os.Parcel);
    method public int describeContents();
    method public static android.os.UserHandle getUserHandleForUid(int);
    method public static android.os.UserHandle readFromParcel(android.os.Parcel);
    method public void writeToParcel(android.os.Parcel, int);
    method public static void writeToParcel(android.os.UserHandle, android.os.Parcel);
+2 −0
Original line number Diff line number Diff line
@@ -31354,6 +31354,7 @@ package android.os {
    method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException;
    method public static final int getUidForName(java.lang.String);
    method public static final boolean is64Bit();
    method public static boolean isApplicationUid(int);
    method public static final void killProcess(int);
    method public static final int myPid();
    method public static final int myTid();
@@ -31580,6 +31581,7 @@ package android.os {
    ctor public UserHandle(android.os.Parcel);
    method public int describeContents();
    method public int getIdentifier();
    method public static android.os.UserHandle getUserHandleForUid(int);
    method public deprecated boolean isOwner();
    method public boolean isSystem();
    method public static int myUserId();
+2 −0
Original line number Diff line number Diff line
@@ -29070,6 +29070,7 @@ package android.os {
    method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException;
    method public static final int getUidForName(java.lang.String);
    method public static final boolean is64Bit();
    method public static boolean isApplicationUid(int);
    method public static final void killProcess(int);
    method public static final int myPid();
    method public static final int myTid();
@@ -29251,6 +29252,7 @@ package android.os {
    ctor public UserHandle(android.os.Parcel);
    method public int describeContents();
    method public static int getAppId(int);
    method public static android.os.UserHandle getUserHandleForUid(int);
    method public static android.os.UserHandle readFromParcel(android.os.Parcel);
    method public void writeToParcel(android.os.Parcel, int);
    method public static void writeToParcel(android.os.UserHandle, android.os.Parcel);
+10 −0
Original line number Diff line number Diff line
@@ -822,6 +822,16 @@ public class Process {
        return UserHandle.of(UserHandle.getUserId(myUid()));
    }

    /**
     * Returns whether the given uid belongs to an application.
     * @param uid A kernel uid.
     * @return Whether the uid corresponds to an application sandbox running in
     *     a specific user.
     */
    public static boolean isApplicationUid(int uid) {
        return UserHandle.isApp(uid);
    }

    /**
     * Returns whether the current process is in an isolated sandbox.
     * @hide
+9 −0
Original line number Diff line number Diff line
@@ -129,6 +129,15 @@ public final class UserHandle implements Parcelable {
        }
    }

    /**
     * Returns the user for a given uid.
     * @param uid A uid for an application running in a particular user.
     * @return A {@link UserHandle} for that user.
     */
    public static UserHandle getUserHandleForUid(int uid) {
        return of(getUserId(uid));
    }

    /**
     * Returns the user id for a given uid.
     * @hide