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

Commit 0be58372 authored by Iván Budnik's avatar Iván Budnik Committed by Android (Google) Code Review
Browse files

Merge "Extract method for enforcing privileged routing permissions" into main

parents 49bbb76a 8afcfecc
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -192,6 +192,7 @@ class MediaRouter2ServiceImpl {

    // Start of methods that implement MediaRouter2 operations.

    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    @NonNull
    public boolean verifyPackageExists(@NonNull String clientPackageName) {
        final int pid = Binder.getCallingPid();
@@ -199,11 +200,7 @@ class MediaRouter2ServiceImpl {
        final long token = Binder.clearCallingIdentity();

        try {
            mContext.enforcePermission(
                    Manifest.permission.MEDIA_CONTENT_CONTROL,
                    pid,
                    uid,
                    "Must hold MEDIA_CONTENT_CONTROL permission.");
            enforcePrivilegedRoutingPermissions(uid, pid);
            PackageManager pm = mContext.getPackageManager();
            pm.getPackageInfo(clientPackageName, PackageManager.PackageInfoFlags.of(0));
            return true;
@@ -482,6 +479,7 @@ class MediaRouter2ServiceImpl {
        }
    }

    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    public void registerManager(@NonNull IMediaRouter2Manager manager,
            @NonNull String callerPackageName) {
        Objects.requireNonNull(manager, "manager must not be null");
@@ -729,6 +727,15 @@ class MediaRouter2ServiceImpl {
        return hasBluetoothRoutingPermission;
    }

    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    private void enforcePrivilegedRoutingPermissions(int callerUid, int callerPid) {
        mContext.enforcePermission(
                Manifest.permission.MEDIA_CONTENT_CONTROL,
                callerPid,
                callerUid,
                "Must hold MEDIA_CONTENT_CONTROL permission.");
    }

    // End of methods that implements operations for both MediaRouter2 and MediaRouter2Manager.

    public void dump(@NonNull PrintWriter pw, @NonNull String prefix) {
@@ -1164,6 +1171,7 @@ class MediaRouter2ServiceImpl {
        return sessionInfos;
    }

    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    @GuardedBy("mLock")
    private void registerManagerLocked(
            @NonNull IMediaRouter2Manager manager,
@@ -1187,8 +1195,7 @@ class MediaRouter2ServiceImpl {
                            + " callerUserId: %d",
                        callerUid, callerPid, callerPackageName, callerUserId));

        mContext.enforcePermission(Manifest.permission.MEDIA_CONTENT_CONTROL, callerPid, callerUid,
                "Must hold MEDIA_CONTENT_CONTROL permission.");
        enforcePrivilegedRoutingPermissions(callerUid, callerPid);

        UserRecord userRecord = getOrCreateUserRecordLocked(callerUserId);
        managerRecord = new ManagerRecord(
+2 −0
Original line number Diff line number Diff line
@@ -409,6 +409,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub
    }

    // Binder call
    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    @Override
    public boolean verifyPackageExists(String clientPackageName) {
        return mService2.verifyPackageExists(clientPackageName);
@@ -536,6 +537,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub
    }

    // Binder call
    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    @Override
    public void registerManager(IMediaRouter2Manager manager, String callerPackageName) {
        final int uid = Binder.getCallingUid();