From f959db09562014a578c46926bb5e438d5d1e1814 Mon Sep 17 00:00:00 2001 From: Thomas Stuart Date: Wed, 5 Apr 2023 16:59:01 -0700 Subject: [PATCH] fix security exception in VoipCallMonitor While investigating how the VoipCallMonitor class treats transactional calls, I noticed a security exception was being thrown whenever startForegroundServiceDelegate was being called. Upon some further digging, an incorrect UID was being given to the activity manager class. The fix is to fetch the UID in TelecomServiceImpl#addCall and store it in the extras. Then, when the call is created in CallsManager, those values are stored in the Call object. VoipCallMonitor can then query the value and there is no longer a security exception. Fixes: 276802273 Test: manual (start T-call and grep VoipCallMonitor) + unit test (ensure the CallingPackageIdentity is being set) Change-Id: I10a22df721d1c9c6f467a24fed2d1204e0db843f --- telecomm/java/android/telecom/CallAttributes.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/telecomm/java/android/telecom/CallAttributes.java b/telecomm/java/android/telecom/CallAttributes.java index f3ef834168b52..52ff90f381136 100644 --- a/telecomm/java/android/telecom/CallAttributes.java +++ b/telecomm/java/android/telecom/CallAttributes.java @@ -59,7 +59,10 @@ public final class CallAttributes implements Parcelable { public static final String CALL_CAPABILITIES_KEY = "TelecomCapabilities"; /** @hide **/ - public static final String CALLER_PID = "CallerPid"; + public static final String CALLER_PID_KEY = "CallerPid"; + + /** @hide **/ + public static final String CALLER_UID_KEY = "CallerUid"; private CallAttributes(@NonNull PhoneAccountHandle phoneAccountHandle, @NonNull CharSequence displayName,