1 #pragma once 2 3 4 5 #ifdef __cplusplus 6 7 #include <memory> 8 9 namespace com::android::bluetooth::flags { 10 11 class flag_provider_interface { 12 public: 13 virtual ~flag_provider_interface() = default; 14 virtual bool a2dp_aidl_encoding_interval() = 0; 15 virtual bool a2dp_broadcast_connection_state_when_turned_off() = 0; 16 virtual bool a2dp_check_lea_iso_channel() = 0; 17 virtual bool a2dp_clear_pending_start_on_session_restart() = 0; 18 virtual bool a2dp_fix_codec_type_in_java() = 0; 19 virtual bool a2dp_ignore_started_when_responder() = 0; 20 virtual bool a2dp_lhdc_api() = 0; 21 virtual bool a2dp_service_looper() = 0; 22 virtual bool a2dp_source_threading_fix() = 0; 23 virtual bool a2dp_variable_aac_capability() = 0; 24 virtual bool abs_volume_sdp_conflict() = 0; 25 virtual bool adapter_properties_looper() = 0; 26 virtual bool adapter_suspend_mgmt() = 0; 27 virtual bool adm_always_fallback_to_available_device() = 0; 28 virtual bool adm_fallback_when_wired_audio_disconnected() = 0; 29 virtual bool adm_fix_disconnect_of_set_member() = 0; 30 virtual bool adm_verify_active_fallback_device() = 0; 31 virtual bool aics_api() = 0; 32 virtual bool allow_free_last_scn() = 0; 33 virtual bool allow_switching_hid_and_hogp() = 0; 34 virtual bool android_headtracker_service() = 0; 35 virtual bool android_os_identifier() = 0; 36 virtual bool api_get_connection_state_using_identity_address() = 0; 37 virtual bool asha_encrypted_l2c_coc() = 0; 38 virtual bool associate_browse_l2cap_request_with_active_control_channel() = 0; 39 virtual bool asymmetric_phy_for_unidirectional_cis() = 0; 40 virtual bool audio_port_binder_inherit_rt() = 0; 41 virtual bool auto_connect_on_multiple_hfp_when_no_a2dp_device() = 0; 42 virtual bool av_stream_reconfigure_fix() = 0; 43 virtual bool avdt_discover_seps_as_acceptor() = 0; 44 virtual bool avdt_handle_suspend_cfm_bad_state() = 0; 45 virtual bool avdt_prioritize_mandatory_codec() = 0; 46 virtual bool avdtp_error_codes() = 0; 47 virtual bool avoid_l2c_processing_while_stack_shutdown() = 0; 48 virtual bool avrcp_16_default() = 0; 49 virtual bool avrcp_connect_a2dp_with_delay() = 0; 50 virtual bool avrcp_sdp_records() = 0; 51 virtual bool ble_check_data_length_on_legacy_advertising() = 0; 52 virtual bool ble_context_map_remove_fix() = 0; 53 virtual bool ble_gatt_server_use_address_type_in_connection() = 0; 54 virtual bool ble_scan_adv_metrics_redesign() = 0; 55 virtual bool bluetooth_power_telemetry() = 0; 56 virtual bool bond_transport_after_bond_cancel_fix() = 0; 57 virtual bool break_uhid_polling_early() = 0; 58 virtual bool browsing_refactor() = 0; 59 virtual bool bt_offload_socket_api() = 0; 60 virtual bool bt_socket_api_l2cap_cid() = 0; 61 virtual bool bt_system_context_report() = 0; 62 virtual bool bta_ag_cmd_brsf_allow_uint32() = 0; 63 virtual bool bta_av_setconfig_rej_type_confusion() = 0; 64 virtual bool bta_av_use_peer_codec() = 0; 65 virtual bool bta_dm_defer_device_discovery_state_change_until_rnr_complete() = 0; 66 virtual bool bta_dm_discover_both() = 0; 67 virtual bool btsec_avdt_msg_ind_type_confusion() = 0; 68 virtual bool btsec_check_valid_discovery_database() = 0; 69 virtual bool btsec_cycle_irks() = 0; 70 virtual bool btsec_le_oob_pairing() = 0; 71 virtual bool cancel_open_discovery_client() = 0; 72 virtual bool cancel_pairing_only_on_disconnected_transport() = 0; 73 virtual bool channel_sounding() = 0; 74 virtual bool channel_sounding_25q2_apis() = 0; 75 virtual bool channel_sounding_in_stack() = 0; 76 virtual bool choose_wrong_hfp_codec_in_specific_config() = 0; 77 virtual bool clear_auth_collision_state_on_pairing_complete() = 0; 78 virtual bool clear_pairing_state_when_no_devrec() = 0; 79 virtual bool close_hid_if_uhid_ready_too_slow() = 0; 80 virtual bool close_hid_only_if_connected() = 0; 81 virtual bool connect_hap_on_other_profile_connect() = 0; 82 virtual bool default_gatt_transport() = 0; 83 virtual bool device_iot_config_logging() = 0; 84 virtual bool directed_advertising_api() = 0; 85 virtual bool disconnect_on_encryption_failure() = 0; 86 virtual bool donot_push_error_code_to_app_when_connected() = 0; 87 virtual bool donot_queue_dup_rnr() = 0; 88 virtual bool donot_update_sec_flags_on_csrk_save() = 0; 89 virtual bool donot_validate_bond_state_from_profiles() = 0; 90 virtual bool dont_send_hci_disconnect_repeatedly() = 0; 91 virtual bool dont_send_hid_set_idle() = 0; 92 virtual bool drop_acl_fragment_on_disconnect() = 0; 93 virtual bool enable_hap_by_default() = 0; 94 virtual bool encrypted_advertising_data() = 0; 95 virtual bool encryption_change_broadcast() = 0; 96 virtual bool encryption_change_v2() = 0; 97 virtual bool enforce_resolve_system_service_behavior() = 0; 98 virtual bool fix_add_device_properties() = 0; 99 virtual bool fix_avdt_rconfig_not_setting_l2cap() = 0; 100 virtual bool fix_hfp_qual_1_9() = 0; 101 virtual bool fix_le_evt_cancelling_sdp_discovery() = 0; 102 virtual bool fix_nonconnectable_scannable_advertisement() = 0; 103 virtual bool fix_sco_command_status_handling() = 0; 104 virtual bool floss_separate_host_privacy_and_llprivacy() = 0; 105 virtual bool forward_get_set_report_failure_to_uhid() = 0; 106 virtual bool gatt_callback_on_failure() = 0; 107 virtual bool gatt_clear_cache_on_factory_reset() = 0; 108 virtual bool gatt_client_dynamic_allocation() = 0; 109 virtual bool gatt_disconnect_fix() = 0; 110 virtual bool gatt_fix_multiple_direct_connect() = 0; 111 virtual bool gatt_queue_cleanup_connected() = 0; 112 virtual bool gatt_rediscover_on_canceled() = 0; 113 virtual bool gatt_server_requests_fix() = 0; 114 virtual bool get_all_element_attributes_empty() = 0; 115 virtual bool get_name_and_address_as_callback() = 0; 116 virtual bool get_profile_use_lock() = 0; 117 virtual bool get_state_from_system_server() = 0; 118 virtual bool guard_bonded_device_properties() = 0; 119 virtual bool guest_mode_bond() = 0; 120 virtual bool handle_delivery_sending_failure_events() = 0; 121 virtual bool hap_connect_only_requested_device() = 0; 122 virtual bool hci_vendor_specific_extension() = 0; 123 virtual bool headset_client_am_hf_volume_symmetric() = 0; 124 virtual bool headtracker_codec_capability() = 0; 125 virtual bool headtracker_sdu_size() = 0; 126 virtual bool hfp_allow_volume_change_without_sco() = 0; 127 virtual bool hfp_client_disconnecting_state() = 0; 128 virtual bool hfp_software_datapath() = 0; 129 virtual bool hid_report_queuing() = 0; 130 virtual bool hogp_reconnection() = 0; 131 virtual bool identity_address_null_if_not_known() = 0; 132 virtual bool identity_address_type_api() = 0; 133 virtual bool identity_retention_on_restart() = 0; 134 virtual bool ignore_auth_req_when_collision_timer_active() = 0; 135 virtual bool ignore_notify_when_already_connected() = 0; 136 virtual bool ignore_unrelated_cancel_bond() = 0; 137 virtual bool improve_create_connection_for_already_connecting_device() = 0; 138 virtual bool initial_conn_params_p1() = 0; 139 virtual bool initiate_multiple_hid_connections() = 0; 140 virtual bool is_sco_managed_by_audio() = 0; 141 virtual bool key_missing_as_ordered_broadcast() = 0; 142 virtual bool key_missing_classic_device() = 0; 143 virtual bool key_missing_public() = 0; 144 virtual bool kill_instead_of_exit() = 0; 145 virtual bool l2cap_fcs_option_fix() = 0; 146 virtual bool l2cap_le_do_not_adjust_min_interval() = 0; 147 virtual bool l2cap_p_ccb_check_rewrite() = 0; 148 virtual bool l2cap_tx_complete_cb_info() = 0; 149 virtual bool l2cap_update_existing_conn_interval_with_base_interval() = 0; 150 virtual bool le_ase_read_multiple_variable() = 0; 151 virtual bool le_audio_base_ecosystem_interval() = 0; 152 virtual bool le_audio_support_unidirectional_voice_assistant() = 0; 153 virtual bool le_enc_on_reconnection() = 0; 154 virtual bool le_impl_ack_pause_disarmed() = 0; 155 virtual bool le_inquiry_duration() = 0; 156 virtual bool le_scan_msft_support() = 0; 157 virtual bool le_scan_remove_non_oneway_binder_calls() = 0; 158 virtual bool le_scan_use_address_type() = 0; 159 virtual bool le_scan_use_uid_for_importance() = 0; 160 virtual bool leaudio_add_aics_support() = 0; 161 virtual bool leaudio_add_opus_codec_type() = 0; 162 virtual bool leaudio_allow_leaudio_only_devices() = 0; 163 virtual bool leaudio_allowed_context_mask() = 0; 164 virtual bool leaudio_big_depends_on_audio_state() = 0; 165 virtual bool leaudio_broadcast_api_get_local_metadata() = 0; 166 virtual bool leaudio_broadcast_api_manage_primary_group() = 0; 167 virtual bool leaudio_broadcast_assistant_peripheral_entrustment() = 0; 168 virtual bool leaudio_broadcast_destroy_after_timeout() = 0; 169 virtual bool leaudio_broadcast_extract_periodic_scanner_from_state_machine() = 0; 170 virtual bool leaudio_broadcast_monitor_source_sync_status() = 0; 171 virtual bool leaudio_broadcast_primary_group_selection() = 0; 172 virtual bool leaudio_broadcast_resync_helper() = 0; 173 virtual bool leaudio_broadcast_update_metadata_callback() = 0; 174 virtual bool leaudio_broadcast_volume_control_for_connected_devices() = 0; 175 virtual bool leaudio_broadcast_volume_control_primary_group_only() = 0; 176 virtual bool leaudio_broadcast_volume_control_with_set_volume() = 0; 177 virtual bool leaudio_call_start_scan_directly() = 0; 178 virtual bool leaudio_codec_config_callback_order_fix() = 0; 179 virtual bool leaudio_config_profile_enabling() = 0; 180 virtual bool leaudio_dev_options_respect_profile_sysprops() = 0; 181 virtual bool leaudio_dynamic_spatial_audio() = 0; 182 virtual bool leaudio_getting_active_state_support() = 0; 183 virtual bool leaudio_gmap_client() = 0; 184 virtual bool leaudio_hal_client_asrc() = 0; 185 virtual bool leaudio_improve_switch_during_phone_call() = 0; 186 virtual bool leaudio_monitor_unicast_source_when_managed_by_broadcast_delegator() = 0; 187 virtual bool leaudio_mono_location_errata() = 0; 188 virtual bool leaudio_mono_location_errata_api() = 0; 189 virtual bool leaudio_multicodec_aidl_support() = 0; 190 virtual bool leaudio_multiple_vocs_instances_api() = 0; 191 virtual bool leaudio_no_context_validate_streaming_request() = 0; 192 virtual bool leaudio_set_codec_config_preference() = 0; 193 virtual bool leaudio_sort_scans_to_sync_by_fails() = 0; 194 virtual bool leaudio_speed_up_reconfiguration_between_call() = 0; 195 virtual bool leaudio_start_request_state_mutex_check() = 0; 196 virtual bool leaudio_stop_updated_to_not_available_context_stream() = 0; 197 virtual bool leaudio_synchronize_start() = 0; 198 virtual bool leaudio_unicast_no_available_contexts() = 0; 199 virtual bool leaudio_use_audio_mode_listener() = 0; 200 virtual bool maintain_call_index_after_conference() = 0; 201 virtual bool map_limit_notification() = 0; 202 virtual bool mcp_allow_play_without_active_player() = 0; 203 virtual bool metadata_api_inactive_audio_device_upon_connection() = 0; 204 virtual bool metadata_api_microphone_for_call_enabled() = 0; 205 virtual bool msft_addr_tracking_quirk() = 0; 206 virtual bool name_discovery_for_le_pairing() = 0; 207 virtual bool non_wake_alarm_for_rpa_rotation() = 0; 208 virtual bool nrpa_non_connectable_adv() = 0; 209 virtual bool opp_check_content_uri_permissions() = 0; 210 virtual bool opp_fix_multiple_notifications_issues() = 0; 211 virtual bool opp_ignore_content_observer_after_service_stop() = 0; 212 virtual bool opp_set_insets_for_edge_to_edge() = 0; 213 virtual bool opp_start_activity_directly_from_notification() = 0; 214 virtual bool override_context_to_specify_device_id() = 0; 215 virtual bool pairing_name_discovery_addresss_mismatch() = 0; 216 virtual bool pairing_on_unknown_transport() = 0; 217 virtual bool pan_use_identity_address() = 0; 218 virtual bool pbap_client_contacts_caching() = 0; 219 virtual bool pbap_client_storage_refactor() = 0; 220 virtual bool pending_hid_connection_cancellation() = 0; 221 virtual bool phy_to_native() = 0; 222 virtual bool prevent_duplicate_uuid_intent() = 0; 223 virtual bool prevent_hogp_reconnect_when_connected() = 0; 224 virtual bool prevent_service_connections_on_remove_bond() = 0; 225 virtual bool progress_acl_scheduler_upon_incoming_connection() = 0; 226 virtual bool queue_dis_requests() = 0; 227 virtual bool read_le_appearance() = 0; 228 virtual bool refactor_saving_messages_and_metadata() = 0; 229 virtual bool remove_address_map_on_unbond() = 0; 230 virtual bool remove_device_in_main_thread() = 0; 231 virtual bool remove_dup_pairing_response_in_oob_pairing() = 0; 232 virtual bool remove_input_device_on_vup() = 0; 233 virtual bool remove_one_time_get_name_and_address() = 0; 234 virtual bool remove_pending_hid_connection() = 0; 235 virtual bool reset_ag_state_on_collision() = 0; 236 virtual bool respect_ble_scan_setting() = 0; 237 virtual bool retry_esco_with_zero_retransmission_effort() = 0; 238 virtual bool rfcomm_always_disc_initiator_in_disc_wait_ua() = 0; 239 virtual bool rfcomm_always_use_mitm() = 0; 240 virtual bool rfcomm_cancel_ongoing_sdp_on_close() = 0; 241 virtual bool rfcomm_prevent_unnecessary_collisions() = 0; 242 virtual bool rnr_directly_call_gap_over_le() = 0; 243 virtual bool rnr_store_device_type() = 0; 244 virtual bool rnr_validate_page_scan_repetition_mode() = 0; 245 virtual bool rpa_offload_to_bt_controller() = 0; 246 virtual bool run_ble_audio_ticks_in_worker_thread() = 0; 247 virtual bool run_clock_recovery_in_worker_thread() = 0; 248 virtual bool save_initial_hid_connection_policy() = 0; 249 virtual bool save_peer_csrk_after_ltk_gen() = 0; 250 virtual bool scan_manager_refactor() = 0; 251 virtual bool scan_record_manufacturer_data_merge() = 0; 252 virtual bool sec_disconnect_on_le_key_missing() = 0; 253 virtual bool sec_dont_clear_keys_on_encryption_err() = 0; 254 virtual bool serialize_hogp_and_dis() = 0; 255 virtual bool set_addressed_player() = 0; 256 virtual bool set_max_data_length_for_lecoc() = 0; 257 virtual bool settings_can_control_hap_preset() = 0; 258 virtual bool signal_connecting_on_focus_gain() = 0; 259 virtual bool skip_unknown_robust_caching() = 0; 260 virtual bool smp_state_machine_stuck_after_disconnection_fix() = 0; 261 virtual bool snoop_logger_tracing() = 0; 262 virtual bool socket_settings_api() = 0; 263 virtual bool stack_sdp_detect_nil_property_type() = 0; 264 virtual bool stop_on_offload_fail() = 0; 265 virtual bool support_bluetooth_quality_report_v6() = 0; 266 virtual bool support_exclusive_manager() = 0; 267 virtual bool support_metadata_device_types_apis() = 0; 268 virtual bool support_remote_device_metadata() = 0; 269 virtual bool suppress_hid_rejection_broadcast() = 0; 270 virtual bool system_server_messenger() = 0; 271 virtual bool temporary_pairing_device_properties() = 0; 272 virtual bool transmit_smp_packets_before_release() = 0; 273 virtual bool trigger_sec_proc_on_inc_access_req() = 0; 274 virtual bool unbonded_profile_forbid_fix() = 0; 275 virtual bool uncache_player_when_browsed_player_changes() = 0; 276 virtual bool unix_file_socket_creation_failure() = 0; 277 virtual bool update_active_device_in_band_ringtone() = 0; 278 virtual bool update_sco_state_correctly_on_rfcomm_disconnect_during_codec_nego() = 0; 279 virtual bool use_entire_message_handle() = 0; 280 virtual bool use_le_shim_connection_map_guard() = 0; 281 virtual bool use_local_oob_extended_command() = 0; 282 virtual bool vcp_mute_unmute() = 0; 283 virtual bool wait_for_disconnect_before_unbond() = 0; 284 virtual bool wait_for_lea_disc_on_le_acl_stat() = 0; 285 }; 286 287 extern std::unique_ptr<flag_provider_interface> provider_; 288 289 a2dp_aidl_encoding_interval()290inline bool a2dp_aidl_encoding_interval() { 291 return true; 292 } a2dp_broadcast_connection_state_when_turned_off()293inline bool a2dp_broadcast_connection_state_when_turned_off() { 294 return true; 295 } a2dp_check_lea_iso_channel()296inline bool a2dp_check_lea_iso_channel() { 297 return true; 298 } a2dp_clear_pending_start_on_session_restart()299inline bool a2dp_clear_pending_start_on_session_restart() { 300 return true; 301 } a2dp_fix_codec_type_in_java()302inline bool a2dp_fix_codec_type_in_java() { 303 return true; 304 } a2dp_ignore_started_when_responder()305inline bool a2dp_ignore_started_when_responder() { 306 return false; 307 } a2dp_lhdc_api()308inline bool a2dp_lhdc_api() { 309 return false; 310 } a2dp_service_looper()311inline bool a2dp_service_looper() { 312 return true; 313 } a2dp_source_threading_fix()314inline bool a2dp_source_threading_fix() { 315 return true; 316 } a2dp_variable_aac_capability()317inline bool a2dp_variable_aac_capability() { 318 return false; 319 } abs_volume_sdp_conflict()320inline bool abs_volume_sdp_conflict() { 321 return false; 322 } adapter_properties_looper()323inline bool adapter_properties_looper() { 324 return true; 325 } adapter_suspend_mgmt()326inline bool adapter_suspend_mgmt() { 327 return false; 328 } adm_always_fallback_to_available_device()329inline bool adm_always_fallback_to_available_device() { 330 return true; 331 } adm_fallback_when_wired_audio_disconnected()332inline bool adm_fallback_when_wired_audio_disconnected() { 333 return true; 334 } adm_fix_disconnect_of_set_member()335inline bool adm_fix_disconnect_of_set_member() { 336 return true; 337 } adm_verify_active_fallback_device()338inline bool adm_verify_active_fallback_device() { 339 return true; 340 } aics_api()341inline bool aics_api() { 342 return false; 343 } allow_free_last_scn()344inline bool allow_free_last_scn() { 345 return false; 346 } allow_switching_hid_and_hogp()347inline bool allow_switching_hid_and_hogp() { 348 return true; 349 } android_headtracker_service()350inline bool android_headtracker_service() { 351 return true; 352 } android_os_identifier()353inline bool android_os_identifier() { 354 return true; 355 } api_get_connection_state_using_identity_address()356inline bool api_get_connection_state_using_identity_address() { 357 return true; 358 } asha_encrypted_l2c_coc()359inline bool asha_encrypted_l2c_coc() { 360 return true; 361 } associate_browse_l2cap_request_with_active_control_channel()362inline bool associate_browse_l2cap_request_with_active_control_channel() { 363 return true; 364 } asymmetric_phy_for_unidirectional_cis()365inline bool asymmetric_phy_for_unidirectional_cis() { 366 return true; 367 } audio_port_binder_inherit_rt()368inline bool audio_port_binder_inherit_rt() { 369 return true; 370 } auto_connect_on_multiple_hfp_when_no_a2dp_device()371inline bool auto_connect_on_multiple_hfp_when_no_a2dp_device() { 372 return false; 373 } av_stream_reconfigure_fix()374inline bool av_stream_reconfigure_fix() { 375 return true; 376 } avdt_discover_seps_as_acceptor()377inline bool avdt_discover_seps_as_acceptor() { 378 return true; 379 } avdt_handle_suspend_cfm_bad_state()380inline bool avdt_handle_suspend_cfm_bad_state() { 381 return false; 382 } avdt_prioritize_mandatory_codec()383inline bool avdt_prioritize_mandatory_codec() { 384 return false; 385 } avdtp_error_codes()386inline bool avdtp_error_codes() { 387 return true; 388 } avoid_l2c_processing_while_stack_shutdown()389inline bool avoid_l2c_processing_while_stack_shutdown() { 390 return false; 391 } avrcp_16_default()392inline bool avrcp_16_default() { 393 return false; 394 } avrcp_connect_a2dp_with_delay()395inline bool avrcp_connect_a2dp_with_delay() { 396 return true; 397 } avrcp_sdp_records()398inline bool avrcp_sdp_records() { 399 return true; 400 } ble_check_data_length_on_legacy_advertising()401inline bool ble_check_data_length_on_legacy_advertising() { 402 return true; 403 } ble_context_map_remove_fix()404inline bool ble_context_map_remove_fix() { 405 return true; 406 } ble_gatt_server_use_address_type_in_connection()407inline bool ble_gatt_server_use_address_type_in_connection() { 408 return true; 409 } ble_scan_adv_metrics_redesign()410inline bool ble_scan_adv_metrics_redesign() { 411 return true; 412 } bluetooth_power_telemetry()413inline bool bluetooth_power_telemetry() { 414 return false; 415 } bond_transport_after_bond_cancel_fix()416inline bool bond_transport_after_bond_cancel_fix() { 417 return true; 418 } break_uhid_polling_early()419inline bool break_uhid_polling_early() { 420 return true; 421 } browsing_refactor()422inline bool browsing_refactor() { 423 return false; 424 } bt_offload_socket_api()425inline bool bt_offload_socket_api() { 426 return false; 427 } bt_socket_api_l2cap_cid()428inline bool bt_socket_api_l2cap_cid() { 429 return false; 430 } bt_system_context_report()431inline bool bt_system_context_report() { 432 return true; 433 } bta_ag_cmd_brsf_allow_uint32()434inline bool bta_ag_cmd_brsf_allow_uint32() { 435 return false; 436 } bta_av_setconfig_rej_type_confusion()437inline bool bta_av_setconfig_rej_type_confusion() { 438 return true; 439 } bta_av_use_peer_codec()440inline bool bta_av_use_peer_codec() { 441 return true; 442 } bta_dm_defer_device_discovery_state_change_until_rnr_complete()443inline bool bta_dm_defer_device_discovery_state_change_until_rnr_complete() { 444 return false; 445 } bta_dm_discover_both()446inline bool bta_dm_discover_both() { 447 return true; 448 } btsec_avdt_msg_ind_type_confusion()449inline bool btsec_avdt_msg_ind_type_confusion() { 450 return true; 451 } btsec_check_valid_discovery_database()452inline bool btsec_check_valid_discovery_database() { 453 return true; 454 } btsec_cycle_irks()455inline bool btsec_cycle_irks() { 456 return false; 457 } btsec_le_oob_pairing()458inline bool btsec_le_oob_pairing() { 459 return true; 460 } cancel_open_discovery_client()461inline bool cancel_open_discovery_client() { 462 return true; 463 } cancel_pairing_only_on_disconnected_transport()464inline bool cancel_pairing_only_on_disconnected_transport() { 465 return true; 466 } channel_sounding()467inline bool channel_sounding() { 468 return true; 469 } channel_sounding_25q2_apis()470inline bool channel_sounding_25q2_apis() { 471 return false; 472 } channel_sounding_in_stack()473inline bool channel_sounding_in_stack() { 474 return false; 475 } choose_wrong_hfp_codec_in_specific_config()476inline bool choose_wrong_hfp_codec_in_specific_config() { 477 return true; 478 } clear_auth_collision_state_on_pairing_complete()479inline bool clear_auth_collision_state_on_pairing_complete() { 480 return true; 481 } clear_pairing_state_when_no_devrec()482inline bool clear_pairing_state_when_no_devrec() { 483 return false; 484 } close_hid_if_uhid_ready_too_slow()485inline bool close_hid_if_uhid_ready_too_slow() { 486 return false; 487 } close_hid_only_if_connected()488inline bool close_hid_only_if_connected() { 489 return true; 490 } connect_hap_on_other_profile_connect()491inline bool connect_hap_on_other_profile_connect() { 492 return false; 493 } default_gatt_transport()494inline bool default_gatt_transport() { 495 return true; 496 } device_iot_config_logging()497inline bool device_iot_config_logging() { 498 return true; 499 } directed_advertising_api()500inline bool directed_advertising_api() { 501 return false; 502 } disconnect_on_encryption_failure()503inline bool disconnect_on_encryption_failure() { 504 return true; 505 } donot_push_error_code_to_app_when_connected()506inline bool donot_push_error_code_to_app_when_connected() { 507 return true; 508 } donot_queue_dup_rnr()509inline bool donot_queue_dup_rnr() { 510 return false; 511 } donot_update_sec_flags_on_csrk_save()512inline bool donot_update_sec_flags_on_csrk_save() { 513 return true; 514 } donot_validate_bond_state_from_profiles()515inline bool donot_validate_bond_state_from_profiles() { 516 return true; 517 } dont_send_hci_disconnect_repeatedly()518inline bool dont_send_hci_disconnect_repeatedly() { 519 return false; 520 } dont_send_hid_set_idle()521inline bool dont_send_hid_set_idle() { 522 return false; 523 } drop_acl_fragment_on_disconnect()524inline bool drop_acl_fragment_on_disconnect() { 525 return true; 526 } enable_hap_by_default()527inline bool enable_hap_by_default() { 528 return false; 529 } encrypted_advertising_data()530inline bool encrypted_advertising_data() { 531 return false; 532 } encryption_change_broadcast()533inline bool encryption_change_broadcast() { 534 return false; 535 } encryption_change_v2()536inline bool encryption_change_v2() { 537 return true; 538 } enforce_resolve_system_service_behavior()539inline bool enforce_resolve_system_service_behavior() { 540 return true; 541 } fix_add_device_properties()542inline bool fix_add_device_properties() { 543 return true; 544 } fix_avdt_rconfig_not_setting_l2cap()545inline bool fix_avdt_rconfig_not_setting_l2cap() { 546 return false; 547 } fix_hfp_qual_1_9()548inline bool fix_hfp_qual_1_9() { 549 return false; 550 } fix_le_evt_cancelling_sdp_discovery()551inline bool fix_le_evt_cancelling_sdp_discovery() { 552 return true; 553 } fix_nonconnectable_scannable_advertisement()554inline bool fix_nonconnectable_scannable_advertisement() { 555 return true; 556 } fix_sco_command_status_handling()557inline bool fix_sco_command_status_handling() { 558 return true; 559 } floss_separate_host_privacy_and_llprivacy()560inline bool floss_separate_host_privacy_and_llprivacy() { 561 return false; 562 } forward_get_set_report_failure_to_uhid()563inline bool forward_get_set_report_failure_to_uhid() { 564 return true; 565 } gatt_callback_on_failure()566inline bool gatt_callback_on_failure() { 567 return false; 568 } gatt_clear_cache_on_factory_reset()569inline bool gatt_clear_cache_on_factory_reset() { 570 return false; 571 } gatt_client_dynamic_allocation()572inline bool gatt_client_dynamic_allocation() { 573 return true; 574 } gatt_disconnect_fix()575inline bool gatt_disconnect_fix() { 576 return true; 577 } gatt_fix_multiple_direct_connect()578inline bool gatt_fix_multiple_direct_connect() { 579 return true; 580 } gatt_queue_cleanup_connected()581inline bool gatt_queue_cleanup_connected() { 582 return false; 583 } gatt_rediscover_on_canceled()584inline bool gatt_rediscover_on_canceled() { 585 return true; 586 } gatt_server_requests_fix()587inline bool gatt_server_requests_fix() { 588 return true; 589 } get_all_element_attributes_empty()590inline bool get_all_element_attributes_empty() { 591 return false; 592 } get_name_and_address_as_callback()593inline bool get_name_and_address_as_callback() { 594 return true; 595 } get_profile_use_lock()596inline bool get_profile_use_lock() { 597 return true; 598 } get_state_from_system_server()599inline bool get_state_from_system_server() { 600 return true; 601 } guard_bonded_device_properties()602inline bool guard_bonded_device_properties() { 603 return true; 604 } guest_mode_bond()605inline bool guest_mode_bond() { 606 return true; 607 } handle_delivery_sending_failure_events()608inline bool handle_delivery_sending_failure_events() { 609 return false; 610 } hap_connect_only_requested_device()611inline bool hap_connect_only_requested_device() { 612 return true; 613 } hci_vendor_specific_extension()614inline bool hci_vendor_specific_extension() { 615 return false; 616 } headset_client_am_hf_volume_symmetric()617inline bool headset_client_am_hf_volume_symmetric() { 618 return true; 619 } headtracker_codec_capability()620inline bool headtracker_codec_capability() { 621 return true; 622 } headtracker_sdu_size()623inline bool headtracker_sdu_size() { 624 return true; 625 } hfp_allow_volume_change_without_sco()626inline bool hfp_allow_volume_change_without_sco() { 627 return false; 628 } hfp_client_disconnecting_state()629inline bool hfp_client_disconnecting_state() { 630 return false; 631 } hfp_software_datapath()632inline bool hfp_software_datapath() { 633 return false; 634 } hid_report_queuing()635inline bool hid_report_queuing() { 636 return true; 637 } hogp_reconnection()638inline bool hogp_reconnection() { 639 return false; 640 } identity_address_null_if_not_known()641inline bool identity_address_null_if_not_known() { 642 return true; 643 } identity_address_type_api()644inline bool identity_address_type_api() { 645 return false; 646 } identity_retention_on_restart()647inline bool identity_retention_on_restart() { 648 return false; 649 } ignore_auth_req_when_collision_timer_active()650inline bool ignore_auth_req_when_collision_timer_active() { 651 return false; 652 } ignore_notify_when_already_connected()653inline bool ignore_notify_when_already_connected() { 654 return false; 655 } ignore_unrelated_cancel_bond()656inline bool ignore_unrelated_cancel_bond() { 657 return false; 658 } improve_create_connection_for_already_connecting_device()659inline bool improve_create_connection_for_already_connecting_device() { 660 return true; 661 } initial_conn_params_p1()662inline bool initial_conn_params_p1() { 663 return false; 664 } initiate_multiple_hid_connections()665inline bool initiate_multiple_hid_connections() { 666 return true; 667 } is_sco_managed_by_audio()668inline bool is_sco_managed_by_audio() { 669 return false; 670 } key_missing_as_ordered_broadcast()671inline bool key_missing_as_ordered_broadcast() { 672 return false; 673 } key_missing_classic_device()674inline bool key_missing_classic_device() { 675 return true; 676 } key_missing_public()677inline bool key_missing_public() { 678 return false; 679 } kill_instead_of_exit()680inline bool kill_instead_of_exit() { 681 return false; 682 } l2cap_fcs_option_fix()683inline bool l2cap_fcs_option_fix() { 684 return false; 685 } l2cap_le_do_not_adjust_min_interval()686inline bool l2cap_le_do_not_adjust_min_interval() { 687 return true; 688 } l2cap_p_ccb_check_rewrite()689inline bool l2cap_p_ccb_check_rewrite() { 690 return true; 691 } l2cap_tx_complete_cb_info()692inline bool l2cap_tx_complete_cb_info() { 693 return false; 694 } l2cap_update_existing_conn_interval_with_base_interval()695inline bool l2cap_update_existing_conn_interval_with_base_interval() { 696 return true; 697 } le_ase_read_multiple_variable()698inline bool le_ase_read_multiple_variable() { 699 return true; 700 } le_audio_base_ecosystem_interval()701inline bool le_audio_base_ecosystem_interval() { 702 return true; 703 } le_audio_support_unidirectional_voice_assistant()704inline bool le_audio_support_unidirectional_voice_assistant() { 705 return true; 706 } le_enc_on_reconnection()707inline bool le_enc_on_reconnection() { 708 return false; 709 } le_impl_ack_pause_disarmed()710inline bool le_impl_ack_pause_disarmed() { 711 return false; 712 } le_inquiry_duration()713inline bool le_inquiry_duration() { 714 return true; 715 } le_scan_msft_support()716inline bool le_scan_msft_support() { 717 return false; 718 } le_scan_remove_non_oneway_binder_calls()719inline bool le_scan_remove_non_oneway_binder_calls() { 720 return false; 721 } le_scan_use_address_type()722inline bool le_scan_use_address_type() { 723 return true; 724 } le_scan_use_uid_for_importance()725inline bool le_scan_use_uid_for_importance() { 726 return true; 727 } leaudio_add_aics_support()728inline bool leaudio_add_aics_support() { 729 return false; 730 } leaudio_add_opus_codec_type()731inline bool leaudio_add_opus_codec_type() { 732 return false; 733 } leaudio_allow_leaudio_only_devices()734inline bool leaudio_allow_leaudio_only_devices() { 735 return false; 736 } leaudio_allowed_context_mask()737inline bool leaudio_allowed_context_mask() { 738 return true; 739 } leaudio_big_depends_on_audio_state()740inline bool leaudio_big_depends_on_audio_state() { 741 return true; 742 } leaudio_broadcast_api_get_local_metadata()743inline bool leaudio_broadcast_api_get_local_metadata() { 744 return false; 745 } leaudio_broadcast_api_manage_primary_group()746inline bool leaudio_broadcast_api_manage_primary_group() { 747 return false; 748 } leaudio_broadcast_assistant_peripheral_entrustment()749inline bool leaudio_broadcast_assistant_peripheral_entrustment() { 750 return true; 751 } leaudio_broadcast_destroy_after_timeout()752inline bool leaudio_broadcast_destroy_after_timeout() { 753 return true; 754 } leaudio_broadcast_extract_periodic_scanner_from_state_machine()755inline bool leaudio_broadcast_extract_periodic_scanner_from_state_machine() { 756 return true; 757 } leaudio_broadcast_monitor_source_sync_status()758inline bool leaudio_broadcast_monitor_source_sync_status() { 759 return true; 760 } leaudio_broadcast_primary_group_selection()761inline bool leaudio_broadcast_primary_group_selection() { 762 return false; 763 } leaudio_broadcast_resync_helper()764inline bool leaudio_broadcast_resync_helper() { 765 return true; 766 } leaudio_broadcast_update_metadata_callback()767inline bool leaudio_broadcast_update_metadata_callback() { 768 return true; 769 } leaudio_broadcast_volume_control_for_connected_devices()770inline bool leaudio_broadcast_volume_control_for_connected_devices() { 771 return true; 772 } leaudio_broadcast_volume_control_primary_group_only()773inline bool leaudio_broadcast_volume_control_primary_group_only() { 774 return true; 775 } leaudio_broadcast_volume_control_with_set_volume()776inline bool leaudio_broadcast_volume_control_with_set_volume() { 777 return true; 778 } leaudio_call_start_scan_directly()779inline bool leaudio_call_start_scan_directly() { 780 return true; 781 } leaudio_codec_config_callback_order_fix()782inline bool leaudio_codec_config_callback_order_fix() { 783 return true; 784 } leaudio_config_profile_enabling()785inline bool leaudio_config_profile_enabling() { 786 return false; 787 } leaudio_dev_options_respect_profile_sysprops()788inline bool leaudio_dev_options_respect_profile_sysprops() { 789 return false; 790 } leaudio_dynamic_spatial_audio()791inline bool leaudio_dynamic_spatial_audio() { 792 return true; 793 } leaudio_getting_active_state_support()794inline bool leaudio_getting_active_state_support() { 795 return true; 796 } leaudio_gmap_client()797inline bool leaudio_gmap_client() { 798 return false; 799 } leaudio_hal_client_asrc()800inline bool leaudio_hal_client_asrc() { 801 return true; 802 } leaudio_improve_switch_during_phone_call()803inline bool leaudio_improve_switch_during_phone_call() { 804 return true; 805 } leaudio_monitor_unicast_source_when_managed_by_broadcast_delegator()806inline bool leaudio_monitor_unicast_source_when_managed_by_broadcast_delegator() { 807 return false; 808 } leaudio_mono_location_errata()809inline bool leaudio_mono_location_errata() { 810 return true; 811 } leaudio_mono_location_errata_api()812inline bool leaudio_mono_location_errata_api() { 813 return false; 814 } leaudio_multicodec_aidl_support()815inline bool leaudio_multicodec_aidl_support() { 816 return true; 817 } leaudio_multiple_vocs_instances_api()818inline bool leaudio_multiple_vocs_instances_api() { 819 return true; 820 } leaudio_no_context_validate_streaming_request()821inline bool leaudio_no_context_validate_streaming_request() { 822 return true; 823 } leaudio_set_codec_config_preference()824inline bool leaudio_set_codec_config_preference() { 825 return false; 826 } leaudio_sort_scans_to_sync_by_fails()827inline bool leaudio_sort_scans_to_sync_by_fails() { 828 return true; 829 } leaudio_speed_up_reconfiguration_between_call()830inline bool leaudio_speed_up_reconfiguration_between_call() { 831 return true; 832 } leaudio_start_request_state_mutex_check()833inline bool leaudio_start_request_state_mutex_check() { 834 return true; 835 } leaudio_stop_updated_to_not_available_context_stream()836inline bool leaudio_stop_updated_to_not_available_context_stream() { 837 return false; 838 } leaudio_synchronize_start()839inline bool leaudio_synchronize_start() { 840 return true; 841 } leaudio_unicast_no_available_contexts()842inline bool leaudio_unicast_no_available_contexts() { 843 return true; 844 } leaudio_use_audio_mode_listener()845inline bool leaudio_use_audio_mode_listener() { 846 return true; 847 } maintain_call_index_after_conference()848inline bool maintain_call_index_after_conference() { 849 return false; 850 } map_limit_notification()851inline bool map_limit_notification() { 852 return true; 853 } mcp_allow_play_without_active_player()854inline bool mcp_allow_play_without_active_player() { 855 return true; 856 } metadata_api_inactive_audio_device_upon_connection()857inline bool metadata_api_inactive_audio_device_upon_connection() { 858 return true; 859 } metadata_api_microphone_for_call_enabled()860inline bool metadata_api_microphone_for_call_enabled() { 861 return false; 862 } msft_addr_tracking_quirk()863inline bool msft_addr_tracking_quirk() { 864 return false; 865 } name_discovery_for_le_pairing()866inline bool name_discovery_for_le_pairing() { 867 return true; 868 } non_wake_alarm_for_rpa_rotation()869inline bool non_wake_alarm_for_rpa_rotation() { 870 return true; 871 } nrpa_non_connectable_adv()872inline bool nrpa_non_connectable_adv() { 873 return false; 874 } opp_check_content_uri_permissions()875inline bool opp_check_content_uri_permissions() { 876 return false; 877 } opp_fix_multiple_notifications_issues()878inline bool opp_fix_multiple_notifications_issues() { 879 return true; 880 } opp_ignore_content_observer_after_service_stop()881inline bool opp_ignore_content_observer_after_service_stop() { 882 return true; 883 } opp_set_insets_for_edge_to_edge()884inline bool opp_set_insets_for_edge_to_edge() { 885 return false; 886 } opp_start_activity_directly_from_notification()887inline bool opp_start_activity_directly_from_notification() { 888 return true; 889 } override_context_to_specify_device_id()890inline bool override_context_to_specify_device_id() { 891 return true; 892 } pairing_name_discovery_addresss_mismatch()893inline bool pairing_name_discovery_addresss_mismatch() { 894 return true; 895 } pairing_on_unknown_transport()896inline bool pairing_on_unknown_transport() { 897 return true; 898 } pan_use_identity_address()899inline bool pan_use_identity_address() { 900 return true; 901 } pbap_client_contacts_caching()902inline bool pbap_client_contacts_caching() { 903 return false; 904 } pbap_client_storage_refactor()905inline bool pbap_client_storage_refactor() { 906 return false; 907 } pending_hid_connection_cancellation()908inline bool pending_hid_connection_cancellation() { 909 return false; 910 } phy_to_native()911inline bool phy_to_native() { 912 return false; 913 } prevent_duplicate_uuid_intent()914inline bool prevent_duplicate_uuid_intent() { 915 return true; 916 } prevent_hogp_reconnect_when_connected()917inline bool prevent_hogp_reconnect_when_connected() { 918 return true; 919 } prevent_service_connections_on_remove_bond()920inline bool prevent_service_connections_on_remove_bond() { 921 return true; 922 } progress_acl_scheduler_upon_incoming_connection()923inline bool progress_acl_scheduler_upon_incoming_connection() { 924 return true; 925 } queue_dis_requests()926inline bool queue_dis_requests() { 927 return false; 928 } read_le_appearance()929inline bool read_le_appearance() { 930 return true; 931 } refactor_saving_messages_and_metadata()932inline bool refactor_saving_messages_and_metadata() { 933 return false; 934 } remove_address_map_on_unbond()935inline bool remove_address_map_on_unbond() { 936 return true; 937 } remove_device_in_main_thread()938inline bool remove_device_in_main_thread() { 939 return false; 940 } remove_dup_pairing_response_in_oob_pairing()941inline bool remove_dup_pairing_response_in_oob_pairing() { 942 return true; 943 } remove_input_device_on_vup()944inline bool remove_input_device_on_vup() { 945 return true; 946 } remove_one_time_get_name_and_address()947inline bool remove_one_time_get_name_and_address() { 948 return true; 949 } remove_pending_hid_connection()950inline bool remove_pending_hid_connection() { 951 return true; 952 } reset_ag_state_on_collision()953inline bool reset_ag_state_on_collision() { 954 return true; 955 } respect_ble_scan_setting()956inline bool respect_ble_scan_setting() { 957 return true; 958 } retry_esco_with_zero_retransmission_effort()959inline bool retry_esco_with_zero_retransmission_effort() { 960 return false; 961 } rfcomm_always_disc_initiator_in_disc_wait_ua()962inline bool rfcomm_always_disc_initiator_in_disc_wait_ua() { 963 return false; 964 } rfcomm_always_use_mitm()965inline bool rfcomm_always_use_mitm() { 966 return true; 967 } rfcomm_cancel_ongoing_sdp_on_close()968inline bool rfcomm_cancel_ongoing_sdp_on_close() { 969 return true; 970 } rfcomm_prevent_unnecessary_collisions()971inline bool rfcomm_prevent_unnecessary_collisions() { 972 return true; 973 } rnr_directly_call_gap_over_le()974inline bool rnr_directly_call_gap_over_le() { 975 return false; 976 } rnr_store_device_type()977inline bool rnr_store_device_type() { 978 return false; 979 } rnr_validate_page_scan_repetition_mode()980inline bool rnr_validate_page_scan_repetition_mode() { 981 return false; 982 } rpa_offload_to_bt_controller()983inline bool rpa_offload_to_bt_controller() { 984 return false; 985 } run_ble_audio_ticks_in_worker_thread()986inline bool run_ble_audio_ticks_in_worker_thread() { 987 return true; 988 } run_clock_recovery_in_worker_thread()989inline bool run_clock_recovery_in_worker_thread() { 990 return true; 991 } save_initial_hid_connection_policy()992inline bool save_initial_hid_connection_policy() { 993 return true; 994 } save_peer_csrk_after_ltk_gen()995inline bool save_peer_csrk_after_ltk_gen() { 996 return true; 997 } scan_manager_refactor()998inline bool scan_manager_refactor() { 999 return false; 1000 } scan_record_manufacturer_data_merge()1001inline bool scan_record_manufacturer_data_merge() { 1002 return true; 1003 } sec_disconnect_on_le_key_missing()1004inline bool sec_disconnect_on_le_key_missing() { 1005 return true; 1006 } sec_dont_clear_keys_on_encryption_err()1007inline bool sec_dont_clear_keys_on_encryption_err() { 1008 return true; 1009 } serialize_hogp_and_dis()1010inline bool serialize_hogp_and_dis() { 1011 return true; 1012 } set_addressed_player()1013inline bool set_addressed_player() { 1014 return false; 1015 } set_max_data_length_for_lecoc()1016inline bool set_max_data_length_for_lecoc() { 1017 return false; 1018 } settings_can_control_hap_preset()1019inline bool settings_can_control_hap_preset() { 1020 return true; 1021 } signal_connecting_on_focus_gain()1022inline bool signal_connecting_on_focus_gain() { 1023 return true; 1024 } skip_unknown_robust_caching()1025inline bool skip_unknown_robust_caching() { 1026 return false; 1027 } smp_state_machine_stuck_after_disconnection_fix()1028inline bool smp_state_machine_stuck_after_disconnection_fix() { 1029 return true; 1030 } snoop_logger_tracing()1031inline bool snoop_logger_tracing() { 1032 return true; 1033 } socket_settings_api()1034inline bool socket_settings_api() { 1035 return false; 1036 } stack_sdp_detect_nil_property_type()1037