From e17378d11b275daecd20ff840bcb7d275b6801bf Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Wed, 9 May 2018 14:43:01 -0700 Subject: [PATCH] audio policy: re enable setForceUse for system apps. Some system apps (not having system AIDs) still need this hidden API due to lack of better option for media use case routing. Add protection by privileged permission MODIFY_AUDIO_ROUTING instead. Bug: 79475856 Test: manual regression for music playback over speaker and bluetooth Change-Id: Icaa585a9fa4c043c291f24c9bab4a93f02406955 --- media/libaudioclient/IAudioPolicyService.cpp | 3 ++- services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/media/libaudioclient/IAudioPolicyService.cpp b/media/libaudioclient/IAudioPolicyService.cpp index 79b3e0f21d..eca6fee728 100644 --- a/media/libaudioclient/IAudioPolicyService.cpp +++ b/media/libaudioclient/IAudioPolicyService.cpp @@ -876,7 +876,8 @@ status_t BnAudioPolicyService::onTransact( case SET_DEVICE_CONNECTION_STATE: case HANDLE_DEVICE_CONFIG_CHANGE: case SET_PHONE_STATE: - case SET_FORCE_USE: +//FIXME: Allow SET_FORCE_USE calls from system apps until a better use case routing API is available +// case SET_FORCE_USE: case INIT_STREAM_VOLUME: case SET_STREAM_VOLUME: case REGISTER_POLICY_MIXES: diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp index 008d655e7a..b75b234059 100644 --- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp @@ -121,9 +121,11 @@ status_t AudioPolicyService::setForceUse(audio_policy_force_use_t usage, if (mAudioPolicyManager == NULL) { return NO_INIT; } - if (!settingsAllowed()) { + + if (!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } + if (usage < 0 || usage >= AUDIO_POLICY_FORCE_USE_CNT) { return BAD_VALUE; }