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

Commit 9dcebfc2 authored by Manjeet Rulhania's avatar Manjeet Rulhania Committed by Android (Google) Code Review
Browse files

Merge "Update permission APIs for device support" into main

parents 1531d038 0f245abc
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -4699,8 +4699,14 @@ public class ActivityManager {
    @UnsupportedAppUsage
    public static int checkComponentPermission(String permission, int uid,
            int owningUid, boolean exported) {
        return checkComponentPermission(permission, uid, Context.DEVICE_ID_DEFAULT,
                owningUid, exported);
    }

    /** @hide */
    public static int checkComponentPermission(String permission, int uid, int deviceId,
            int owningUid, boolean exported) {
        // Root, system server get to do everything.
        final int appId = UserHandle.getAppId(uid);
        if (canAccessUnexportedComponents(uid)) {
            return PackageManager.PERMISSION_GRANTED;
        }
@@ -4727,8 +4733,7 @@ public class ActivityManager {
            return PackageManager.PERMISSION_GRANTED;
        }
        try {
            return AppGlobals.getPackageManager()
                    .checkUidPermission(permission, uid);
            return AppGlobals.getPermissionManager().checkUidPermission(uid, permission, deviceId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -4737,8 +4742,8 @@ public class ActivityManager {
    /** @hide */
    public static int checkUidPermission(String permission, int uid) {
        try {
            return AppGlobals.getPackageManager()
                    .checkUidPermission(permission, uid);
            return AppGlobals.getPermissionManager().checkUidPermission(
                    uid, permission, Context.DEVICE_ID_DEFAULT);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+2 −1
Original line number Diff line number Diff line
@@ -827,7 +827,8 @@ public class ApplicationPackageManager extends PackageManager {

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

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -2262,7 +2262,7 @@ class ContextImpl extends Context {
            Log.v(TAG, "Treating renounced permission " + permission + " as denied");
            return PERMISSION_DENIED;
        }
        return PermissionManager.checkPermission(permission, pid, uid);
        return PermissionManager.checkPermission(permission, pid, uid, getDeviceId());
    }

    /** @hide */
+2 −0
Original line number Diff line number Diff line
@@ -924,4 +924,6 @@ interface IActivityManager {
    void unregisterUidFrozenStateChangedCallback(in IUidFrozenStateChangedCallback callback);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)")
    int[] getUidFrozenState(in int[] uids);

    int checkPermissionForDevice(in String permission, int pid, int uid, int deviceId);
}
+10 −2
Original line number Diff line number Diff line
@@ -343,6 +343,9 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
        }
    }

    /**
     * Grants permission for the {@link Context#DEVICE_ID_DEFAULT default device}
     */
    @Override
    public void grantRuntimePermission(String packageName, String permission, int userId)
            throws RemoteException {
@@ -353,12 +356,16 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
        }
        final long identity = Binder.clearCallingIdentity();
        try {
            mPermissionManager.grantRuntimePermission(packageName, permission, userId);
            mPermissionManager.grantRuntimePermission(packageName, permission,
                    Context.DEVICE_ID_DEFAULT, userId);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
    }

    /**
     * Revokes permission for the {@link Context#DEVICE_ID_DEFAULT default device}
     */
    @Override
    public void revokeRuntimePermission(String packageName, String permission, int userId)
            throws RemoteException {
@@ -369,7 +376,8 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
        }
        final long identity = Binder.clearCallingIdentity();
        try {
            mPermissionManager.revokeRuntimePermission(packageName, permission, userId, null);
            mPermissionManager.revokeRuntimePermission(packageName, permission,
                    Context.DEVICE_ID_DEFAULT, userId, null);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
Loading