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

Commit 8afcfecc authored by Iván Budnik's avatar Iván Budnik
Browse files

Extract method for enforcing privileged routing permissions

This is a non functional change.

Bug: 288580225
Test: Presubmit.
Change-Id: I6e182929c4feec6a947c6398ff17ad825d27e03b
parent bcbc6b99
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) {
@@ -1161,6 +1168,7 @@ class MediaRouter2ServiceImpl {
        return sessionInfos;
    }

    @RequiresPermission(Manifest.permission.MEDIA_CONTENT_CONTROL)
    @GuardedBy("mLock")
    private void registerManagerLocked(
            @NonNull IMediaRouter2Manager manager,
@@ -1184,8 +1192,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();