summaryrefslogtreecommitdiff
path: root/telecomm
AgeCommit message (Collapse)Author
2025-04-10Remove extras modification in Telecom Call.Details unparceling. Tyler Gunn
A recent change (ag/31966526) was made to stash the originating user into the android.telecom.Call.Details#getExtras(). We have been seeing crashes in the Telecom system service as a consequence. We thought we fixed this with (ag/32508382) and assumed it was due to the fact that an InCallService living in the system server alongside Telecom was getting a local reference to the Telecom call extras and hence being able to cause a concurrent modification exception. It appears that was contributing, but perhaps not the actual root cause. Looking back at old bugs this same signature is seen as far back as 2023 but at a very low frequency. We thought we fully addressed this with b/261946446 a long while back. It now seems likely that there has been a concurrent modification issue with call extras for a long time which was never fully solved, and this code change just makes it more likely. This change does NOT fix the underlying problem but should reduce the incidence. This is done as a fix forward because there are a lot of stacked CLs related to this particular change (as a result of seeing the new failure and trying to solve it in a few different ways). Flag: NONE critical bug fix: Test: Run tests, CTS, manual testing (not able to reproduce though). Bug: 408470449 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7fb0e330e7f4777f07f73b4bfd9ba8e11ee7c044) Merged-In: I29e1a6019f8a5796f4ebf18c286dd5d3aec3feca Change-Id: I29e1a6019f8a5796f4ebf18c286dd5d3aec3feca
2025-03-19DSDA: Handle call resume failure Pranav Madapurmath
Handles the call resume failure across subscriptions. We will attempt to auto-unhold the foreground call that was previously held as part of the original operation to swap the foreground and background calls as it is historically more likely to succeed. Bug: 390116261 Flag: com.android.server.telecom.flags.enable_call_sequencing Test: atest CallTest Test: atest CallSequencingBasicCallTest Change-Id: I966d7fdda9d507cb5a1b36cab3403bf27e1779d6
2025-03-18Catch exceptions when comparing bundles. Tyler Gunn
We tried to catch ClassCastException in the past and log the key in question so we could determine the root cause. It looks like in the end this is likely a concurrent access issue where the InCallService is trying to modify the bundle while Telecom is updating it. This is not something that happens often. Rather than taking the performance hit of copying the Bundle in the get, or sychronizing, we'll just catch and assume the Bundles are not equal. Worst case we end up triggering an extra Call.Callback#onDetailsChanged signal to the ICS. Test: Run unit tests. Flag: NONE Crash fix. Fixes: 404168135 Change-Id: I5bc7a2170701fda364f6c4ca19d82a4c46745792
2025-03-11Move associate user setting into Call creation Nate Myren
Rather than add the user to extras when unparcelling a Parcelable, put it into the method where a Call.Details is created Fixes: 402432822 Flag: EXEMPT minor refactor Test: atest EnhancedConfirmationInCallTest Change-Id: Iae44968a08090d9ae9a7673eb948c86768c19c99
2025-03-05Log Connection.PROPERTY_CROSS_SIM to better identify xsim features Rambo Wang
Add the "xsim" tag to Connection cross SIM property for clarity and debugging. It helps to identify xsim technologies, like xsim calling. Bug: 397800003 Change-Id: Ib1429492a945908ab91451769d7b969a6fddeec8 Test: atest ConnectionTest Flag: EXEMPT (debug only)
2025-02-28Propagate the assoicatedUser of a Call to the call extras Nate Myren
Bug: 31819719 Test: atest CallDetailsTest Flag: EXEMPT minor bugfix Change-Id: I8024be31ee8866c46b3f4f311a88e84dcb1db744
2025-02-26Merge "[owners] Remove hallliu@google.com from ↵ Owner Cleanup Bot
telecomm/java/android/telecom/OWNERS" into main am: 632145c158 am: 29c1688522 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3503650 Change-Id: I25d2fca6be54a1865f9bfcbfb1628909b978dc39 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-20[owners] Remove hallliu@google.com from telecomm/java/android/telecom/OWNERS Owner Cleanup Bot
This suggested change is automatically generated based on group memberships and affiliations. Please approve this change and vote the highest CR. This will keep the OWNERs file tidy. We ask that you do not ignore this change and approve it unless you know a reason the OWNER should remain. It can always be reverted if needed. If this change is in error, vote the lowest CR value (i.e. reject the CL) and the bot will abandon it. See the owner's recent review activity for context: https://android-review.googlesource.com/q/hallliu@google.com To report an issue, file a bug in the Infra>Codereview component. Change-Id: I8a0e8c39106d3ec0758a079aafb469f30431d305
2025-01-30Resolve flaky audio routing CUJ tests Pranav Madapurmath
Cleans up the flaky audio routing tests which were verifying endpoints switches. It turned out that the test were flaky from other tests not properly cleaning up. The audio focus was not being abandoned and the routing hadn't been processed up to that point. This ended up leaking into subsequent tests where audio routing requests were piling up from multiple tests. Asserting MODE_NORMAL here isn't sufficient as it doesn't account for the audio routing to have been processed so waiting to process the tests with SystemClock.sleep is sufficient enough to give the routing enough time to finish processing the end of the call. Bug: 384101577 Test: atest CtsTelecomCujTestCases:SingleCallingTest Flag: EXEMPT test fix Change-Id: Iaa5b203b7d1d71fcd7fded2434f34e60566d882e
2025-01-27Merge "Ensure CallerInfoAsyncQuery uses HSUM aware method to check user id ↵ Treehugger Robot
of current process." into main
2025-01-27Ensure CallerInfoAsyncQuery uses HSUM aware method to check user id of ↵ Grant Menke
current process. CallerInfoAsyncQuery#getCurrentProfileContentResolver was using a deprecated non HSUM aware method in order to check the user id of the current process. This was causing some contacts provider UT to fail when the device is HSUM mode. This CL updates CallerInfoAsyncQuery to use the HSUM aware reccomended method UserHandle#myUserId instead. Test: atest CallerInfoIntegrationTest#testCallerInfo Bug: 383209047 Flag: EXEMPT bugfix Change-Id: I9032c2781c2502848d246be3cf83492a5a0d7228
2025-01-24Merge "Add telecom commands to support metrics test mode" into main Hui Wang
2025-01-23Add telecom commands to support metrics test mode Hui Wang
Flag: com.android.server.telecom.flags.telecom_metrics_support Bug: 391905002 Test: manual Test: atest TelecomUnitTests Change-Id: I7172e9e730150ec70346cbb48914cc450a92fe6a
2025-01-17Add catch block for ClassCastException in areBundlesEqual. Tyler Gunn
We've now ween a couple cases where a ClassCastException is happening in the areBundlesEqual method. It is not clear what is causing that issue so instead of just silently catching this exception, we'll log which key is causing the problem so we can investigate further. Test: Compile; run tests -- this is not easily repro. Flag: NONE crash logs only. Fixes: 390386486 Bug: 372319846 Change-Id: I96c5d08617487add9ba83de80144ae8b2f74782d
2025-01-07add @TestApi hasForegroundServiceDelegation in TelecomManager Thomas Stuart
This CL adds a new test api that is useful for checking the foreground service state of a particular app Flag: com.android.server.telecom.flags.voip_call_monitor_refactor Bug: 381129034 Test: cts + unit tests + manual Change-Id: I30caf014ea06f3e6122234ecfd5368571e8ee3b9
2025-01-03Resolve cross account user icon validation. Pranav Madapurmath
Resolves a vulnerability found with the cross account user icon validation in StatusHint and TelecomServiceImpl (when registering a phone account). The reporter found that an uri formatted as `userId%` isn't parsed properly with the existing reference to Uri.encodedUserInfo. Bug: 376461551 Bug: 376259166 Flag: EXEMPT bugfix Test: atest TelecomServiceImplTest Change-Id: I25614ead889501f4553ed2b42b366e09a47b0c9f
2024-12-05Deprecate CDMA Tomasz Wasilczyk
Bug: 379356026 Test: m Flag: com.android.internal.telephony.flags.deprecate_cdma Change-Id: Ice0679e33b834a4e3377c3a4920f979fe048ab2a
2024-12-04Allow privileged apps to accept and end VOIP calls. Grant Menke
This change updates relevant docs to describe that TelecomManager APIs allow privileged app invocations to accept and end VOIP calls. This CL also adds support for checking if an app is the sytem UI app which is considered privileged. This functionality was requested by the accessibility team in order to support their talkback double tap gesture feature. Bug: 353579043 Flag: com.android.server.telecom.flags.allow_system_apps_resolve_voip_calls Test: atest TelecomServiceImplTest Change-Id: Ia0a8dbd7bcdd88b5a8cc4b0f908f935d77f6c734
2024-11-06Revert "Revert "Speculative fix for concurrency SessionManager i..." Brad Ebinger
Revert submission 30287372-revert-30239784-spec_session_fix-ZAKHYQBVDW Reason for revert: broken build due to automerger issue: b/377750579 Reverted changes: /q/submissionid:30287372-revert-30239784-spec_session_fix-ZAKHYQBVDW Change-Id: I82785545a00ba98385e5cda279731170c979144d
2024-11-06Revert "Speculative fix for concurrency SessionManager issue" Priyanka Advani (xWF)
Revert submission 30239784-spec_session_fix Reason for revert: Droidmonitor created revert due to b/377750579. Will be verifying through ABTD before submission. Reverted changes: /q/submissionid:30239784-spec_session_fix Change-Id: I3642b453f10095354bf4f82d14cfd275e7d143cc
2024-11-05Speculative fix for concurrency SessionManager issue Brad Ebinger
Change the constraints for the session cleanup runnable to not synchronize on the global instance. Instead, synchronize on the Handler object to remove pressure on the hot path. Flag: com.android.internal.telephony.flags.ims_resolver_user_aware Bug: 375088362 Test: atest TelecomUnitTests Change-Id: I65b82c1c8b74367d5611f6c3582a27073a2af6f2
2024-10-23Ensure Conference/Connection are initialzed with valid number presentation. Grant Menke
This CL ensures that all instances of Conference and Connection are initialized with a valid number presentation (PRESENTATION_UNKNOWN). Before, we were relying on a valid number presentation to be set at some point later on (which didnt happen in every edge case). Defaulting to presentation UNKNOWN ensures that every instance of Connection and Conference will have a valid number presentation. Bug: 306027715 Test: atest ImsConferenceTest#testDefaultNumberPresentationIsValid Flag: EXEMPT bugfix Change-Id: Ia092baedd69d53921e7166f925292e860ddf8d13
2024-10-14Remove Recursion in Session Management/Traversal Brad Ebinger
In some cases when Telecom is generating many sessions, deeply nested sessions have a risk of creating a stack overflow when trying to end a session and clean up intermediate nodes. Instead of using recursion, this change moves all traversal to iterative while loops, which do not require the creation of a new stack frame for each node. - Iteration is also faster, for 5 incoming calls before and after the change, I was seeing anywhere from 2%-20% speedups during incoming call setup and disconnect phases. Bug: 370349160 Flag: com.android.server.telecom.flags.end_session_improvements Test: atest TelecomUnitTests; manual testing Change-Id: Ib21af6c1dc303ea0c50544bb09423df72ac52a41
2024-09-16Merge "Batch migration of frameworks/base TEST_MAPPING to test_module_config ↵ Ronald Braunstein
modules" into main am: cb650f8398 am: 0c9ffcdcf5 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3263804 Change-Id: I6d38c92169c7c58c4c8dec3d6c1caaeb70804038 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-15Batch migration of frameworks/base TEST_MAPPING to test_module_config modules Ronald Braunstein
As part of go/test-module-config we are moving test options from TEST_MAPPING -> Android.bp files. In previous Cls, we created the new `test_module_config` rules in Android.bp This is updating the TEST_MAPPING file to use those rules. It is also removing "FlakyTest and IgnoreTest" exclude annoations as they are now added in gcl files per run rather than ad-hoc per module. I have a script that looks at the generated tradefed config file for the new options added in Android.bp files, then it looks at TEST_MAPPING files and find the places to update where the options match for the test. I am also doing abtd runs of each TEST_MAPPING file before and after my change and ensuring the number of tests run is the same (or at least as many). There are cases where tradefed would comping include-filters across TEST_MAPPING entries for the same module, but now they will be purposefully split up, causing some tests to be run under two different modules. Flag: TEST_ONLY Test: Ran adbt on each TEST_MAPPING and compared before and after results. Verified we were still running all the tests we were before. i.e. after the adbt run, I would download the test artfiact for the tradefed detailed evenvt and compare test counts. You can see CtsAppTestCases became CtsAppTestCases_cts_requesttileserviceaddtest, etc. I'm not including results for all 100 TEST_MAPPING files, but I did verify with scripts and eyes. Minor differences (like 2011 vs 2009) on a test that didn't change are ignored, but in general there were more tests run, not fewer. % diff <(grep started frameworks_base_services_core_java_com_android_server_statusbar_TEST_MAPPING/BASE.details) <(grep started frameworks_base_services_core_java_com_android_server_statusbar_TEST_MAPPING/NEW.details) | grep run < [run x86_64 CtsAppTestCases (testCount: 6,attempt: 0) started] > [run x86_64 CtsAppTestCases_cts_requesttileserviceaddtest (testCount: 6,attempt: 0) started] < [run x86_64 CtsLocationFineTestCases (testCount: 96,attempt: 0) started] > [run x86_64 CtsLocationFineTestCases_android_server_location (testCount: 96,attempt: 0) started] < [run x86_64 FrameworksNetTests (testCount: 2009,attempt: 0) started] > [run x86_64 FrameworksNetTests (testCount: 2011,attempt: 0) started] Test-Mapping-Slo-Bypass-Bug: b/335015078 Change-Id: If6e3cd0624ac1c16f1cd088566d967769f47199c
2024-09-09Merge "Updated relevant aidl to pass current user when setting ↵ Treehugger Robot
PhoneAcctSuggSrvc." into main
2024-09-05Updated relevant aidl to pass current user when setting PhoneAcctSuggSrvc. Grant Menke
This CL updates the relevant Telecom Service aidl to ensure the current primary user can be passed when setting the PhoneAccountSuggestionService for Telecom CTS test purposes. In HSUM mode, this should be user 10 and in non HSUM mode this should be user 0. Without this change, PhoneAccountSuggestionServiceTest tests were failing in HSUM mode. Test: atest PhoneAccountSuggestionServiceTest Bug: 358587742 Flag: TEST_ONLY Change-Id: I81431805da813c48ab2ef776e121a60b59abec63
2024-09-04Annotate TelecomManager.handleMmi with TELEPHONY_CALLING requirement Tomasz Wasilczyk
Bug: 353979854 Test: atest CtsTelecomTestCases:android.telecom.cts.DefaultDialerOperationsTest Flag: EXEMPT annotation change only Change-Id: I85ecbabf53400fdf2187bc1a1d5551bef76315b4
2024-08-29Merge "update docs on moving VoIP calls out of starting states before 60 ↵ Thomas Stuart
sec" into main
2024-08-29update docs on moving VoIP calls out of starting states before 60 sec Thomas Stuart
VoIP calls must now move out of the starting state before 60 seconds or else they will be disconnected. Bug: 360298368 Flag: com.android.server.telecom.flags.disconnect_self_managed_stuck_startup_calls Test: manual Change-Id: Iace0625c40f51e91d9e8d43dca22b0b22f76ee6d
2024-08-26Mark EXTRA_PLAY_CALL_RECORDING_TONE as deprecated. Tyler Gunn
This constant was never actually used and serves no purpose any more. This was used to detect apps that tried to record a call by recording the device mic hoping to pick up the call audio from the earpiece. This is no longer allowed by audio policies. This extra was set based on a carrier config key that was never actually used by any carriers anyways. Removing to clean up dead/useless code. Flag: com.android.server.telecom.flags.telecom_resolve_hidden_dependencies Test: Run unit/cts tests. Bug: 308017600 Change-Id: Id43b8fcffa7c98b8b907116b54acd693ecbcd4e7
2024-08-01Fix Telecom CTS crashes when checking for emergency/voicemail number Tomasz Wasilczyk
Bug: 355008150 Test: atest CtsTelecomTestCases Test: atest CtsTelecomTestCases3 Flag: EXEMPT bugfix Change-Id: I62a6b6d729849b79aef093eb3e2e3a16180c99c3
2024-07-10Merge "CallAudioState: Remove sensitive info from log." into main am: 9e58ba810b Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3164414 Change-Id: I6bb65d6ed9be2fdc98cb0a059a8044b0b9e07443 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-09CallAudioState: Remove sensitive info from log. William Escande
Bluetooth has made a lot change to stop printing the address in the logcat and instead it is printing an obfuscated version of the address thanks to the toString method. Bug: 328846856 Fix: 328846856 Test: atest TelecomUnitTests Flag: Exempt log change Change-Id: Iccdc3e1bc2ca4dc3858dfeee48c3cb55299fee7a
2024-06-07Remove execute bit from non-executable files. Michael Wright
This is almost certainly a mistake in all cases, and any files that are text-based have been spot checked to make sure they don't contain a shebang or have any other indications of intentionally being executable. Commands run: fdfind -t x -e java -x chmod -x fdfind -t x -e kt -x chmod -x fdfind -t x -e ogg -x chmod -x fdfind -t x -e xml -x chmod -x fdfind -t x -e aidl -x chmod -x fdfind -t x -e html -x chmod -x fdfind -t x -e png -x chmod -x Bug: 345485143 Test: N/A Flag: Exempt, mechanical change Change-Id: I2902380611eb51d0c0e18f2f31e41f37163bd922
2024-03-14Merge "Improve DisconnectCause API for mainline." into main Pranav Madapurmath
2024-03-11Merge "TelecomManager consolidate isInSelfManagedCall." into main Pranav Madapurmath
2024-03-08Improve DisconnectCause API for mainline. Pranav Madapurmath
As part of API feedback, improve the DisconnectCause API that was formalized as part of Telecom mainline. This CL has some minor cleanup around those suggestions (refer to the associated bug for more details). Bug: 327030432 Bug: 311773409 Test: atest TelecomUnitTests, atest DataObjectUnitTests Change-Id: Ic1dd1ae2221be21207474950f307ba72fe8b35af
2024-03-05Merge "Set telecomCallId in Remote ConnectionRequest" into main Pranav Madapurmath
2024-03-05Set telecomCallId in Remote ConnectionRequest Pranav Madapurmath
Ensure that the telecom call id generated when creating a remote connection or conference in RemoteConnectionService is saved into the ConnectionRequest. This was causing the call id to show up as null in Telephony. Bug: 323358714 Test: atest RemoteConnectionTest Change-Id: I6a65c81af302da5071c5f24f728cf4a94415836e
2024-03-04update TM#getRegisteredPhoneAccounts docs Thomas Stuart
API review noted that I should mention that the API will only return accounts registered by the same app. Fixes: 327333100 Test: existing CTS coverage + javadoc comment check (renders properly) Change-Id: I355ae4d09e857568c5d5198a3d69838e8df0daff
2024-03-04TelecomManager consolidate isInSelfManagedCall. Pranav Madapurmath
As per API feedback, consolidate TelecomManager#isInSelfManagedCall into a single API which only takes a UserHandle and disregard the hasCrossUserAccess parameter. Instead, the caller can specify UserHandle.ALL in order to indicate that self managed calls across all users should be checked. Bug: 327029478 Bug: 311773409 Test: atest SelfManagedConnectionServiceTest Change-Id: Icbffaf8d2a507f519eb2fda34106a359f1bddaf4
2024-02-23Merge "Separate TelecomManager#isInSelfManagedCall APIs" into main Pranav Madapurmath
2024-02-22Merge "Include DisconnectCause Builder" into main Pranav Madapurmath
2024-02-16add API for getRegisteredPhoneAccounts Thomas Stuart
currently there is no way for VoIP applications to fetch their registered PhoneAccounts with Telecom. TelecomManager#getPhoneAccount is gated by the READ_PHONE_STATE permission which is a highly privileged permission that VoIP apps will not be granted. This API will not only allow VoIP apps to get all registered PhoneAccounts with Telecom but Managed apps (like system Dialers) can use it. This is helpful to know what calling capabilities are currently registered and know the state of Telecom. Bug: 307609763 Test: CTS coverage Change-Id: I73ace8cd766369f877c7fc0ef985f6a0c575e097
2024-02-16Merge "Add hidden API for raw route mask to support call audio routing ↵ Xiaotong Jia
refactor." into main
2024-02-16Merge "[DON'T BLOCK] Test ownership migration rules" into main Ronish Kalia
2024-02-14Merge "add transactional video state APIs" into main Thomas Stuart
2024-02-14Separate TelecomManager#isInSelfManagedCall APIs Pranav Madapurmath
Instead of consolidating the TelecomManager#isInSelfManagedCall APIs which combine the cross user logic with the ability to also specifiy a user handle, create two separate APIs to handle this. One will allow the caller to specify a user handle while the other will allow them to specify if calls should be verified across all users. Ensure that if the user handle specified isn't the caller or that interacting across users is defined in the parameter, that the permission check is enforced properly. Otherwise, ensure that the user handle being verified is always the caller. Bug: 323958718 Bug: 311773409 Test: atest SelfManagedConnectionServiceTest Change-Id: Ie7096c0a876cca2cf8e1e70cd3ae102127f60197
2024-02-14[DON'T BLOCK] Test ownership migration rules Ronish Kalia
This CL is created as a best effort to migrate test targets to the new android ownership model. If you find incorrect or unnecessary attribution in this CL, please create a separate CL to fix that. For more details please refer to the link below, <add g3 doc link> Bug: 304529413 Test: N/A Change-Id: I6b6cf0abdd1fdb8fefa4184b3698f6951c192ac0