1# Copyright (C) 2021 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15module: "android.sysprop.BluetoothProperties" 16owner: Platform 17 18prop { 19 api_name: "snoop_default_mode" 20 type: Enum 21 scope: Public 22 access: ReadWrite 23 enum_values: "empty|disabled|filtered|full" 24 prop_name: "persist.bluetooth.btsnoopdefaultmode" 25} 26 27prop { 28 api_name: "snoop_log_mode" 29 type: Enum 30 scope: Public 31 access: ReadWrite 32 enum_values: "empty|disabled|filtered|full" 33 prop_name: "persist.bluetooth.btsnooplogmode" 34} 35 36# When snoop_log_mode is set as filtered, this filter truncates ACL packets (non-fragment) 37# to fixed (MAX_HCI_ACL_LEN) number of bytes 38prop { 39 api_name: "snoop_log_filter_snoop_headers_enabled" 40 type: Boolean 41 scope: Public 42 access: ReadWrite 43 prop_name: "persist.bluetooth.snooplogfilter.headers.enabled" 44} 45 46# When snoop_log_mode is set as filtered, this filter discards A2DP media packets (non-split mode) 47prop { 48 api_name: "snoop_log_filter_profile_a2dp_enabled" 49 type: Boolean 50 scope: Public 51 access: ReadWrite 52 prop_name: "persist.bluetooth.snooplogfilter.profiles.a2dp.enabled" 53} 54 55# When snoop_log_mode is set as filtered, this filters MAP packets based on the filter mode: 56# fullfilter - discard whole packet 57# header - truncate to fixed length 58# magic - fill with a magic string, such as: "PROHIBITED" 59prop { 60 api_name: "snoop_log_filter_profile_map" 61 type: Enum 62 scope: Public 63 access: ReadWrite 64 enum_values: "empty|disabled|fullfilter|header|magic" 65 prop_name: "persist.bluetooth.snooplogfilter.profiles.map" 66} 67 68# When snoop_log_mode is set as filtered, this filters PBAP and HFP packets (CPBR, CLCC) 69# based on the filter mode: 70# fullfilter - discard whole packet 71# header - truncate to fixed length 72# magic - fill with a magic string, such as: "PROHIBITED" 73prop { 74 api_name: "snoop_log_filter_profile_pbap" 75 type: Enum 76 scope: Public 77 access: ReadWrite 78 enum_values: "empty|disabled|fullfilter|header|magic" 79 prop_name: "persist.bluetooth.snooplogfilter.profiles.pbap" 80} 81 82# When snoop_log_mode is set as filtered, this filter truncates RFCOMM UIH packet 83# to fixed (L2CAP_HEADER_SIZE) number of bytes 84prop { 85 api_name: "snoop_log_filter_profile_rfcomm_enabled" 86 type: Boolean 87 scope: Public 88 access: ReadWrite 89 prop_name: "persist.bluetooth.snooplogfilter.profiles.rfcomm.enabled" 90} 91 92prop { 93 api_name: "factory_reset" 94 type: Boolean 95 scope: Public 96 access: ReadWrite 97 prop_name: "persist.bluetooth.factoryreset" 98} 99 100prop { 101 api_name: "le_audio_allow_list" 102 type: StringList 103 scope: Public 104 access: ReadWrite 105 prop_name: "persist.bluetooth.leaudio.allow_list" 106} 107 108# LE audio modes 109# - "disabled" - All LE audio feature off. 110# - "unicast" - Unicast enabled only. 111# - "broadcast" - Unicast + broadcast enabled. 112prop { 113 api_name: "le_audio_dynamic_switcher_mode" 114 type: String 115 scope: Internal 116 access: ReadWrite 117 prop_name: "persist.bluetooth.leaudio_dynamic_switcher.mode" 118} 119 120######## Bluetooth configurations 121 122# Whether GAP BLE Privacy (RPA) is enabled on this device. 123# Set by vendors overlay, read at Bluetooth initialization 124prop { 125 api_name: "isGapLePrivacyEnabled" 126 type: Boolean 127 scope: Public 128 access: Readonly 129 prop_name: "bluetooth.core.gap.le.privacy.enabled" 130} 131 132# Minimum limit for GAP LE connection update time. 133# Set by vendors overlay, read at Bluetooth initialization 134prop { 135 api_name: "getGapLeConnMinLimit" 136 type: Integer 137 scope: Public 138 access: Readonly 139 prop_name: "bluetooth.core.gap.le.conn.min.limit" 140} 141 142# Whether LE Connection with initiating with only LE 1M PHY. 143# Set by vendors overlay, read at Bluetooth initialization 144prop { 145 api_name: "isGapLeConnOnlyInit1mPhyEnabled" 146 type: Boolean 147 scope: Internal 148 access: Readonly 149 prop_name: "bluetooth.core.gap.le.conn.only_init_1m_phy.enabled" 150} 151 152# Whether Inband ringtone for LeAudio is supported. 153# Set by vendors overlay, read at Bluetooth initialization 154prop { 155 api_name: "isLeAudioInbandRingtoneSupported" 156 type: Boolean 157 scope: Public 158 access: Readonly 159 prop_name: "bluetooth.core.le_audio.inband_ringtone.supported" 160} 161 162prop { 163 api_name: "isLeAudioCodecExtensionAidlEnabled" 164 type: Boolean 165 scope: Public 166 access: Readonly 167 prop_name: "bluetooth.core.le_audio.codec_extension_aidl.enabled" 168} 169 170# The default name of the device. 171# Set by vendors overlay, read at Bluetooth initialization 172prop { 173 api_name: "getDefaultDeviceName" 174 type: String 175 scope: Public 176 access: Readonly 177 prop_name: "bluetooth.device.default_name" 178} 179 180# The default class of device of the device, represented as a list of exactly 3 unsigned integers. 181# Set by vendors overlay, read at Bluetooth initialization 182prop { 183 api_name: "getClassOfDevice" 184 type: UIntList 185 scope: Public 186 access: Readonly 187 prop_name: "bluetooth.device.class_of_device" 188} 189 190# The default audio profile for dual mode audio devices for output only audio. The value should be 191# the integer value of BluetoothProfile#A2DP (2) or BluetoothProfile#LE_AUDIO (22). If the value is 192# set to anything else, LE Audio will be the default. 193# Set by vendors overlay, read at Bluetooth initialization 194prop { 195 api_name: "getDefaultOutputOnlyAudioProfile" 196 type: Integer 197 scope: Public 198 access: Readonly 199 prop_name: "bluetooth.device.default_output_only_audio_profile" 200} 201 202# The default audio profile for dual mode audio devices for duplex (output + input) audio. The 203# value should be the integer value of BluetoothProfile#HEADSET (1) or 204# BluetoothProfile#LE_AUDIO (22). If the value is set to anything else, LE Audio will be the 205# default. 206# Set by vendors overlay, read at Bluetooth initialization 207prop { 208 api_name: "getDefaultDuplexAudioProfile" 209 type: Integer 210 scope: Public 211 access: Readonly 212 prop_name: "bluetooth.device.default_duplex_audio_profile" 213} 214 215# Bluetooth operating voltage in millivolts available for vendors overlay. 216# Used to calculate Bluetooth power consumption for a specific hardware. 217prop { 218 api_name: "getHardwareOperatingVoltageMv" 219 type: Integer 220 scope: Public 221 access: Readonly 222 prop_name: "bluetooth.hardware.power.operating_voltage_mv" 223} 224 225# Bluetooth idle current in milliamps available for vendors overlay. 226# Used to calculate Bluetooth power consumption for a specific hardware. 227prop { 228 api_name: "getHardwareIdleCurrentMa" 229 type: Integer 230 scope: Public 231 access: Readonly 232 prop_name: "bluetooth.hardware.power.idle_cur_ma" 233} 234 235# Bluetooth transmit current in milliamps available for vendors overlay. 236# Used to calculate Bluetooth power consumption for a specific hardware. 237prop { 238 api_name: "getHardwareTxCurrentMa" 239 type: Integer 240 scope: Public 241 access: Readonly 242 prop_name: "bluetooth.hardware.power.tx_cur_ma" 243} 244 245# Bluetooth receive current in milliamps available for vendors overlay. 246# Used to calculate Bluetooth power consumption for a specific hardware. 247prop { 248 api_name: "getHardwareRxCurrentMa" 249 type: Integer 250 scope: Public 251 access: Readonly 252 prop_name: "bluetooth.hardware.power.rx_cur_ma" 253} 254 255# Whether Bluetooth should keep its state after reboot. 256# Set by vendors overlay, read at Bluetooth initialization 257prop { 258 api_name: "isSupportPersistedStateEnabled" 259 type: Boolean 260 scope: Public 261 access: Readonly 262 prop_name: "bluetooth.framework.support_persisted_state" 263} 264 265# Whether Bluetooth should keep its state after reboot. 266# Set by vendors overlay, read at Bluetooth initialization 267prop { 268 api_name: "isAdapterAddressValidationEnabled" 269 type: Boolean 270 scope: Public 271 access: Readonly 272 prop_name: "bluetooth.framework.adapter_address_validation" 273} 274 275# Whether the Advanced Audio Distribution Profile (A2DP) Sink role is enabled on this device. 276# Set by vendors overlay, read at Bluetooth initialization 277prop { 278 api_name: "isProfileA2dpSinkEnabled" 279 type: Boolean 280 scope: Public 281 access: Readonly 282 prop_name: "bluetooth.profile.a2dp.sink.enabled" 283} 284 285# Whether the Advanced Audio Distribution Profile (A2DP) Source role is enabled on this device. 286# Set by vendors overlay, read at Bluetooth initialization 287prop { 288 api_name: "isProfileA2dpSourceEnabled" 289 type: Boolean 290 scope: Public 291 access: Readonly 292 prop_name: "bluetooth.profile.a2dp.source.enabled" 293} 294 295# Whether the Android defined Audio Support for Hearing Aids (ASHA) central role over is enabled on 296# this device. Set by vendors overlay, read at Bluetooth initialization. 297prop { 298 api_name: "isProfileAshaCentralEnabled" 299 type: Boolean 300 scope: Public 301 access: Readonly 302 prop_name: "bluetooth.profile.asha.central.enabled" 303} 304 305# Whether the Audio/Video Remote Control Profile (AVRCP) Controller role is enabled on this device. 306# Set by vendors overlay, read at Bluetooth initialization 307prop { 308 api_name: "isProfileAvrcpControllerEnabled" 309 type: Boolean 310 scope: Public 311 access: Readonly 312 prop_name: "bluetooth.profile.avrcp.controller.enabled" 313} 314 315# Whether the Audio/Video Remote Control Profile (AVRCP) Target role is enabled on this device. 316# Set by vendors overlay, read at Bluetooth initialization 317prop { 318 api_name: "isProfileAvrcpTargetEnabled" 319 type: Boolean 320 scope: Public 321 access: Readonly 322 prop_name: "bluetooth.profile.avrcp.target.enabled" 323} 324 325# Whether the Basic Audio Profile (BAP) broadcast assist role is enabled on this device. 326# Set by vendors overlay, read at Bluetooth initialization 327prop { 328 api_name: "isProfileBapBroadcastAssistEnabled" 329 type: Boolean 330 scope: Public 331 access: Readonly 332 prop_name: "bluetooth.profile.bap.broadcast.assist.enabled" 333} 334 335# Whether the Basic Audio Profile (BAP) broadcast source role is enabled on this device. 336# Set by vendors overlay, read at Bluetooth initialization 337prop { 338 api_name: "isProfileBapBroadcastSourceEnabled" 339 type: Boolean 340 scope: Public 341 access: Readonly 342 prop_name: "bluetooth.profile.bap.broadcast.source.enabled" 343} 344 345# Whether the Basic Audio Profile (BAP) unicast client role is enabled on this device. 346# Set by vendors overlay, read at Bluetooth initialization 347prop { 348 api_name: "isProfileBapUnicastClientEnabled" 349 type: Boolean 350 scope: Public 351 access: Readonly 352 prop_name: "bluetooth.profile.bap.unicast.client.enabled" 353} 354 355# Whether the Battery Service profile (BAS) client role is enabled on this device. 356# Set by vendors overlay, read at Bluetooth initialization 357prop { 358 api_name: "isProfileBasClientEnabled" 359 type: Boolean 360 scope: Public 361 access: Readonly 362 prop_name: "bluetooth.profile.bas.client.enabled" 363} 364 365# Whether the Broadcast Audio Scan Service profile (BASS) client role is enabled on this device. 366# Set by vendors overlay, read at Bluetooth initialization 367prop { 368 api_name: "isProfileBassClientEnabled" 369 type: Boolean 370 scope: Public 371 access: Readonly 372 prop_name: "bluetooth.profile.bass.client.enabled" 373} 374 375# Whether the Coordinated Set Indentification Profile (CSIP) set coordinator role is enabled on this 376# device. Set by vendors overlay, read at Bluetooth initialization 377prop { 378 api_name: "isProfileCsipSetCoordinatorEnabled" 379 type: Boolean 380 scope: Public 381 access: Readonly 382 prop_name: "bluetooth.profile.csip.set_coordinator.enabled" 383} 384 385# Whether the Generic Attribute Profile (GATT) is enabled on this device. 386# Set by vendors overlay, read at Bluetooth initialization 387prop { 388 api_name: "isProfileGattEnabled" 389 type: Boolean 390 scope: Public 391 access: Readonly 392 prop_name: "bluetooth.profile.gatt.enabled" 393} 394 395# Whether the Gaming Audio profile (GMAP) is enabled on this device. 396# Set by vendors overlay, read at Bluetooth initialization 397prop { 398 api_name: "isProfileGmapEnabled" 399 type: Boolean 400 scope: Public 401 access: Readonly 402 prop_name: "bluetooth.profile.gmap.enabled" 403} 404 405# Whether the Hearing Aid Profile (HAP) client role is enabled on this device. 406# Set by vendors overlay, read at Bluetooth initialization 407prop { 408 api_name: "isProfileHapClientEnabled" 409 type: Boolean 410 scope: Public 411 access: Readonly 412 prop_name: "bluetooth.profile.hap.client.enabled" 413} 414 415# Whether the Hands-Free Profile (HFP) Audio Gateway role is enabled on this device. 416# Set by vendors overlay, read at Bluetooth initialization 417prop { 418 api_name: "isProfileHfpAgEnabled" 419 type: Boolean 420 scope: Public 421 access: Readonly 422 prop_name: "bluetooth.profile.hfp.ag.enabled" 423} 424 425# Whether the Hands-Free Profile (HFP) Hands-free role is enabled on this device. 426# Set by vendors overlay, read at Bluetooth initialization 427prop { 428 api_name: "isProfileHfpHfEnabled" 429 type: Boolean 430 scope: Public 431 access: Readonly 432 prop_name: "bluetooth.profile.hfp.hf.enabled" 433} 434 435# Whether Bluetooth HFP software datapath is enabled. 436# Set by vendors overlay, read at Bluetooth initialization 437prop { 438 api_name: "isHfpSoftwareDatapathEnabled" 439 type: Boolean 440 scope: Public 441 access: Readonly 442 prop_name: "bluetooth.hfp.software_datapath.enabled" 443} 444 445# Whether the Human Interface Device Profile (HID) device role is enabled on this device. 446# Set by vendors overlay, read at Bluetooth initialization 447prop { 448 api_name: "isProfileHidDeviceEnabled" 449 type: Boolean 450 scope: Public 451 access: Readonly 452 prop_name: "bluetooth.profile.hid.device.enabled" 453} 454 455# Whether the Human Interface Device Profile (HID) host role is enabled on this device. 456# Set by vendors overlay, read at Bluetooth initialization 457prop { 458 api_name: "isProfileHidHostEnabled" 459 type: Boolean 460 scope: Public 461 access: Readonly 462 prop_name: "bluetooth.profile.hid.host.enabled" 463} 464 465# Whether the Message Access Profile (MAP) Client role is enabled on this device. 466# Set by vendors overlay, read at Bluetooth initialization 467prop { 468 api_name: "isProfileMapClientEnabled" 469 type: Boolean 470 scope: Public 471 access: Readonly 472 prop_name: "bluetooth.profile.map.client.enabled" 473} 474 475# Whether the Message Access Profile (MAP) Server role is enabled on this device. 476# Set by vendors overlay, read at Bluetooth initialization 477prop { 478 api_name: "isProfileMapServerEnabled" 479 type: Boolean 480 scope: Public 481 access: Readonly 482 prop_name: "bluetooth.profile.map.server.enabled" 483} 484 485# Whether the Media Control Profile (MCP) server role is enabled on this device. 486# Set by vendors overlay, read at Bluetooth initialization 487prop { 488 api_name: "isProfileMcpServerEnabled" 489 type: Boolean 490 scope: Public 491 access: Readonly 492 prop_name: "bluetooth.profile.mcp.server.enabled" 493} 494 495# Whether the Object Push Profile (OPP) is enabled on this device. The implementation of OPP 496# supports both client and server roles. Set by vendors overlay, read at Bluetooth initialization 497prop { 498 api_name: "isProfileOppEnabled" 499 type: Boolean 500 scope: Public 501 access: Readonly 502 prop_name: "bluetooth.profile.opp.enabled" 503} 504 505# Whether the Personal Area Networking Profile (PAN) NAP role is enabled on this device. 506# Set by vendors overlay, read at Bluetooth initialization 507prop { 508 api_name: "isProfilePanNapEnabled" 509 type: Boolean 510 scope: Public 511 access: Readonly 512 prop_name: "bluetooth.profile.pan.nap.enabled" 513} 514 515# Whether the Personal Area Networking Profile (PAN) PANU role is enabled on this device. 516# Set by vendors overlay, read at Bluetooth initialization 517prop { 518 api_name: "isProfilePanPanuEnabled" 519 type: Boolean 520 scope: Public 521 access: Readonly 522 prop_name: "bluetooth.profile.pan.panu.enabled" 523} 524 525# Whether the Phonebook Access Profile (PBAP) client role is enabled on this device. 526# Set by vendors overlay, read at Bluetooth initialization 527prop { 528 api_name: "isProfilePbapClientEnabled" 529 type: Boolean 530 scope: Public 531 access: Readonly 532 prop_name: "bluetooth.profile.pbap.client.enabled" 533} 534 535# Whether the Phonebook Access Profile (PBAP) server role is enabled on this device. 536# Set by vendors overlay, read at Bluetooth initialization 537prop { 538 api_name: "isProfilePbapServerEnabled" 539 type: Boolean 540 scope: Public 541 access: Readonly 542 prop_name: "bluetooth.profile.pbap.server.enabled" 543} 544 545# Whether the Phonebook Access Profile (PBAP)'s SIM feature is enabled on this device. 546# Set by vendors overlay, read at Bluetooth initialization 547prop { 548 api_name: "isProfilePbapSimEnabled" 549 type: Boolean 550 scope: Public 551 access: Readonly 552 prop_name: "bluetooth.profile.pbap.sim.enabled" 553} 554 555# Whether the SIM Access Profile (SAP) server is enabled on this device. 556# Set by vendors overlay, read at Bluetooth initialization 557prop { 558 api_name: "isProfileSapServerEnabled" 559 type: Boolean 560 scope: Public 561 access: Readonly 562 prop_name: "bluetooth.profile.sap.server.enabled" 563} 564 565# Whether the Call Control Profile (CCP) server role is enabled on this device. 566# Set by vendors overlay, read at Bluetooth initialization 567prop { 568 api_name: "isProfileCcpServerEnabled" 569 type: Boolean 570 scope: Public 571 access: Readonly 572 prop_name: "bluetooth.profile.ccp.server.enabled" 573} 574 575# Whether the Volume Control Profile (VCP) controller role is enabled on this device. 576# Set by vendors overlay, read at Bluetooth initialization 577prop { 578 api_name: "isProfileVcpControllerEnabled" 579 type: Boolean 580 scope: Public 581 access: Readonly 582 prop_name: "bluetooth.profile.vcp.controller.enabled" 583} 584 585# ACL Link supervision timeout 586prop { 587 api_name: "getLinkSupervisionTimeout" 588 type: UInt 589 scope: Internal 590 access: Readonly 591 prop_name: "bluetooth.core.acl.link_supervision_timeout" 592} 593 594# The following values are used to load default adapter parameters for BR/EDR. 595# The Bluetooth Core Specification should be consulted for the meaning and valid 596# domain of each of these values. 597 598# BR/EDR Page scan activity configuration 599prop { 600 api_name: "getClassicPageScanType" 601 type: UInt 602 scope: Internal 603 access: Readonly 604 prop_name: "bluetooth.core.classic.page_scan_type" 605} 606prop { 607 api_name: "getClassicPageScanInterval" 608 type: UInt 609 scope: Internal 610 access: Readonly 611 prop_name: "bluetooth.core.classic.page_scan_interval" 612} 613prop { 614 api_name: "getClassicPageScanWindow" 615 type: UInt 616 scope: Internal 617 access: Readonly 618 prop_name: "bluetooth.core.classic.page_scan_window" 619} 620 621# BR/EDR Inquiry scan activity configuration 622prop { 623 api_name: "getClassicInquiryScanType" 624 type: UInt 625 scope: Internal 626 access: Readonly 627 prop_name: "bluetooth.core.classic.inq_scan_type" 628} 629prop { 630 api_name: "getClassicInquiryScanInterval" 631 type: UInt 632 scope: Internal 633 access: Readonly 634 prop_name: "bluetooth.core.classic.inq_scan_interval" 635} 636prop { 637 api_name: "getClassicInquiryScanWindow" 638 type: UInt 639 scope: Internal 640 access: Readonly 641 prop_name: "bluetooth.core.classic.inq_scan_window" 642} 643 644# BR/EDR Page Timeout 645prop { 646 api_name: "getClassicPageTimeout" 647 type: UInt 648 scope: Internal 649 access: Readonly 650 prop_name: "bluetooth.core.classic.page_timeout" 651} 652 653# BR/EDR Sniff Parameters 654# Please refer to BTA_DM_PM_PARK_IDX in bta_api.h to determine how many 655# entries are currently being supported. 656# The SNIFF table entries must be in the order from highest latency (biggest 657# interval) to lowest latency. If there's a conflict among the connected 658# services, the setting with lowest latency wins. 659prop { 660 api_name: "getClassicSniffMaxIntervals" 661 type: UIntList 662 scope: Internal 663 access: Readonly 664 prop_name: "bluetooth.core.classic.sniff_max_intervals" 665} 666prop { 667 api_name: "getClassicSniffMinIntervals" 668 type: UIntList 669 scope: Internal 670 access: Readonly 671 prop_name: "bluetooth.core.classic.sniff_min_intervals" 672} 673prop { 674 api_name: "getClassicSniffAttempts" 675 type: UIntList 676 scope: Internal 677 access: Readonly 678 prop_name: "bluetooth.core.classic.sniff_attempts" 679} 680prop { 681 api_name: "getClassicSniffTimeouts" 682 type: UIntList 683 scope: Internal 684 access: Readonly 685 prop_name: "bluetooth.core.classic.sniff_timeouts" 686} 687 688# The following values are used to load default adapter parameters for LE. 689# The Bluetooth Core Specification should be consulted for the meaning and valid 690# domain of each of these values. 691 692# LE connection parameters. 693prop { 694 api_name: "getLeMinConnectionInterval" 695 type: UInt 696 scope: Internal 697 access: Readonly 698 prop_name: "bluetooth.core.le.min_connection_interval" 699} 700prop { 701 api_name: "getLeMaxConnectionInterval" 702 type: UInt 703 scope: Internal 704 access: Readonly 705 prop_name: "bluetooth.core.le.max_connection_interval" 706} 707prop { 708 api_name: "getLeConnectionLatency" 709 type: UInt 710 scope: Internal 711 access: Readonly 712 prop_name: "bluetooth.core.le.connection_latency" 713} 714prop { 715 api_name: "getLeConnectionSupervisionTimeout" 716 type: UInt 717 scope: Internal 718 access: Readonly 719 prop_name: "bluetooth.core.le.connection_supervision_timeout" 720} 721 722# LE connection intervals which replace the above (min/max)_connection_interval 723prop { 724 api_name: "getLeMinConnectionIntervalRelaxed" 725 type: UInt 726 scope: Internal 727 access: Readonly 728 prop_name: "bluetooth.core.le.min_connection_interval_relaxed" 729} 730prop { 731 api_name: "getLeMaxConnectionIntervalRelaxed" 732 type: UInt 733 scope: Internal 734 access: Readonly 735 prop_name: "bluetooth.core.le.max_connection_interval_relaxed" 736} 737prop { 738 api_name: "getLeMinConnectionIntervalAggressive" 739 type: UInt 740 scope: Internal 741 access: Readonly 742 prop_name: "bluetooth.core.le.min_connection_interval_aggressive" 743} 744prop { 745 api_name: "getLeMaxConnectionIntervalAggressive" 746 type: UInt 747 scope: Internal 748 access: Readonly 749 prop_name: "bluetooth.core.le.max_connection_interval_aggressive" 750} 751prop { 752 api_name: "getLeAggressiveConnectionThreshold" 753 type: UInt 754 scope: Internal 755 access: Readonly 756 prop_name: "bluetooth.core.le.aggressive_connection_threshold" 757} 758 759# Direct connection timeout in ms 760prop { 761 api_name: "getLeDirectConnectionTimeout" 762 type: UInt 763 scope: Internal 764 access: Readonly 765 prop_name: "bluetooth.core.le.direct_connection_timeout" 766} 767 768# LE connection scan interval/window 769prop { 770 api_name: "getLeConnectionScanIntervalFast" 771 type: UInt 772 scope: Internal 773 access: Readonly 774 prop_name: "bluetooth.core.le.connection_scan_interval_fast" 775} 776prop { 777 api_name: "getLeConnectionScanWindowFast" 778 type: UInt 779 scope: Internal 780 access: Readonly 781 prop_name: "bluetooth.core.le.connection_scan_window_fast" 782} 783prop { 784 api_name: "getLeConnectionScanWindow2mFast" 785 type: UInt 786 scope: Internal 787 access: Readonly 788 prop_name: "bluetooth.core.le.connection_scan_window_2m_fast" 789} 790prop { 791 api_name: "getLeConnectionScanWindowCodedFast" 792 type: UInt 793 scope: Internal 794 access: Readonly 795 prop_name: "bluetooth.core.le.connection_scan_window_coded_fast" 796} 797prop { 798 api_name: "getLeConnectionScanIntervalSlow" 799 type: UInt 800 scope: Internal 801 access: Readonly 802 prop_name: "bluetooth.core.le.connection_scan_interval_slow" 803} 804prop { 805 api_name: "getLeConnectionScanWindowSlow" 806 type: UInt 807 scope: Internal 808 access: Readonly 809 prop_name: "bluetooth.core.le.connection_scan_window_slow" 810} 811 812# LE scanning parameters used during BTM inquiry 813prop { 814 api_name: "getLeInquiryScanInterval" 815 type: UInt 816 scope: Internal 817 access: Readonly 818 prop_name: "bluetooth.core.le.inquiry_scan_interval" 819} 820prop { 821 api_name: "getLeInquiryScanWindow" 822 type: UInt 823 scope: Internal 824 access: Readonly 825 prop_name: "bluetooth.core.le.inquiry_scan_window" 826} 827 828# Used to disable LeGetVendorCapabilities. 829prop { 830 api_name: "getLeVendorCapabilitiesEnabled" 831 type: Boolean 832 scope: Internal 833 access: Readonly 834 prop_name: "bluetooth.core.le.vendor_capabilities.enabled" 835} 836 837# Maximum number of number of allowed concurrent LE Connections 838prop { 839 api_name: "getLeMaxNumberOfConcurrentConnections" 840 type: UInt 841 scope: Public 842 access: Readonly 843 prop_name: "bluetooth.core.le.max_number_of_concurrent_connections" 844} 845 846# list of supported HID transport protocols for IMU data over LE Audio by order of preferrence 847# Comma separated list of: 848# - "le-acl": LE ACL transport, the IMU data is reported via the sensor stack 849# - "iso-sw": ISO transport, the IMU data is reported via the sensor stack 850# - "iso-hw": ISO transport, the IMU data is tunneled to the Spatializer in the ADSP 851prop { 852 api_name: "dsa_transport_preference" 853 type: StringList 854 scope: Public 855 access: Readonly 856 prop_name: "bluetooth.core.le.dsa_transport_preference" 857} 858 859# Used to disable enhanced SCO connection 860prop { 861 api_name: "getDisableEnchancedConnection" 862 type: Boolean 863 scope: Internal 864 access: Readonly 865 prop_name: "bluetooth.sco.disable_enhanced_connection" 866} 867 868# Whether Bluetooth HFP SCO managed by Audio. 869# Set by vendors overlay, read at Bluetooth initialization 870prop { 871 api_name: "isScoManagedByAudioEnabled" 872 type: Boolean 873 scope: Public 874 access: Readonly 875 prop_name: "bluetooth.sco.managed_by_audio" 876} 877 878# Determine if sniff mode is handled in AP or MCU 879prop { 880 api_name: "enable_sniff_offload" 881 type: Boolean 882 scope: Public 883 access: Readonly 884 prop_name: "persist.bluetooth.sniff_offload.enabled" 885 integer_as_bool: true 886} 887 888# Determines if MSFT HCI ext should be used for LE Scanning 889prop { 890 api_name: "isMsftHciExtEnabled" 891 type: Boolean 892 scope: Internal 893 access: Readonly 894 prop_name: "bluetooth.core.le.use_msft_hci_ext" 895} 896 897# MSFT HCI ext vendor opcode 898prop { 899 api_name: "getMsftVendorOpcode" 900 type: UInt 901 scope: Internal 902 access: Readonly 903 prop_name: "bluetooth.hci.msft_vendor_opcode" 904} 905