Loading services/audioflinger/ServiceUtilities.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,13 @@ bool settingsAllowed() { return ok; } bool modifyAudioRoutingAllowed() { static const String16 sModifyAudioRoutingAllowed("android.permission.MODIFY_AUDIO_ROUTING"); bool ok = checkCallingPermission(sModifyAudioRoutingAllowed); if (!ok) ALOGE("android.permission.MODIFY_AUDIO_ROUTING"); return ok; } bool dumpAllowed() { // don't optimize for same pid, since mediaserver never dumps itself static const String16 sDump("android.permission.DUMP"); Loading services/audioflinger/ServiceUtilities.h +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ bool recordingAllowed(); bool captureAudioOutputAllowed(); bool captureHotwordAllowed(); bool settingsAllowed(); bool modifyAudioRoutingAllowed(); bool dumpAllowed(); } services/audiopolicy/AudioPolicyInterfaceImpl.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -470,6 +470,9 @@ status_t AudioPolicyService::listAudioPorts(audio_port_role_t role, unsigned int *generation) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -480,6 +483,9 @@ status_t AudioPolicyService::listAudioPorts(audio_port_role_t role, status_t AudioPolicyService::getAudioPort(struct audio_port *port) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -491,6 +497,9 @@ status_t AudioPolicyService::createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -501,6 +510,9 @@ status_t AudioPolicyService::createAudioPatch(const struct audio_patch *patch, status_t AudioPolicyService::releaseAudioPatch(audio_patch_handle_t handle) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -514,6 +526,9 @@ status_t AudioPolicyService::listAudioPatches(unsigned int *num_patches, unsigned int *generation) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -524,6 +539,9 @@ status_t AudioPolicyService::listAudioPatches(unsigned int *num_patches, status_t AudioPolicyService::setAudioPortConfig(const struct audio_port_config *config) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading Loading
services/audioflinger/ServiceUtilities.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,13 @@ bool settingsAllowed() { return ok; } bool modifyAudioRoutingAllowed() { static const String16 sModifyAudioRoutingAllowed("android.permission.MODIFY_AUDIO_ROUTING"); bool ok = checkCallingPermission(sModifyAudioRoutingAllowed); if (!ok) ALOGE("android.permission.MODIFY_AUDIO_ROUTING"); return ok; } bool dumpAllowed() { // don't optimize for same pid, since mediaserver never dumps itself static const String16 sDump("android.permission.DUMP"); Loading
services/audioflinger/ServiceUtilities.h +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ bool recordingAllowed(); bool captureAudioOutputAllowed(); bool captureHotwordAllowed(); bool settingsAllowed(); bool modifyAudioRoutingAllowed(); bool dumpAllowed(); }
services/audiopolicy/AudioPolicyInterfaceImpl.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -470,6 +470,9 @@ status_t AudioPolicyService::listAudioPorts(audio_port_role_t role, unsigned int *generation) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -480,6 +483,9 @@ status_t AudioPolicyService::listAudioPorts(audio_port_role_t role, status_t AudioPolicyService::getAudioPort(struct audio_port *port) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -491,6 +497,9 @@ status_t AudioPolicyService::createAudioPatch(const struct audio_patch *patch, audio_patch_handle_t *handle) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -501,6 +510,9 @@ status_t AudioPolicyService::createAudioPatch(const struct audio_patch *patch, status_t AudioPolicyService::releaseAudioPatch(audio_patch_handle_t handle) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -514,6 +526,9 @@ status_t AudioPolicyService::listAudioPatches(unsigned int *num_patches, unsigned int *generation) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading @@ -524,6 +539,9 @@ status_t AudioPolicyService::listAudioPatches(unsigned int *num_patches, status_t AudioPolicyService::setAudioPortConfig(const struct audio_port_config *config) { Mutex::Autolock _l(mLock); if(!modifyAudioRoutingAllowed()) { return PERMISSION_DENIED; } if (mAudioPolicyManager == NULL) { return NO_INIT; } Loading