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

Commit 6843ceaf authored by Eric Laurent's avatar Eric Laurent Committed by Automerger Merge Worker
Browse files

Merge "audio: fix missing package name in attribution source" into tm-qpr-dev am: 8492dd23

parents e2353715 8492dd23
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -1067,6 +1067,8 @@ status_t AudioFlinger::createTrack(const media::CreateTrackRequest& _input,
        clientPid = callingPid;
        clientPid = callingPid;
        adjAttributionSource.pid = VALUE_OR_RETURN_STATUS(legacy2aidl_pid_t_int32_t(callingPid));
        adjAttributionSource.pid = VALUE_OR_RETURN_STATUS(legacy2aidl_pid_t_int32_t(callingPid));
    }
    }
    adjAttributionSource = AudioFlinger::checkAttributionSourcePackage(
            adjAttributionSource);


    audio_session_t sessionId = input.sessionId;
    audio_session_t sessionId = input.sessionId;
    if (sessionId == AUDIO_SESSION_ALLOCATE) {
    if (sessionId == AUDIO_SESSION_ALLOCATE) {
@@ -2289,7 +2291,8 @@ status_t AudioFlinger::createRecord(const media::CreateRecordRequest& _input,
                 __func__, callingUid, callingPid, currentPid);
                 __func__, callingUid, callingPid, currentPid);
        adjAttributionSource.pid = VALUE_OR_RETURN_STATUS(legacy2aidl_pid_t_int32_t(callingPid));
        adjAttributionSource.pid = VALUE_OR_RETURN_STATUS(legacy2aidl_pid_t_int32_t(callingPid));
    }
    }

    adjAttributionSource = AudioFlinger::checkAttributionSourcePackage(
            adjAttributionSource);
    // we don't yet support anything other than linear PCM
    // we don't yet support anything other than linear PCM
    if (!audio_is_valid_format(input.config.format) || !audio_is_linear_pcm(input.config.format)) {
    if (!audio_is_valid_format(input.config.format) || !audio_is_linear_pcm(input.config.format)) {
        ALOGE("createRecord() invalid format %#x", input.config.format);
        ALOGE("createRecord() invalid format %#x", input.config.format);
@@ -3920,6 +3923,7 @@ status_t AudioFlinger::createEffect(const media::CreateEffectRequest& request,
        adjAttributionSource.pid = VALUE_OR_RETURN_STATUS(legacy2aidl_pid_t_int32_t(callingPid));
        adjAttributionSource.pid = VALUE_OR_RETURN_STATUS(legacy2aidl_pid_t_int32_t(callingPid));
        currentPid = callingPid;
        currentPid = callingPid;
    }
    }
    adjAttributionSource = AudioFlinger::checkAttributionSourcePackage(adjAttributionSource);


    ALOGV("createEffect pid %d, effectClient %p, priority %d, sessionId %d, io %d, factory %p",
    ALOGV("createEffect pid %d, effectClient %p, priority %d, sessionId %d, io %d, factory %p",
          adjAttributionSource.pid, effectClient.get(), priority, sessionId, io,
          adjAttributionSource.pid, effectClient.get(), priority, sessionId, io,
+4 −6
Original line number Original line Diff line number Diff line
@@ -8308,8 +8308,6 @@ sp<AudioFlinger::RecordThread::RecordTrack> AudioFlinger::RecordThread::createRe
    audio_input_flags_t inputFlags = mInput->flags;
    audio_input_flags_t inputFlags = mInput->flags;
    audio_input_flags_t requestedFlags = *flags;
    audio_input_flags_t requestedFlags = *flags;
    uint32_t sampleRate;
    uint32_t sampleRate;
    AttributionSourceState checkedAttributionSource = AudioFlinger::checkAttributionSourcePackage(
            attributionSource);


    lStatus = initCheck();
    lStatus = initCheck();
    if (lStatus != NO_ERROR) {
    if (lStatus != NO_ERROR) {
@@ -8324,7 +8322,7 @@ sp<AudioFlinger::RecordThread::RecordTrack> AudioFlinger::RecordThread::createRe
    }
    }


    if (maxSharedAudioHistoryMs != 0) {
    if (maxSharedAudioHistoryMs != 0) {
        if (!captureHotwordAllowed(checkedAttributionSource)) {
        if (!captureHotwordAllowed(attributionSource)) {
            lStatus = PERMISSION_DENIED;
            lStatus = PERMISSION_DENIED;
            goto Exit;
            goto Exit;
        }
        }
@@ -8445,16 +8443,16 @@ sp<AudioFlinger::RecordThread::RecordTrack> AudioFlinger::RecordThread::createRe
        Mutex::Autolock _l(mLock);
        Mutex::Autolock _l(mLock);
        int32_t startFrames = -1;
        int32_t startFrames = -1;
        if (!mSharedAudioPackageName.empty()
        if (!mSharedAudioPackageName.empty()
                && mSharedAudioPackageName == checkedAttributionSource.packageName
                && mSharedAudioPackageName == attributionSource.packageName
                && mSharedAudioSessionId == sessionId
                && mSharedAudioSessionId == sessionId
                && captureHotwordAllowed(checkedAttributionSource)) {
                && captureHotwordAllowed(attributionSource)) {
            startFrames = mSharedAudioStartFrames;
            startFrames = mSharedAudioStartFrames;
        }
        }


        track = new RecordTrack(this, client, attr, sampleRate,
        track = new RecordTrack(this, client, attr, sampleRate,
                      format, channelMask, frameCount,
                      format, channelMask, frameCount,
                      nullptr /* buffer */, (size_t)0 /* bufferSize */, sessionId, creatorPid,
                      nullptr /* buffer */, (size_t)0 /* bufferSize */, sessionId, creatorPid,
                      checkedAttributionSource, *flags, TrackBase::TYPE_DEFAULT, portId,
                      attributionSource, *flags, TrackBase::TYPE_DEFAULT, portId,
                      startFrames);
                      startFrames);


        lStatus = track->initCheck();
        lStatus = track->initCheck();
+1 −4
Original line number Original line Diff line number Diff line
@@ -529,10 +529,7 @@ AudioFlinger::PlaybackThread::OpPlayAudioMonitor::createIfNeeded(
            id, attr.flags);
            id, attr.flags);
        return nullptr;
        return nullptr;
    }
    }

    return new OpPlayAudioMonitor(attributionSource, attr.usage, id);
    AttributionSourceState checkedAttributionSource = AudioFlinger::checkAttributionSourcePackage(
            attributionSource);
    return new OpPlayAudioMonitor(checkedAttributionSource, attr.usage, id);
}
}


AudioFlinger::PlaybackThread::OpPlayAudioMonitor::OpPlayAudioMonitor(
AudioFlinger::PlaybackThread::OpPlayAudioMonitor::OpPlayAudioMonitor(