summaryrefslogtreecommitdiff
path: root/system/stack/btm
AgeCommit message (Collapse)Author
2025-03-18Check for invalid handle before looking up device by handle Himanshu Rawat
When invalid connection handle is passed to btm_find_dev_by_handle(), it returns the first device which does not have any of the transports connected. Test: mmm packages/modules/Bluetooth Flag: EXEMPT trivial fix Bug: 399122843 Change-Id: Idedd4a65ed4517ae6bee7efda9b0f87b7096a8c2
2025-03-17Merge "system/common: Move remaining metrics to os/metrics.h" into main Treehugger Robot
2025-03-17Merge "Check if device record is removed after BTM_LE_COMPLT_EVT event ↵ Treehugger Robot
callback" into main
2025-03-17system/common: Move remaining metrics to os/metrics.h Henri Chataing
Bug: 401588157 Test: m com.android.bt Flag: EXEMPT, no logical change Change-Id: I6a7269d1084f86d0d12ee4ba8d040a6ef441a069
2025-03-17Merge "Don't remove bond on encryption failure in peripheral role" into main Himanshu Rawat
2025-03-17Encrypt BR/EDR link immediately after pairing Himanshu Rawat
In the peripheral role stack does not immediately encrypt the link after BR/EDR pairing. Instead it tries to change the role first. If the role change fails, the link is not encrypted. Some remote devices don't like to concede the central role. Secured service access would eventually force the encryption but it delays potential CTKD and service discovery. Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.immediate_encryption_after_pairing Bug: 401192310 Bug: 402510244 Change-Id: I9a31ae46cb80b3bb42c6f4b0fbf957fb83876db1
2025-03-17Check if device record is removed after BTM_LE_COMPLT_EVT event callback Himanshu Rawat
BTM_LE_COMPLT_EVT event callback may remove the device record. We must check the validity of the device record before using it. Test: mmm packages/modules/Bluetooth Flag: EXEMPT nullcheck Bug: 402375492 Change-Id: I0ef8af53dac6e401278ced920e17d40925f3166c
2025-03-16Merge changes I786b1559,If55ae134,I9b9fc531,Ib826cf23,Ice6aa59f into main Jakub Pawłowski
* changes: Remove flag key_missing_classic_device Remove flag smp_state_machine_stuck_after_disconnection_fix Remove flag sec_disconnect_on_le_key_missing Remove flag encryption_change_v2 Remove flag l2cap_le_do_not_adjust_min_interval
2025-03-14Don't remove bond on encryption failure in peripheral role Himanshu Rawat
Encryption failure in LE peripheral role generates a SMP_COMPLT_EVT event with an error. This may result in the bond getting removed. If the link could not be encrypted in peripheral role with a bonded device, we must just disconnect the link and not remove the bond. Test: mmm packages/modules/Bluetooth Test: Manual | Keep reconnecting Android Wear devices, there must not be any bond loss Flag: com.android.bluetooth.flags.le_peripheral_enc_failure Bug: 402207015 Bug: 403313352 Change-Id: I98e86140d3cc5b62b027c03d8fb8135401da93c0
2025-03-14Merge "stack: Inline methods from stack_metrics_logging.h" into main Henri Chataing
2025-03-14Remove flag key_missing_classic_device Jakub Pawlowski
Bug: 333634398 Test: mma -j32 Change-Id: I786b1559d1686742d8a3e814059f9203e7cbb8cf
2025-03-14Remove flag sec_disconnect_on_le_key_missing Jakub Pawlowski
Bug: 376680866 Test: mma -j32 Change-Id: I9b9fc53176c38982502a0e605e47b363ddfb9b7f
2025-03-13stack: Inline methods from stack_metrics_logging.h Henri Chataing
Bug: 401588157 Test: m com.android.bt Flag: EXEMPT, no logical change Change-Id: I1cf4a5e3664f4afc3eb2cfebbf23642c568403a4
2025-03-12IOP fix for not reading LE appearance characteristics Himanshu Rawat
Some devices don't respond to GATT Read by UUID requests for LE Appearance characteristics. This causes ATT transaction blockage and disconnection due to ATT transaction timeout. Test: mmm packages/modules/Bluetooth Flag: EXEMPT IOP fix Bug: 402213061 Change-Id: Ib8cc3fbf32ccd0c1291314b65e56abe523acfdd6
2025-03-11Check bonding as requirement against BTM_SEC_IN_AUTHENTICATE rather than MITM Bhakthavatsala Raghavendra
Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.donot_mandate_auth_along_with_encryption Bug: 395475251 Bug: 395476774 Change-Id: Ia460e22b5cd2a96c1b871bff2ba791642e6285a7
2025-03-06Remove security check against secure connections Brian Delwiche
Changes to mitigate BLUFFS include a safeguard against downgrading from Secure Connections mode. However, this breaks connections with certain carkits. After changes to bond loss handling devices cannot reconnect in these scenarios without reauthenticating, so the BLUFFS mitigation is no longer relevant and can be backed out to fix carkit connections. Bug: 390168795 Test: m libbluetooth Ignore-AOSP-First: security Tag: security Flag: EXEMPT removes previously soaked check Change-Id: I71015151be616580ff73f07cda0f0b43d44c8231
2025-03-05Merge "Reset BTM SEC security flags when device pairing fails" into main am: ↵ Himanshu Rawat
b21986ea06 am: 40f35a882d Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3522711 Change-Id: Id59715553396bccd550e3662a858ef5111794448 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-05Merge "Reset BTM SEC security flags when device pairing fails" into main am: ↵ Himanshu Rawat
b21986ea06 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3522711 Change-Id: I6fba085f9d8ee6b29ae38da9d3936172b645fa1f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-05Merge "Reset BTM SEC security flags when device pairing fails" into main Himanshu Rawat
2025-03-05Merge "User able to stream music with temporary pairing" into main am: ↵ Srini S
d3cb0bcb51 am: 88c19d20f4 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3342142 Change-Id: I54f3fbb9a901876739c5f486166f0baef91af33f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-05Merge "User able to stream music with temporary pairing" into main am: ↵ Srini S
d3cb0bcb51 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3342142 Change-Id: Ib3a461f44574748915d4af094938d0e458a94ff5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-05Merge "User able to stream music with temporary pairing" into main Srini S
2025-03-04Merge changes Ie3e2608f,Id2f3d731,I77caad08,Ibca250aa,I0aeb6690 into main ↵ Treehugger Robot
am: 73d351bd76 am: f013ef2c4a Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3525296 Change-Id: I7617bf836733fc7806b1b23bef6cac72c39e19ed Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-04Merge changes Ie3e2608f,Id2f3d731,I77caad08,Ibca250aa,I0aeb6690 into main ↵ Treehugger Robot
am: 73d351bd76 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3525296 Change-Id: Ib361130d1359109644de34908f008bb548d60696 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-04Merge changes I09263867,Ie93d5c81,I8a1d6be2 into main am: 7821e26d11 am: ↵ Treehugger Robot
f0905f4211 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3525410 Change-Id: Ia522ead77f17a041d8e240143e6e800bded8f8ea Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-04Merge changes I09263867,Ie93d5c81,I8a1d6be2 into main am: 7821e26d11 Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3525410 Change-Id: Ia122f6c2a45daac72ff772ac5d676e91e20ac7ea Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-04Remove flag name_discovery_for_le_pairing Himanshu Rawat
Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.name_discovery_for_le_pairing Bug: 355095011 Change-Id: Ie3e2608fd766b8161056ea4793e0b4bd90ea6353
2025-03-04Remove flag pairing_name_discovery_addresss_mismatch Himanshu Rawat
Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.pairing_name_discovery_addresss_mismatch Bug: 349144497 Change-Id: I0aeb6690081f6a2770a07e52b124629f5a47a43c
2025-03-04Remove flag cancel_pairing_only_on_disconnected_transport Himanshu Rawat
Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.cancel_pairing_only_on_disconnected_transport Bug: 338152239 Change-Id: I8a1d6be2d60f3540a6a19c7643f0ed6cfbeda74d
2025-03-04Reset BTM SEC security flags when device pairing fails Himanshu Rawat
Test: mmm packages/modules/Bluetooth Test: Manual | Initiate pairing to the keyboard, cancel the pairing, discover devices again, the keyboard should be found Flag: com.android.bluetooth.flags.reset_security_flags_on_pairing_failure Bug: 340403395 Bug: 400586238 Change-Id: I82c19631d57e3d7a565bd989b81292594db50d41
2025-03-03Merge "Log actual requested tx_pdu_length and tx_time in ↵ Treehugger Robot
BTM_SetBleDataLength" into main am: e2e07c9c3c am: 16731aa2fb Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3475231 Change-Id: Ib98dd60896c2fe61d8c369484ac0beab1d10f7d7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-03Merge "Log actual requested tx_pdu_length and tx_time in ↵ Treehugger Robot
BTM_SetBleDataLength" into main am: e2e07c9c3c Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3475231 Change-Id: I7e0a3754ab37dd422415aa608d14a2c2ccf63f55 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-03Merge "Log actual requested tx_pdu_length and tx_time in ↵ Treehugger Robot
BTM_SetBleDataLength" into main
2025-03-03User able to stream music with temporary pairing Sai Aravind Chakravarthy Gosamsetti
Steps to reproduce: |- 1. Pair and connect Power beats pro with DUT. 2. In-case earbuds and remove the entry from bonded list. 3. Outcase earbuds and try to bond again from DUT - Expected result: Re-pairing should be successful and user should be able to stream again - Observed result: Without accepting any pairing popup remote directly moved to bonded list Repro rate : 10/10 times Root cause: temporary pairing considered as permanent pairing as there is no check for pairing type Fix: Add pairing type check in bond API Bug: 378623381 Test: m Bluetooth Flag: EXEMPT, trivial Change-Id: I5a1cb6d823aea2c4821806574a3f315ad69e2945
2025-03-01Merge "Native bond status interfaces should check persistency as well" into ↵ Treehugger Robot
main am: e1c9db5e91 am: e3d959c0af Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3501813 Change-Id: I3c657a83a9e61b6a593353faf4e57dfe0e5f8b29 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-01Merge "Replace BTM_BleIsLinkKeyKnown with BTM_IsBonded" into main am: ↵ Treehugger Robot
2ba35ffeb7 am: 447d416066 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3501810 Change-Id: I71d910822ff9aa65dd1840131e658f422daaaf90 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-01Merge "Native bond status interfaces should check persistency as well" into ↵ Treehugger Robot
main am: e1c9db5e91 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3501813 Change-Id: I23fa63a618b22c98064610597a79a5155d266e0d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-01Merge "Replace BTM_BleIsLinkKeyKnown with BTM_IsBonded" into main am: 2ba35ffeb7 Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3501810 Change-Id: I752c94b171b6976b9de8ccd297cf97d056d37f14 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-01Merge "Native bond status interfaces should check persistency as well" into main Treehugger Robot
2025-03-01Merge "Replace BTM_BleIsLinkKeyKnown with BTM_IsBonded" into main Treehugger Robot
2025-02-27Merge "Merge 25Q1 (ab/12770256) to aosp-main-future" into aosp-main-future Xin Li
2025-02-27Merge "Fix transport selection for BT pairing with dual mode devices" into ↵ Srini S
main am: a08fe33a7c am: 1aa4e7164b Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3465075 Change-Id: Ib4c1d871add634fe54387f2c1c21994889bb014b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-27Merge "Fix transport selection for BT pairing with dual mode devices" into main Srini S
2025-02-26Merge changes I622a70c7,Icef05f84 into main am: 29e7fa0460 am: dbab038bec Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3499016 Change-Id: I8ad472f726aced06944d29194d8a86c6e02c4faa Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-26Native bond status interfaces should check persistency as well Himanshu Rawat
IsDeviceBonded() does not check if the pairing was persistent or not. Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.temporary_pairing_tracking Bug: 396433944 Bug: 397705157 Change-Id: I35424f556d7a9dfe8e307186fa450d8943ae2e64
2025-02-26Replace BTM_BleIsLinkKeyKnown with BTM_IsBonded Himanshu Rawat
Change-Id: Id527219b67df92bff93461b23002ac9b9cd6b294 Test: mmm packages/modules/Bluetooth Flag: EXEMPT refactor Bug: 396433944
2025-02-26Merge "Track and set the pairing persistency for all BR/EDR pairing" into ↵ Himanshu Rawat
main am: d74b3d5795 am: 33fe3f14ec Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/3499014 Change-Id: I92d40ac67103c712bc054fb0e748e2a8fbacbb52 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-26Fix transport selection for BT pairing with dual mode devices Srini S
When createBond API is called with Auto Transport, BR/EDR transport is selected for pairing with the dual mode devices using the public address. This can result in pairing attempt failure if the remote device is not connectable over BR/EDR. This change chooses transport for BT pairing based on the transport seen during the discovery of the remote device. Change-Id: I0bb41006049edae1144d196c2911c7f895452014 Test: atest PairingTest Flag: com.android.bluetooth.flags.auto_transport_pairing Bug: 388074343 Bug: 398329326
2025-02-26Consolidate native interfaces for checking bond status Himanshu Rawat
BTM offers two sets of bond status interfaces. IsLinkKeyKnown() can be used for either transport but does not consider the temporary pairing. IsDeviceBonded() just checks if the device is bonded over any transport. Both of these interfaces are now consolidated into a single interface which allows checking transport specific bond status or bond status irrespective of transport. Test: mmm packages/modules/Bluetooth Flag: EXEMPT refactor Bug: 396433944 Change-Id: Icef05f847de04b7fc06e741313da88a48d2efe1c
2025-02-26Track and set the pairing persistency for all BR/EDR pairing Himanshu Rawat
Track whether the pairing type is persistent or not for all pairing. Ensure that pairing type is correctly applied to the device after BR/EDR pairing is complete. Pairing persistency is applicable only for BR/EDR transport at present. It must not be set for LE transport pairing. Test: mmm packages/modules/Bluetooth Flag: com.android.bluetooth.flags.temporary_pairing_tracking Bug: 396433944 Bug: 397705157 Change-Id: Icf99c12d8d78f01a32c881ba6a2dc8ad6b6978da