From b19192ecff69e7afb5e96f65b3a934892bacb984 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Tue, 11 Aug 2020 15:30:25 -0700 Subject: [PATCH] AudioService: fix internal use of getDevicesForAttributes() No permission check required for internal use of getDevicesForAttributes() Bug: 163447106 Test: atest android.media.cts.AudioManagerTest Change-Id: I864e42e69e57d9c9c3ef090e97d2d0b98a459ff7 --- .../core/java/com/android/server/audio/AudioService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index b94396634530e..48ca5f82330e9 100755 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -1338,7 +1338,7 @@ public class AudioService extends IAudioService.Stub } // Check if device to be updated is routed for the given audio stream - List devicesForAttributes = getDevicesForAttributes( + List devicesForAttributes = getDevicesForAttributesInt( new AudioAttributes.Builder().setInternalLegacyStreamType(streamType).build()); for (AudioDeviceAttributes deviceAttributes : devicesForAttributes) { if (deviceAttributes.getType() == AudioDeviceInfo.convertInternalDeviceToDeviceType( @@ -1884,8 +1884,13 @@ public class AudioService extends IAudioService.Stub /** @see AudioManager#getDevicesForAttributes(AudioAttributes) */ public @NonNull ArrayList getDevicesForAttributes( @NonNull AudioAttributes attributes) { - Objects.requireNonNull(attributes); enforceModifyAudioRoutingPermission(); + return getDevicesForAttributesInt(attributes); + } + + protected @NonNull ArrayList getDevicesForAttributesInt( + @NonNull AudioAttributes attributes) { + Objects.requireNonNull(attributes); return AudioSystem.getDevicesForAttributes(attributes); }