Loading flags/bta_dm.aconfig +0 −7 Original line number Diff line number Diff line package: "com.android.bluetooth.flags" container: "com.android.btservices" flag { name: "synchronous_bta_sec" namespace: "bluetooth" description: "Make BTA_DmXXX security APIs synchronous" bug: "311196228" } flag { name: "bta_dm_defer_device_discovery_state_change_until_rnr_complete" namespace: "bluetooth" Loading system/bta/dm/bta_dm_api.cc +2 −6 Original line number Diff line number Diff line Loading @@ -212,17 +212,13 @@ void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr, uint16_t min_int * * Description Enable/disable privacy on the local device * * Parameters: privacy_enable - enable/disabe privacy on remote device. * Parameters: privacy_enable - enable/disable privacy on remote device. * * Returns void * ******************************************************************************/ void BTA_DmBleConfigLocalPrivacy(bool privacy_enable) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_config_local_privacy(privacy_enable); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_config_local_privacy, privacy_enable)); } } /******************************************************************************* Loading system/bta/dm/bta_dm_sec_api.cc +16 −87 Original line number Diff line number Diff line Loading @@ -39,23 +39,12 @@ using namespace bluetooth; /** This function initiates a bonding procedure with a peer device */ void BTA_DmBond(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, tBT_TRANSPORT transport, tBT_DEVICE_TYPE device_type) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_bond(bd_addr, addr_type, transport, device_type); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_bond, bd_addr, addr_type, transport, device_type)); } } /** This function cancels the bonding procedure with a peer device */ void BTA_DmBondCancel(const RawAddress& bd_addr) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_bond_cancel(bd_addr); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_bond_cancel, bd_addr)); } } void BTA_DmBondCancel(const RawAddress& bd_addr) { bta_dm_bond_cancel(bd_addr); } /******************************************************************************* * Loading @@ -78,11 +67,7 @@ void BTA_DmPinReply(const RawAddress& bd_addr, bool accept, uint8_t pin_len, uin memcpy(msg->p_pin, p_pin, pin_len); } if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_pin_reply(std::move(msg)); } else { do_in_main_thread(FROM_HERE, base::Bind(bta_dm_pin_reply, base::Passed(&msg))); } } /******************************************************************************* Loading @@ -98,13 +83,7 @@ void BTA_DmPinReply(const RawAddress& bd_addr, bool accept, uint8_t pin_len, uin * Returns void * ******************************************************************************/ void BTA_DmLocalOob(void) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { BTM_ReadLocalOobData(); } else { do_in_main_thread(FROM_HERE, base::BindOnce(BTM_ReadLocalOobData)); } } void BTA_DmLocalOob(void) { BTM_ReadLocalOobData(); } /******************************************************************************* * Loading @@ -116,13 +95,7 @@ void BTA_DmLocalOob(void) { * Returns void * ******************************************************************************/ void BTA_DmConfirm(const RawAddress& bd_addr, bool accept) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_confirm(bd_addr, accept); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_confirm, bd_addr, accept)); } } void BTA_DmConfirm(const RawAddress& bd_addr, bool accept) { bta_dm_confirm(bd_addr, accept); } /******************************************************************************* * Loading @@ -139,21 +112,13 @@ void BTA_DmAddDevice(RawAddress bd_addr, DEV_CLASS dev_class, LinkKey link_key, auto closure = base::Bind(get_btm_client_interface().security.BTM_SecAddDevice, bd_addr, dev_class, link_key, key_type, pin_length); if (com::android::bluetooth::flags::synchronous_bta_sec()) { closure.Run(); } else { do_in_main_thread(FROM_HERE, closure); } } /** This function removes a device from the security database list of peer * device. It manages unpairing even while connected */ tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_remove_device(bd_addr); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_remove_device, bd_addr)); } return BTA_SUCCESS; } Loading @@ -175,11 +140,7 @@ tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr) { ******************************************************************************/ void BTA_DmAddBleKey(const RawAddress& bd_addr, tBTA_LE_KEY_VALUE* p_le_key, tBTM_LE_KEY_TYPE key_type) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_add_blekey(bd_addr, *p_le_key, key_type); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_add_blekey, bd_addr, *p_le_key, key_type)); } } /******************************************************************************* Loading @@ -199,12 +160,7 @@ void BTA_DmAddBleKey(const RawAddress& bd_addr, tBTA_LE_KEY_VALUE* p_le_key, ******************************************************************************/ void BTA_DmAddBleDevice(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, tBT_DEVICE_TYPE dev_type) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_add_ble_device(bd_addr, addr_type, dev_type); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_add_ble_device, bd_addr, addr_type, dev_type)); } } /******************************************************************************* Loading @@ -222,12 +178,7 @@ void BTA_DmAddBleDevice(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, * ******************************************************************************/ void BTA_DmBlePasskeyReply(const RawAddress& bd_addr, bool accept, uint32_t passkey) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_passkey_reply(bd_addr, accept, accept ? passkey : 0); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_passkey_reply, bd_addr, accept, accept ? passkey : 0)); } } /******************************************************************************* Loading @@ -244,11 +195,7 @@ void BTA_DmBlePasskeyReply(const RawAddress& bd_addr, bool accept, uint32_t pass * ******************************************************************************/ void BTA_DmBleConfirmReply(const RawAddress& bd_addr, bool accept) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_confirm_reply(bd_addr, accept); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_confirm_reply, bd_addr, accept)); } } /******************************************************************************* Loading @@ -264,11 +211,7 @@ void BTA_DmBleConfirmReply(const RawAddress& bd_addr, bool accept) { * ******************************************************************************/ void BTA_DmBleSecurityGrant(const RawAddress& bd_addr, tBTA_DM_BLE_SEC_GRANT res) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { BTM_SecurityGrant(bd_addr, res); } else { do_in_main_thread(FROM_HERE, base::BindOnce(BTM_SecurityGrant, bd_addr, res)); } } /******************************************************************************* Loading Loading @@ -296,12 +239,7 @@ void BTA_DmBleSecurityGrant(const RawAddress& bd_addr, tBTA_DM_BLE_SEC_GRANT res void BTA_DmSetEncryption(const RawAddress& bd_addr, tBT_TRANSPORT transport, tBTA_DM_ENCRYPT_CBACK* p_callback, tBTM_BLE_SEC_ACT sec_act) { log::verbose(""); if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_set_encryption(bd_addr, transport, p_callback, sec_act); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_set_encryption, bd_addr, transport, p_callback, sec_act)); } } /******************************************************************************* Loading @@ -318,11 +256,7 @@ void BTA_DmSetEncryption(const RawAddress& bd_addr, tBT_TRANSPORT transport, ******************************************************************************/ void BTA_DmSirkSecCbRegister(tBTA_DM_SEC_CBACK* p_cback) { log::debug(""); if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_sirk_sec_cb_register(p_cback); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_sirk_sec_cb_register, p_cback)); } } /******************************************************************************* Loading @@ -340,10 +274,5 @@ void BTA_DmSirkSecCbRegister(tBTA_DM_SEC_CBACK* p_cback) { ******************************************************************************/ void BTA_DmSirkConfirmDeviceReply(const RawAddress& bd_addr, bool accept) { log::debug(""); if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_sirk_confirm_device_reply(bd_addr, accept); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_sirk_confirm_device_reply, bd_addr, accept)); } } Loading
flags/bta_dm.aconfig +0 −7 Original line number Diff line number Diff line package: "com.android.bluetooth.flags" container: "com.android.btservices" flag { name: "synchronous_bta_sec" namespace: "bluetooth" description: "Make BTA_DmXXX security APIs synchronous" bug: "311196228" } flag { name: "bta_dm_defer_device_discovery_state_change_until_rnr_complete" namespace: "bluetooth" Loading
system/bta/dm/bta_dm_api.cc +2 −6 Original line number Diff line number Diff line Loading @@ -212,17 +212,13 @@ void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr, uint16_t min_int * * Description Enable/disable privacy on the local device * * Parameters: privacy_enable - enable/disabe privacy on remote device. * Parameters: privacy_enable - enable/disable privacy on remote device. * * Returns void * ******************************************************************************/ void BTA_DmBleConfigLocalPrivacy(bool privacy_enable) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_config_local_privacy(privacy_enable); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_config_local_privacy, privacy_enable)); } } /******************************************************************************* Loading
system/bta/dm/bta_dm_sec_api.cc +16 −87 Original line number Diff line number Diff line Loading @@ -39,23 +39,12 @@ using namespace bluetooth; /** This function initiates a bonding procedure with a peer device */ void BTA_DmBond(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, tBT_TRANSPORT transport, tBT_DEVICE_TYPE device_type) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_bond(bd_addr, addr_type, transport, device_type); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_bond, bd_addr, addr_type, transport, device_type)); } } /** This function cancels the bonding procedure with a peer device */ void BTA_DmBondCancel(const RawAddress& bd_addr) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_bond_cancel(bd_addr); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_bond_cancel, bd_addr)); } } void BTA_DmBondCancel(const RawAddress& bd_addr) { bta_dm_bond_cancel(bd_addr); } /******************************************************************************* * Loading @@ -78,11 +67,7 @@ void BTA_DmPinReply(const RawAddress& bd_addr, bool accept, uint8_t pin_len, uin memcpy(msg->p_pin, p_pin, pin_len); } if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_pin_reply(std::move(msg)); } else { do_in_main_thread(FROM_HERE, base::Bind(bta_dm_pin_reply, base::Passed(&msg))); } } /******************************************************************************* Loading @@ -98,13 +83,7 @@ void BTA_DmPinReply(const RawAddress& bd_addr, bool accept, uint8_t pin_len, uin * Returns void * ******************************************************************************/ void BTA_DmLocalOob(void) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { BTM_ReadLocalOobData(); } else { do_in_main_thread(FROM_HERE, base::BindOnce(BTM_ReadLocalOobData)); } } void BTA_DmLocalOob(void) { BTM_ReadLocalOobData(); } /******************************************************************************* * Loading @@ -116,13 +95,7 @@ void BTA_DmLocalOob(void) { * Returns void * ******************************************************************************/ void BTA_DmConfirm(const RawAddress& bd_addr, bool accept) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_confirm(bd_addr, accept); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_confirm, bd_addr, accept)); } } void BTA_DmConfirm(const RawAddress& bd_addr, bool accept) { bta_dm_confirm(bd_addr, accept); } /******************************************************************************* * Loading @@ -139,21 +112,13 @@ void BTA_DmAddDevice(RawAddress bd_addr, DEV_CLASS dev_class, LinkKey link_key, auto closure = base::Bind(get_btm_client_interface().security.BTM_SecAddDevice, bd_addr, dev_class, link_key, key_type, pin_length); if (com::android::bluetooth::flags::synchronous_bta_sec()) { closure.Run(); } else { do_in_main_thread(FROM_HERE, closure); } } /** This function removes a device from the security database list of peer * device. It manages unpairing even while connected */ tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_remove_device(bd_addr); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_remove_device, bd_addr)); } return BTA_SUCCESS; } Loading @@ -175,11 +140,7 @@ tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr) { ******************************************************************************/ void BTA_DmAddBleKey(const RawAddress& bd_addr, tBTA_LE_KEY_VALUE* p_le_key, tBTM_LE_KEY_TYPE key_type) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_add_blekey(bd_addr, *p_le_key, key_type); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_add_blekey, bd_addr, *p_le_key, key_type)); } } /******************************************************************************* Loading @@ -199,12 +160,7 @@ void BTA_DmAddBleKey(const RawAddress& bd_addr, tBTA_LE_KEY_VALUE* p_le_key, ******************************************************************************/ void BTA_DmAddBleDevice(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, tBT_DEVICE_TYPE dev_type) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_add_ble_device(bd_addr, addr_type, dev_type); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_add_ble_device, bd_addr, addr_type, dev_type)); } } /******************************************************************************* Loading @@ -222,12 +178,7 @@ void BTA_DmAddBleDevice(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, * ******************************************************************************/ void BTA_DmBlePasskeyReply(const RawAddress& bd_addr, bool accept, uint32_t passkey) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_passkey_reply(bd_addr, accept, accept ? passkey : 0); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_passkey_reply, bd_addr, accept, accept ? passkey : 0)); } } /******************************************************************************* Loading @@ -244,11 +195,7 @@ void BTA_DmBlePasskeyReply(const RawAddress& bd_addr, bool accept, uint32_t pass * ******************************************************************************/ void BTA_DmBleConfirmReply(const RawAddress& bd_addr, bool accept) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_confirm_reply(bd_addr, accept); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_confirm_reply, bd_addr, accept)); } } /******************************************************************************* Loading @@ -264,11 +211,7 @@ void BTA_DmBleConfirmReply(const RawAddress& bd_addr, bool accept) { * ******************************************************************************/ void BTA_DmBleSecurityGrant(const RawAddress& bd_addr, tBTA_DM_BLE_SEC_GRANT res) { if (com::android::bluetooth::flags::synchronous_bta_sec()) { BTM_SecurityGrant(bd_addr, res); } else { do_in_main_thread(FROM_HERE, base::BindOnce(BTM_SecurityGrant, bd_addr, res)); } } /******************************************************************************* Loading Loading @@ -296,12 +239,7 @@ void BTA_DmBleSecurityGrant(const RawAddress& bd_addr, tBTA_DM_BLE_SEC_GRANT res void BTA_DmSetEncryption(const RawAddress& bd_addr, tBT_TRANSPORT transport, tBTA_DM_ENCRYPT_CBACK* p_callback, tBTM_BLE_SEC_ACT sec_act) { log::verbose(""); if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_set_encryption(bd_addr, transport, p_callback, sec_act); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_set_encryption, bd_addr, transport, p_callback, sec_act)); } } /******************************************************************************* Loading @@ -318,11 +256,7 @@ void BTA_DmSetEncryption(const RawAddress& bd_addr, tBT_TRANSPORT transport, ******************************************************************************/ void BTA_DmSirkSecCbRegister(tBTA_DM_SEC_CBACK* p_cback) { log::debug(""); if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_sirk_sec_cb_register(p_cback); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_sirk_sec_cb_register, p_cback)); } } /******************************************************************************* Loading @@ -340,10 +274,5 @@ void BTA_DmSirkSecCbRegister(tBTA_DM_SEC_CBACK* p_cback) { ******************************************************************************/ void BTA_DmSirkConfirmDeviceReply(const RawAddress& bd_addr, bool accept) { log::debug(""); if (com::android::bluetooth::flags::synchronous_bta_sec()) { bta_dm_ble_sirk_confirm_device_reply(bd_addr, accept); } else { do_in_main_thread(FROM_HERE, base::BindOnce(bta_dm_ble_sirk_confirm_device_reply, bd_addr, accept)); } }