Add attributionTag to audio-recordings
... by replacing packageName/uid/pid by the Identity class.
This allows us to track which parts of the app trigger audio-recordings.
90% of the code is just sending around the additional parameters.
This adds it for the Java and native API.
Test: atest CtsAppOpsTestCases
CtsNativeMediaAAudioTestCases
Fixes: 160150145
Change-Id: Ibd7b884f7fcd4668a4e27f997e59cfc3217a9e89
diff --git a/media/libaaudio/src/binding/AAudioStreamRequest.cpp b/media/libaaudio/src/binding/AAudioStreamRequest.cpp
index 536395a..5e0a4bb 100644
--- a/media/libaaudio/src/binding/AAudioStreamRequest.cpp
+++ b/media/libaaudio/src/binding/AAudioStreamRequest.cpp
@@ -31,19 +31,15 @@
AAudioStreamRequest::AAudioStreamRequest(const StreamRequest& parcelable) :
mConfiguration(std::move(parcelable.params)),
- mUserId(parcelable.userId),
- mProcessId(parcelable.processId),
+ mIdentity(parcelable.identity),
mSharingModeMatchRequired(parcelable.sharingModeMatchRequired),
mInService(parcelable.inService) {
- static_assert(sizeof(mUserId) == sizeof(parcelable.userId));
- static_assert(sizeof(mProcessId) == sizeof(parcelable.processId));
}
StreamRequest AAudioStreamRequest::parcelable() const {
StreamRequest result;
result.params = std::move(mConfiguration).parcelable();
- result.userId = mUserId;
- result.processId = mProcessId;
+ result.identity = mIdentity;
result.sharingModeMatchRequired = mSharingModeMatchRequired;
result.inService = mInService;
return result;
@@ -54,8 +50,7 @@
}
void AAudioStreamRequest::dump() const {
- ALOGD("mUserId = %d", mUserId);
- ALOGD("mProcessId = %d", mProcessId);
+ ALOGD("mIdentity = %s", mIdentity.toString().c_str());
ALOGD("mSharingModeMatchRequired = %d", mSharingModeMatchRequired);
ALOGD("mInService = %d", mInService);
mConfiguration.dump();