Loading media/audioaidlconversion/AidlConversionCppNdk.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -1802,6 +1802,8 @@ aidl2legacy_AudioUsage_audio_usage_t(AudioUsage aidl) { return AUDIO_USAGE_VEHICLE_STATUS; case AudioUsage::ANNOUNCEMENT: return AUDIO_USAGE_ANNOUNCEMENT; case AudioUsage::SPEAKER_CLEANUP: return AUDIO_USAGE_SPEAKER_CLEANUP; } return unexpected(BAD_VALUE); } Loading Loading @@ -1853,6 +1855,8 @@ legacy2aidl_audio_usage_t_AudioUsage(audio_usage_t legacy) { return AudioUsage::VEHICLE_STATUS; case AUDIO_USAGE_ANNOUNCEMENT: return AudioUsage::ANNOUNCEMENT; case AUDIO_USAGE_SPEAKER_CLEANUP: return AudioUsage::SPEAKER_CLEANUP; } return unexpected(BAD_VALUE); } Loading services/audiopolicy/engine/common/src/EngineDefaultConfig.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ const engineConfig::ProductStrategies gOrderedStrategies = { {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_BEACON, ""}, {AUDIO_CONTENT_TYPE_ULTRASOUND, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}, {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_SPEAKER_CLEANUP, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""} } } Loading services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -425,6 +425,17 @@ Status AudioPolicyService::getOutputForAttr(const media::audio::common::AudioAtt } } //TODO this permission check should extend to all system usages if (attr.usage == AUDIO_USAGE_SPEAKER_CLEANUP) { if (!(audioserver_permissions() ? CHECK_PERM(MODIFY_AUDIO_ROUTING, attributionSource.uid) : modifyAudioRoutingAllowed())) { ALOGE("%s: permission denied: SPEAKER_CLEANUP not allowed for uid %d pid %d", __func__, attributionSource.uid, attributionSource.pid); return binderStatusFromStatusT(PERMISSION_DENIED); } } AutoCallerClear acc; AudioPolicyInterface::output_type_t outputType; bool isSpatialized = false; Loading Loading
media/audioaidlconversion/AidlConversionCppNdk.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -1802,6 +1802,8 @@ aidl2legacy_AudioUsage_audio_usage_t(AudioUsage aidl) { return AUDIO_USAGE_VEHICLE_STATUS; case AudioUsage::ANNOUNCEMENT: return AUDIO_USAGE_ANNOUNCEMENT; case AudioUsage::SPEAKER_CLEANUP: return AUDIO_USAGE_SPEAKER_CLEANUP; } return unexpected(BAD_VALUE); } Loading Loading @@ -1853,6 +1855,8 @@ legacy2aidl_audio_usage_t_AudioUsage(audio_usage_t legacy) { return AudioUsage::VEHICLE_STATUS; case AUDIO_USAGE_ANNOUNCEMENT: return AudioUsage::ANNOUNCEMENT; case AUDIO_USAGE_SPEAKER_CLEANUP: return AudioUsage::SPEAKER_CLEANUP; } return unexpected(BAD_VALUE); } Loading
services/audiopolicy/engine/common/src/EngineDefaultConfig.h +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ const engineConfig::ProductStrategies gOrderedStrategies = { {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_BEACON, ""}, {AUDIO_CONTENT_TYPE_ULTRASOUND, AUDIO_USAGE_UNKNOWN, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""}, {AUDIO_CONTENT_TYPE_UNKNOWN, AUDIO_USAGE_SPEAKER_CLEANUP, AUDIO_SOURCE_DEFAULT, AUDIO_FLAG_NONE, ""} } } Loading
services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -425,6 +425,17 @@ Status AudioPolicyService::getOutputForAttr(const media::audio::common::AudioAtt } } //TODO this permission check should extend to all system usages if (attr.usage == AUDIO_USAGE_SPEAKER_CLEANUP) { if (!(audioserver_permissions() ? CHECK_PERM(MODIFY_AUDIO_ROUTING, attributionSource.uid) : modifyAudioRoutingAllowed())) { ALOGE("%s: permission denied: SPEAKER_CLEANUP not allowed for uid %d pid %d", __func__, attributionSource.uid, attributionSource.pid); return binderStatusFromStatusT(PERMISSION_DENIED); } } AutoCallerClear acc; AudioPolicyInterface::output_type_t outputType; bool isSpatialized = false; Loading