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

Commit fab75510 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "PackageNamePermissionQuery uid->userId"

parents 7fa9c377 833fe586
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -684,8 +684,7 @@ public class ApplicationPackageManager extends PackageManager {

    @Override
    public int checkPermission(String permName, String pkgName) {
        return PermissionManager
                .checkPackageNamePermission(permName, pkgName, getUserId());
        return PermissionManager.checkPackageNamePermission(permName, pkgName, getUserId());
    }

    @Override
+15 −12
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.ActivityThread;
import android.app.IActivityManager;
@@ -637,24 +638,25 @@ public final class PermissionManager {
    private static final class PackageNamePermissionQuery {
        final String permName;
        final String pkgName;
        final int uid;
        final int userId;

        PackageNamePermissionQuery(@Nullable String permName, @Nullable String pkgName, int uid) {
        PackageNamePermissionQuery(@Nullable String permName, @Nullable String pkgName,
                @UserIdInt int userId) {
            this.permName = permName;
            this.pkgName = pkgName;
            this.uid = uid;
            this.userId = userId;
        }

        @Override
        public String toString() {
            return String.format(
                    "PackageNamePermissionQuery(pkgName=\"%s\", permName=\"%s, uid=%s\")",
                    pkgName, permName, uid);
                    "PackageNamePermissionQuery(pkgName=\"%s\", permName=\"%s, userId=%s\")",
                    pkgName, permName, userId);
        }

        @Override
        public int hashCode() {
            return Objects.hash(permName, pkgName, uid);
            return Objects.hash(permName, pkgName, userId);
        }

        @Override
@@ -670,16 +672,16 @@ public final class PermissionManager {
            }
            return Objects.equals(permName, other.permName)
                    && Objects.equals(pkgName, other.pkgName)
                    && uid == other.uid;
                    && userId == other.userId;
        }
    }

    /* @hide */
    private static int checkPackageNamePermissionUncached(
            String permName, String pkgName, int uid) {
            String permName, String pkgName, @UserIdInt int userId) {
        try {
            return ActivityThread.getPermissionManager().checkPermission(
                    permName, pkgName, uid);
                    permName, pkgName, userId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -693,7 +695,7 @@ public final class PermissionManager {
                @Override
                protected Integer recompute(PackageNamePermissionQuery query) {
                    return checkPackageNamePermissionUncached(
                            query.permName, query.pkgName, query.uid);
                            query.permName, query.pkgName, query.userId);
                }
            };

@@ -702,9 +704,10 @@ public final class PermissionManager {
     *
     * @hide
     */
    public static int checkPackageNamePermission(String permName, String pkgName, int uid) {
    public static int checkPackageNamePermission(String permName, String pkgName,
            @UserIdInt int userId) {
        return sPackageNamePermissionCache.query(
                new PackageNamePermissionQuery(permName, pkgName, uid));
                new PackageNamePermissionQuery(permName, pkgName, userId));
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -884,7 +884,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
    }

    @Override
    public int checkPermission(String permName, String pkgName, int userId) {
    public int checkPermission(String permName, String pkgName, @UserIdInt int userId) {
        // Not using Objects.requireNonNull() here for compatibility reasons.
        if (permName == null || pkgName == null) {
            return PackageManager.PERMISSION_DENIED;