From 01a8d9d8406a6d5ce197b90157e931ef780b5b44 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Tue, 24 Mar 2020 09:20:50 -0700 Subject: [PATCH] setWiredDeviceConnectionState requires MODIFY_AUDIO_ROUTING AudioService: make setWiredDeviceConnectionState enforce the privileged MODIFY_AUDIO_ROUTING permission Bug: 151240738 Test: verify plug/unplug headset is WAI Change-Id: Icde5c2fdfa970baf596d00f808dca8300be8743f --- 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 94d32c63edb16..59943eb546b40 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -4213,6 +4213,7 @@ public class AudioManager { * {@hide} */ @UnsupportedAppUsage + @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setWiredDeviceConnectionState(int type, int state, String address, String name) { 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 068d6fc9dbf07..de4b2b0977c4f 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -4318,6 +4318,7 @@ public class AudioService extends IAudioService.Stub public void setWiredDeviceConnectionState(int type, @ConnectionState int state, String address, String name, String caller) { + enforceModifyAudioRoutingPermission(); if (state != CONNECTION_STATE_CONNECTED && state != CONNECTION_STATE_DISCONNECTED) { throw new IllegalArgumentException("Invalid state " + state);