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

Commit e5fd1e1d authored by Atneya Nair's avatar Atneya Nair
Browse files

audio: Add permission barrier for AudioRecord

RECORD_AUDIO is a runtime permission, which means it can change.

Add a client-side barrier on permission updates to audioserver to avoid
flake.

Test: atest AudioRecordPermissionTests
Bug: 355581132
Bug: 338089555
Flag: com.android.media.audio.audioserver_permissions
Change-Id: Ide9a9afa90e2831ec47b56c22eeec30d4fbcaa55
parent ef49519f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -256,6 +256,13 @@ status_t AudioRecord::set(

    mTracker.reset(new RecordingActivityTracker());

    sp<IBinder> binder = defaultServiceManager()->checkService(String16("audio"));
    if (binder != nullptr) {
        // Barrier to ensure runtime permission update propagates to audioflinger
        // Must be client-side
        interface_cast<IAudioManager>(binder)->permissionUpdateBarrier();
    }

    mSelectedDeviceId = selectedDeviceId;
    mSelectedMicDirection = selectedMicDirection;
    mSelectedMicFieldDimension = microphoneFieldDimension;