Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07f14e30 authored by Evan Severson's avatar Evan Severson Committed by Android (Google) Code Review
Browse files

Merge "Fix sensor privacy check in audio policy service"

parents 91f0dfd8 371c7fea
Loading
Loading
Loading
Loading
+31 −31
Original line number Diff line number Diff line
@@ -477,7 +477,9 @@ void AudioPolicyService::updateUidStates_l()
{
//    Go over all active clients and allow capture (does not force silence) in the
//    following cases:
//    The client is the assistant
//    The client source is virtual (remote submix, call audio TX or RX...)
//    OR The user the client is running in has microphone sensor privacy disabled
//        AND The client is the assistant
//                AND an accessibility service is on TOP or a RTT call is active
//                        AND the source is VOICE_RECOGNITION or HOTWORD
//                    OR uses VOICE_RECOGNITION AND is on TOP
@@ -492,7 +494,6 @@ void AudioPolicyService::updateUidStates_l()
//                            OR client has CAPTURE_AUDIO_OUTPUT privileged permission
//                AND is on TOP
//                AND the source is VOICE_RECOGNITION or HOTWORD
//    OR the client source is virtual (remote submix, call audio TX or RX...)
//            OR the client source is HOTWORD
//                AND is on TOP
//                    OR all active clients are using HOTWORD source
@@ -534,12 +535,8 @@ void AudioPolicyService::updateUidStates_l()

    for (size_t i =0; i < mAudioRecordClients.size(); i++) {
        sp<AudioRecordClient> current = mAudioRecordClients[i];
        if (!isVirtualSource(current->attributes.source)
                && isUserSensorPrivacyEnabledForUid(current->uid)) {
            setAppState_l(current->portId, APP_STATE_IDLE);
            continue;
        }
        if (!current->active) {
        if (!current->active || (!isVirtualSource(current->attributes.source)
                && isUserSensorPrivacyEnabledForUid(current->uid))) {
            continue;
        }

@@ -667,6 +664,9 @@ void AudioPolicyService::updateUidStates_l()
        if (isVirtualSource(source)) {
            // Allow capture for virtual (remote submix, call audio TX or RX...) sources
            allowCapture = true;
        } else if (isUserSensorPrivacyEnabledForUid(current->uid)) {
            // If sensor privacy is enabled, don't allow capture
            allowCapture = false;
        } else if (mUidPolicy->isAssistantUid(current->uid)) {
            // For assistant allow capture if:
            //     An accessibility service is on TOP or a RTT call is active