Loading android/app/src/com/android/bluetooth/btservice/AdapterService.java +5 −0 Original line number Diff line number Diff line Loading @@ -5247,6 +5247,7 @@ public class AdapterService extends Service { } // Boolean flags private static final String SDP_SERIALIZATION_FLAG = "INIT_sdp_serialization"; private static final String GD_CORE_FLAG = "INIT_gd_core"; private static final String GD_ADVERTISING_FLAG = "INIT_gd_advertising"; private static final String GD_SCANNING_FLAG = "INIT_gd_scanning"; Loading Loading @@ -5285,6 +5286,10 @@ public class AdapterService extends Service { if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH, GD_CORE_FLAG, false)) { initFlags.add(String.format("%s=%s", GD_CORE_FLAG, "true")); } if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH, SDP_SERIALIZATION_FLAG, true)) { initFlags.add(String.format("%s=%s", SDP_SERIALIZATION_FLAG, "true")); } if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH, GD_ADVERTISING_FLAG, false)) { initFlags.add(String.format("%s=%s", GD_ADVERTISING_FLAG, "true")); } Loading system/gd/rust/common/src/init_flags.rs +1 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ macro_rules! init_flags { init_flags!( flags: { sdp_serialization, gd_core, gd_security, gd_l2cap, Loading system/gd/rust/shim/src/init_flags.rs +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ mod ffi { fn load(flags: Vec<String>); fn set_all_for_testing(); fn sdp_serialization_is_enabled() -> bool; fn gd_core_is_enabled() -> bool; fn gd_security_is_enabled() -> bool; fn gd_l2cap_is_enabled() -> bool; Loading system/stack/sdp/sdp_main.cc +4 −3 Original line number Diff line number Diff line Loading @@ -22,8 +22,10 @@ * ******************************************************************************/ #include <base/logging.h> #include <string.h> // memset #include "gd/common/init_flags.h" #include "osi/include/allocator.h" #include "osi/include/osi.h" // UNUSED_ATTR #include "stack/include/bt_hdr.h" Loading @@ -34,8 +36,6 @@ #include "stack/sdp/sdpint.h" #include "types/raw_address.h" #include <base/logging.h> /******************************************************************************/ /* G L O B A L S D P D A T A */ /******************************************************************************/ Loading Loading @@ -351,7 +351,8 @@ tCONN_CB* sdp_conn_originate(const RawAddress& p_bd_addr) { // Look for any active sdp connection on the remote device cid = sdpu_get_active_ccb_cid(p_bd_addr); if (cid == 0) { if (!bluetooth::common::init_flags::sdp_serialization_is_enabled() || cid == 0) { p_ccb->con_state = SDP_STATE_CONN_SETUP; cid = L2CA_ConnectReq2(BT_PSM_SDP, p_bd_addr, BTM_SEC_NONE); } else { Loading system/stack/test/sdp/stack_sdp_test.cc +2 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,8 @@ tCONN_CB* find_ccb(uint16_t cid, uint8_t state) { } TEST_F(StackSdpMainTest, sdp_service_search_request_queuing) { bluetooth::common::InitFlags::SetAllForTesting(); ASSERT_TRUE(SDP_ServiceSearchRequest(addr, sdp_db, nullptr)); const int cid = L2CA_ConnectReq2_cid; tCONN_CB* p_ccb1 = find_ccb(cid, SDP_STATE_CONN_SETUP); Loading Loading
android/app/src/com/android/bluetooth/btservice/AdapterService.java +5 −0 Original line number Diff line number Diff line Loading @@ -5247,6 +5247,7 @@ public class AdapterService extends Service { } // Boolean flags private static final String SDP_SERIALIZATION_FLAG = "INIT_sdp_serialization"; private static final String GD_CORE_FLAG = "INIT_gd_core"; private static final String GD_ADVERTISING_FLAG = "INIT_gd_advertising"; private static final String GD_SCANNING_FLAG = "INIT_gd_scanning"; Loading Loading @@ -5285,6 +5286,10 @@ public class AdapterService extends Service { if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH, GD_CORE_FLAG, false)) { initFlags.add(String.format("%s=%s", GD_CORE_FLAG, "true")); } if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH, SDP_SERIALIZATION_FLAG, true)) { initFlags.add(String.format("%s=%s", SDP_SERIALIZATION_FLAG, "true")); } if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH, GD_ADVERTISING_FLAG, false)) { initFlags.add(String.format("%s=%s", GD_ADVERTISING_FLAG, "true")); } Loading
system/gd/rust/common/src/init_flags.rs +1 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ macro_rules! init_flags { init_flags!( flags: { sdp_serialization, gd_core, gd_security, gd_l2cap, Loading
system/gd/rust/shim/src/init_flags.rs +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ mod ffi { fn load(flags: Vec<String>); fn set_all_for_testing(); fn sdp_serialization_is_enabled() -> bool; fn gd_core_is_enabled() -> bool; fn gd_security_is_enabled() -> bool; fn gd_l2cap_is_enabled() -> bool; Loading
system/stack/sdp/sdp_main.cc +4 −3 Original line number Diff line number Diff line Loading @@ -22,8 +22,10 @@ * ******************************************************************************/ #include <base/logging.h> #include <string.h> // memset #include "gd/common/init_flags.h" #include "osi/include/allocator.h" #include "osi/include/osi.h" // UNUSED_ATTR #include "stack/include/bt_hdr.h" Loading @@ -34,8 +36,6 @@ #include "stack/sdp/sdpint.h" #include "types/raw_address.h" #include <base/logging.h> /******************************************************************************/ /* G L O B A L S D P D A T A */ /******************************************************************************/ Loading Loading @@ -351,7 +351,8 @@ tCONN_CB* sdp_conn_originate(const RawAddress& p_bd_addr) { // Look for any active sdp connection on the remote device cid = sdpu_get_active_ccb_cid(p_bd_addr); if (cid == 0) { if (!bluetooth::common::init_flags::sdp_serialization_is_enabled() || cid == 0) { p_ccb->con_state = SDP_STATE_CONN_SETUP; cid = L2CA_ConnectReq2(BT_PSM_SDP, p_bd_addr, BTM_SEC_NONE); } else { Loading
system/stack/test/sdp/stack_sdp_test.cc +2 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,8 @@ tCONN_CB* find_ccb(uint16_t cid, uint8_t state) { } TEST_F(StackSdpMainTest, sdp_service_search_request_queuing) { bluetooth::common::InitFlags::SetAllForTesting(); ASSERT_TRUE(SDP_ServiceSearchRequest(addr, sdp_db, nullptr)); const int cid = L2CA_ConnectReq2_cid; tCONN_CB* p_ccb1 = find_ccb(cid, SDP_STATE_CONN_SETUP); Loading