Revert "Allow call audio access for default dialer application"
This reverts commit ac26cf749f457e12a3d8d7456bbcd58a3e028d69.
Reason for revert: Feature has been postponed
Bug: 151761909
Change-Id: I90a977a23c5b97ddf95976cf2c4d517165f8e8c2
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index ecda56b..1be2fcb 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -343,7 +343,7 @@
ret = AudioSystem::getOutputForAttr(&localAttr, &io,
actualSessionId,
&streamType, client.clientPid, client.clientUid,
- client.packageName, &fullConfig,
+ &fullConfig,
(audio_output_flags_t)(AUDIO_OUTPUT_FLAG_MMAP_NOIRQ |
AUDIO_OUTPUT_FLAG_DIRECT),
deviceId, &portId, &secondaryOutputs);
@@ -783,9 +783,8 @@
output.outputId = AUDIO_IO_HANDLE_NONE;
output.selectedDeviceId = input.selectedDeviceId;
lStatus = AudioSystem::getOutputForAttr(&localAttr, &output.outputId, sessionId, &streamType,
- clientPid, clientUid, input.opPackageName,
- &input.config, input.flags, &output.selectedDeviceId,
- &portId, &secondaryOutputs);
+ clientPid, clientUid, &input.config, input.flags,
+ &output.selectedDeviceId, &portId, &secondaryOutputs);
if (lStatus != NO_ERROR || output.outputId == AUDIO_IO_HANDLE_NONE) {
ALOGE("createTrack() getOutputForAttr() return error %d or invalid output handle", lStatus);
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 65cf96c..d8d4d35 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -8774,7 +8774,6 @@
&stream,
client.clientPid,
client.clientUid,
- client.packageName,
&config,
flags,
&deviceId,
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index 0da3b9c..57b23b7 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -219,7 +219,6 @@
audio_stream_type_t *stream,
pid_t pid,
uid_t uid,
- const String16& opPackageName,
const audio_config_t *config,
audio_output_flags_t flags,
audio_port_handle_t *selectedDeviceId,
@@ -266,8 +265,7 @@
case AudioPolicyInterface::API_OUTPUT_LEGACY:
break;
case AudioPolicyInterface::API_OUTPUT_TELEPHONY_TX:
- if (!modifyPhoneStateAllowed(pid, uid) &&
- !accessCallAudioAllowed(opPackageName, pid, uid)) {
+ if (!modifyPhoneStateAllowed(pid, uid)) {
ALOGE("%s() permission denied: modify phone state not allowed for uid %d",
__func__, uid);
result = PERMISSION_DENIED;
@@ -464,22 +462,15 @@
}
bool canCaptureOutput = captureAudioOutputAllowed(pid, uid);
- bool canCaptureTelephonyOutput = canCaptureOutput
- || accessCallAudioAllowed(opPackageName, pid, uid);
-
- if ((attr->source == AUDIO_SOURCE_ECHO_REFERENCE ||
- attr->source == AUDIO_SOURCE_FM_TUNER) &&
+ if ((inputSource == AUDIO_SOURCE_VOICE_UPLINK ||
+ inputSource == AUDIO_SOURCE_VOICE_DOWNLINK ||
+ inputSource == AUDIO_SOURCE_VOICE_CALL ||
+ inputSource == AUDIO_SOURCE_ECHO_REFERENCE||
+ inputSource == AUDIO_SOURCE_FM_TUNER) &&
!canCaptureOutput) {
return PERMISSION_DENIED;
}
- if ((attr->source == AUDIO_SOURCE_VOICE_UPLINK ||
- attr->source == AUDIO_SOURCE_VOICE_DOWNLINK ||
- attr->source == AUDIO_SOURCE_VOICE_CALL) &&
- !canCaptureTelephonyOutput) {
- return PERMISSION_DENIED;
- }
-
bool canCaptureHotword = captureHotwordAllowed(opPackageName, pid, uid);
if ((inputSource == AUDIO_SOURCE_HOTWORD) && !canCaptureHotword) {
return BAD_VALUE;
@@ -511,11 +502,6 @@
break;
case AudioPolicyInterface::API_INPUT_TELEPHONY_RX:
// FIXME: use the same permission as for remote submix for now.
- if (!canCaptureTelephonyOutput) {
- ALOGE("getInputForAttr() permission denied: call capture not allowed");
- status = PERMISSION_DENIED;
- }
- break;
case AudioPolicyInterface::API_INPUT_MIX_CAPTURE:
if (!canCaptureOutput) {
ALOGE("getInputForAttr() permission denied: capture not allowed");
@@ -543,13 +529,9 @@
return status;
}
- bool allowAudioCapture = canCaptureOutput ||
- (inputType == AudioPolicyInterface::API_INPUT_TELEPHONY_RX &&
- canCaptureTelephonyOutput);
-
sp<AudioRecordClient> client = new AudioRecordClient(*attr, *input, uid, pid, session, *portId,
*selectedDeviceId, opPackageName,
- allowAudioCapture, canCaptureHotword);
+ canCaptureOutput, canCaptureHotword);
mAudioRecordClients.add(*portId, client);
}
diff --git a/services/audiopolicy/service/AudioPolicyService.cpp b/services/audiopolicy/service/AudioPolicyService.cpp
index bf38477..59fb481 100644
--- a/services/audiopolicy/service/AudioPolicyService.cpp
+++ b/services/audiopolicy/service/AudioPolicyService.cpp
@@ -543,7 +543,7 @@
// else
// favor the privacy sensitive case
if (topActive != nullptr && topSensitiveActive != nullptr
- && !topActive->canCaptureCallOrOutput) {
+ && !topActive->canCaptureOutput) {
topActive = nullptr;
}
@@ -559,8 +559,8 @@
false : current->uid == topSensitiveActive->uid;
auto canCaptureIfInCallOrCommunication = [&](const auto &recordClient) {
- bool canCaptureCall = recordClient->canCaptureCallOrOutput;
- bool canCaptureCommunication = recordClient->canCaptureCallOrOutput
+ bool canCaptureCall = recordClient->canCaptureOutput;
+ bool canCaptureCommunication = recordClient->canCaptureOutput
|| recordClient->uid == mPhoneStateOwnerUid
|| isServiceUid(mPhoneStateOwnerUid);
return !(isInCall && !canCaptureCall)
@@ -575,7 +575,7 @@
bool allowCapture = !isAssistantOnTop
&& (isTopOrLatestActive || isTopOrLatestSensitive)
&& !(isSensitiveActive
- && !(isTopOrLatestSensitive || current->canCaptureCallOrOutput))
+ && !(isTopOrLatestSensitive || current->canCaptureOutput))
&& canCaptureIfInCallOrCommunication(current);
if (isVirtualSource(source)) {
@@ -596,7 +596,7 @@
} else {
if (((isAssistantOnTop && source == AUDIO_SOURCE_VOICE_RECOGNITION) ||
source == AUDIO_SOURCE_HOTWORD)
- && !(isSensitiveActive && !current->canCaptureCallOrOutput)
+ && !(isSensitiveActive && !current->canCaptureOutput)
&& canCaptureIfInCallOrCommunication(current)) {
allowCapture = true;
}
@@ -609,7 +609,7 @@
// OR
// Is on TOP AND the source is VOICE_RECOGNITION or HOTWORD
if (!isAssistantOnTop
- && !(isSensitiveActive && !current->canCaptureCallOrOutput)
+ && !(isSensitiveActive && !current->canCaptureOutput)
&& canCaptureIfInCallOrCommunication(current)) {
allowCapture = true;
}
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index ff99124..9a619dd 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -83,7 +83,6 @@
audio_stream_type_t *stream,
pid_t pid,
uid_t uid,
- const String16& opPackageName,
const audio_config_t *config,
audio_output_flags_t flags,
audio_port_handle_t *selectedDeviceId,
@@ -812,16 +811,15 @@
const audio_io_handle_t io, uid_t uid, pid_t pid,
const audio_session_t session, audio_port_handle_t portId,
const audio_port_handle_t deviceId, const String16& opPackageName,
- bool canCaptureCallOrOutput, bool canCaptureHotword) :
+ bool canCaptureOutput, bool canCaptureHotword) :
AudioClient(attributes, io, uid, pid, session, portId, deviceId),
opPackageName(opPackageName), startTimeNs(0),
- canCaptureCallOrOutput(canCaptureCallOrOutput),
- canCaptureHotword(canCaptureHotword) {}
+ canCaptureOutput(canCaptureOutput), canCaptureHotword(canCaptureHotword) {}
~AudioRecordClient() override = default;
const String16 opPackageName; // client package name
nsecs_t startTimeNs;
- const bool canCaptureCallOrOutput;
+ const bool canCaptureOutput;
const bool canCaptureHotword;
};