diff options
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java | 21 | ||||
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRouterService.java | 2 |
2 files changed, 16 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index 744238f9c5eb..d456a7478551 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -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( diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java index 44719f88351b..6df4a95f8b8c 100644 --- a/services/core/java/com/android/server/media/MediaRouterService.java +++ b/services/core/java/com/android/server/media/MediaRouterService.java @@ -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(); |