From 5e851cf9d895ec23e52dc32a6091480e584d0980 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Fri, 1 Nov 2019 11:07:09 -0700 Subject: [PATCH] AudioService: setMasterMute protected by MODIFY_AUDIO_ROUTING Require MODIFY_AUDIO_ROUTING system permission to exercise hidden (non-SDK, non-SystemApi) method setMasterMute Bug: 141622311 Test: see bug for POC app Change-Id: I4ee93276daa1285c55c4c838e2b43833135d76f6 --- media/java/android/media/AudioManager.java | 1 + services/core/java/com/android/server/audio/AudioService.java | 1 + 2 files changed, 2 insertions(+) diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 2d6cd242c7021..6890270f1bb67 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -908,6 +908,7 @@ public class AudioManager { /** @hide */ @UnsupportedAppUsage + @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setMasterMute(boolean mute, int flags) { final IAudioService service = getService(); try { diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 9b911aa4ee2f4..b5dbe9cb08951 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -2790,6 +2790,7 @@ public class AudioService extends IAudioService.Stub } public void setMasterMute(boolean mute, int flags, String callingPackage, int userId) { + enforceModifyAudioRoutingPermission(); setMasterMuteInternal(mute, flags, callingPackage, Binder.getCallingUid(), userId); }