xref: /aosp_15_r20/system/libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop (revision 84dc9db433a600c0ca231d638135de5b8181a4b9)
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######## Bluetooth configurations
109
110# Whether GAP BLE Privacy (RPA) is enabled on this device.
111# Set by vendors overlay, read at Bluetooth initialization
112prop {
113    api_name: "isGapLePrivacyEnabled"
114    type: Boolean
115    scope: Public
116    access: Readonly
117    prop_name: "bluetooth.core.gap.le.privacy.enabled"
118}
119
120# Minimum limit for GAP LE connection update time.
121# Set by vendors overlay, read at Bluetooth initialization
122prop {
123    api_name: "getGapLeConnMinLimit"
124    type: Integer
125    scope: Public
126    access: Readonly
127    prop_name: "bluetooth.core.gap.le.conn.min.limit"
128}
129
130# Whether LE Connection with initiating with only LE 1M PHY.
131# Set by vendors overlay, read at Bluetooth initialization
132prop {
133    api_name: "isGapLeConnOnlyInit1mPhyEnabled"
134    type: Boolean
135    scope: Internal
136    access: Readonly
137    prop_name: "bluetooth.core.gap.le.conn.only_init_1m_phy.enabled"
138}
139
140# Whether Inband ringtone for LeAudio is supported.
141# Set by vendors overlay, read at Bluetooth initialization
142prop {
143    api_name: "isLeAudioInbandRingtoneSupported"
144    type: Boolean
145    scope: Public
146    access: Readonly
147    prop_name: "bluetooth.core.le_audio.inband_ringtone.supported"
148}
149
150prop {
151    api_name: "isLeAudioCodecExtensionAidlEnabled"
152    type: Boolean
153    scope: Public
154    access: Readonly
155    prop_name: "bluetooth.core.le_audio.codec_extension_aidl.enabled"
156}
157
158# The default name of the device.
159# Set by vendors overlay, read at Bluetooth initialization
160prop {
161    api_name: "getDefaultDeviceName"
162    type: String
163    scope: Public
164    access: Readonly
165    prop_name: "bluetooth.device.default_name"
166}
167
168# The default class of device of the device, represented as a list of exactly 3 unsigned integers.
169# Set by vendors overlay, read at Bluetooth initialization
170prop {
171    api_name: "getClassOfDevice"
172    type: UIntList
173    scope: Public
174    access: Readonly
175    prop_name: "bluetooth.device.class_of_device"
176}
177
178# The default audio profile for dual mode audio devices for output only audio. The value should be
179# the integer value of BluetoothProfile#A2DP (2) or BluetoothProfile#LE_AUDIO (22). If the value is
180# set to anything else, LE Audio will be the default.
181# Set by vendors overlay, read at Bluetooth initialization
182prop {
183    api_name: "getDefaultOutputOnlyAudioProfile"
184    type: Integer
185    scope: Public
186    access: Readonly
187    prop_name: "bluetooth.device.default_output_only_audio_profile"
188}
189
190# The default audio profile for dual mode audio devices for duplex (output + input) audio. The
191# value should be the integer value of BluetoothProfile#HEADSET (1) or
192# BluetoothProfile#LE_AUDIO (22). If the value is set to anything else, LE Audio will be the
193# default.
194# Set by vendors overlay, read at Bluetooth initialization
195prop {
196    api_name: "getDefaultDuplexAudioProfile"
197    type: Integer
198    scope: Public
199    access: Readonly
200    prop_name: "bluetooth.device.default_duplex_audio_profile"
201}
202
203# Bluetooth operating voltage in millivolts available for vendors overlay.
204# Used to calculate Bluetooth power consumption for a specific hardware.
205prop {
206    api_name: "getHardwareOperatingVoltageMv"
207    type: Integer
208    scope: Public
209    access: Readonly
210    prop_name: "bluetooth.hardware.power.operating_voltage_mv"
211}
212
213# Bluetooth idle current in milliamps available for vendors overlay.
214# Used to calculate Bluetooth power consumption for a specific hardware.
215prop {
216    api_name: "getHardwareIdleCurrentMa"
217    type: Integer
218    scope: Public
219    access: Readonly
220    prop_name: "bluetooth.hardware.power.idle_cur_ma"
221}
222
223# Bluetooth transmit current in milliamps available for vendors overlay.
224# Used to calculate Bluetooth power consumption for a specific hardware.
225prop {
226    api_name: "getHardwareTxCurrentMa"
227    type: Integer
228    scope: Public
229    access: Readonly
230    prop_name: "bluetooth.hardware.power.tx_cur_ma"
231}
232
233# Bluetooth receive current in milliamps available for vendors overlay.
234# Used to calculate Bluetooth power consumption for a specific hardware.
235prop {
236    api_name: "getHardwareRxCurrentMa"
237    type: Integer
238    scope: Public
239    access: Readonly
240    prop_name: "bluetooth.hardware.power.rx_cur_ma"
241}
242
243# Whether Bluetooth should keep its state after reboot.
244# Set by vendors overlay, read at Bluetooth initialization
245prop {
246    api_name: "isSupportPersistedStateEnabled"
247    type: Boolean
248    scope: Public
249    access: Readonly
250    prop_name: "bluetooth.framework.support_persisted_state"
251}
252
253# Whether Bluetooth should keep its state after reboot.
254# Set by vendors overlay, read at Bluetooth initialization
255prop {
256    api_name: "isAdapterAddressValidationEnabled"
257    type: Boolean
258    scope: Public
259    access: Readonly
260    prop_name: "bluetooth.framework.adapter_address_validation"
261}
262
263# Whether the Advanced Audio Distribution Profile (A2DP) Sink role is enabled on this device.
264# Set by vendors overlay, read at Bluetooth initialization
265prop {
266    api_name: "isProfileA2dpSinkEnabled"
267    type: Boolean
268    scope: Public
269    access: Readonly
270    prop_name: "bluetooth.profile.a2dp.sink.enabled"
271}
272
273# Whether the Advanced Audio Distribution Profile (A2DP) Source role is enabled on this device.
274# Set by vendors overlay, read at Bluetooth initialization
275prop {
276    api_name: "isProfileA2dpSourceEnabled"
277    type: Boolean
278    scope: Public
279    access: Readonly
280    prop_name: "bluetooth.profile.a2dp.source.enabled"
281}
282
283# Whether the Android defined Audio Support for Hearing Aids (ASHA) central role over is enabled on
284# this device. Set by vendors overlay, read at Bluetooth initialization.
285prop {
286    api_name: "isProfileAshaCentralEnabled"
287    type: Boolean
288    scope: Public
289    access: Readonly
290    prop_name: "bluetooth.profile.asha.central.enabled"
291}
292
293# Whether the Audio/Video Remote Control Profile (AVRCP) Controller role is enabled on this device.
294# Set by vendors overlay, read at Bluetooth initialization
295prop {
296    api_name: "isProfileAvrcpControllerEnabled"
297    type: Boolean
298    scope: Public
299    access: Readonly
300    prop_name: "bluetooth.profile.avrcp.controller.enabled"
301}
302
303# Whether the Audio/Video Remote Control Profile (AVRCP) Target role is enabled on this device.
304# Set by vendors overlay, read at Bluetooth initialization
305prop {
306    api_name: "isProfileAvrcpTargetEnabled"
307    type: Boolean
308    scope: Public
309    access: Readonly
310    prop_name: "bluetooth.profile.avrcp.target.enabled"
311}
312
313# Whether the Basic Audio Profile (BAP) broadcast assist role is enabled on this device.
314# Set by vendors overlay, read at Bluetooth initialization
315prop {
316    api_name: "isProfileBapBroadcastAssistEnabled"
317    type: Boolean
318    scope: Public
319    access: Readonly
320    prop_name: "bluetooth.profile.bap.broadcast.assist.enabled"
321}
322
323# Whether the Basic Audio Profile (BAP) broadcast source role is enabled on this device.
324# Set by vendors overlay, read at Bluetooth initialization
325prop {
326    api_name: "isProfileBapBroadcastSourceEnabled"
327    type: Boolean
328    scope: Public
329    access: Readonly
330    prop_name: "bluetooth.profile.bap.broadcast.source.enabled"
331}
332
333# Whether the Basic Audio Profile (BAP) unicast client role is enabled on this device.
334# Set by vendors overlay, read at Bluetooth initialization
335prop {
336    api_name: "isProfileBapUnicastClientEnabled"
337    type: Boolean
338    scope: Public
339    access: Readonly
340    prop_name: "bluetooth.profile.bap.unicast.client.enabled"
341}
342
343# Whether the Battery Service profile (BAS) client role is enabled on this device.
344# Set by vendors overlay, read at Bluetooth initialization
345prop {
346    api_name: "isProfileBasClientEnabled"
347    type: Boolean
348    scope: Public
349    access: Readonly
350    prop_name: "bluetooth.profile.bas.client.enabled"
351}
352
353# Whether the Broadcast Audio Scan Service profile (BASS) client role is enabled on this device.
354# Set by vendors overlay, read at Bluetooth initialization
355prop {
356    api_name: "isProfileBassClientEnabled"
357    type: Boolean
358    scope: Public
359    access: Readonly
360    prop_name: "bluetooth.profile.bass.client.enabled"
361}
362
363# Whether the Coordinated Set Indentification Profile (CSIP) set coordinator role is enabled on this
364# device. Set by vendors overlay, read at Bluetooth initialization
365prop {
366    api_name: "isProfileCsipSetCoordinatorEnabled"
367    type: Boolean
368    scope: Public
369    access: Readonly
370    prop_name: "bluetooth.profile.csip.set_coordinator.enabled"
371}
372
373# Whether the Generic Attribute Profile (GATT) is enabled on this device.
374# Set by vendors overlay, read at Bluetooth initialization
375prop {
376    api_name: "isProfileGattEnabled"
377    type: Boolean
378    scope: Public
379    access: Readonly
380    prop_name: "bluetooth.profile.gatt.enabled"
381}
382
383# Whether the Gaming Audio profile (GMAP) is enabled on this device.
384# Set by vendors overlay, read at Bluetooth initialization
385prop {
386    api_name: "isProfileGmapEnabled"
387    type: Boolean
388    scope: Public
389    access: Readonly
390    prop_name: "bluetooth.profile.gmap.enabled"
391}
392
393# Whether the Hearing Aid Profile (HAP) client role is enabled on this device.
394# Set by vendors overlay, read at Bluetooth initialization
395prop {
396    api_name: "isProfileHapClientEnabled"
397    type: Boolean
398    scope: Public
399    access: Readonly
400    prop_name: "bluetooth.profile.hap.client.enabled"
401}
402
403# Whether the Hands-Free Profile (HFP) Audio Gateway role is enabled on this device.
404# Set by vendors overlay, read at Bluetooth initialization
405prop {
406    api_name: "isProfileHfpAgEnabled"
407    type: Boolean
408    scope: Public
409    access: Readonly
410    prop_name: "bluetooth.profile.hfp.ag.enabled"
411}
412
413# Whether the Hands-Free Profile (HFP) Hands-free role is enabled on this device.
414# Set by vendors overlay, read at Bluetooth initialization
415prop {
416    api_name: "isProfileHfpHfEnabled"
417    type: Boolean
418    scope: Public
419    access: Readonly
420    prop_name: "bluetooth.profile.hfp.hf.enabled"
421}
422
423# Whether Bluetooth HFP software datapath is enabled.
424# Set by vendors overlay, read at Bluetooth initialization
425prop {
426    api_name: "isHfpSoftwareDatapathEnabled"
427    type: Boolean
428    scope: Public
429    access: Readonly
430    prop_name: "bluetooth.hfp.software_datapath.enabled"
431}
432
433# Whether the Human Interface Device Profile (HID) device role is enabled on this device.
434# Set by vendors overlay, read at Bluetooth initialization
435prop {
436    api_name: "isProfileHidDeviceEnabled"
437    type: Boolean
438    scope: Public
439    access: Readonly
440    prop_name: "bluetooth.profile.hid.device.enabled"
441}
442
443# Whether the Human Interface Device Profile (HID) host role is enabled on this device.
444# Set by vendors overlay, read at Bluetooth initialization
445prop {
446    api_name: "isProfileHidHostEnabled"
447    type: Boolean
448    scope: Public
449    access: Readonly
450    prop_name: "bluetooth.profile.hid.host.enabled"
451}
452
453# Whether the Message Access Profile (MAP) Client role is enabled on this device.
454# Set by vendors overlay, read at Bluetooth initialization
455prop {
456    api_name: "isProfileMapClientEnabled"
457    type: Boolean
458    scope: Public
459    access: Readonly
460    prop_name: "bluetooth.profile.map.client.enabled"
461}
462
463# Whether the Message Access Profile (MAP) Server role is enabled on this device.
464# Set by vendors overlay, read at Bluetooth initialization
465prop {
466    api_name: "isProfileMapServerEnabled"
467    type: Boolean
468    scope: Public
469    access: Readonly
470    prop_name: "bluetooth.profile.map.server.enabled"
471}
472
473# Whether the Media Control Profile (MCP) server role is enabled on this device.
474# Set by vendors overlay, read at Bluetooth initialization
475prop {
476    api_name: "isProfileMcpServerEnabled"
477    type: Boolean
478    scope: Public
479    access: Readonly
480    prop_name: "bluetooth.profile.mcp.server.enabled"
481}
482
483# Whether the Object Push Profile (OPP) is enabled on this device. The implementation of OPP
484# supports both client and server roles. Set by vendors overlay, read at Bluetooth initialization
485prop {
486    api_name: "isProfileOppEnabled"
487    type: Boolean
488    scope: Public
489    access: Readonly
490    prop_name: "bluetooth.profile.opp.enabled"
491}
492
493# Whether the Personal Area Networking Profile (PAN) NAP role is enabled on this device.
494# Set by vendors overlay, read at Bluetooth initialization
495prop {
496    api_name: "isProfilePanNapEnabled"
497    type: Boolean
498    scope: Public
499    access: Readonly
500    prop_name: "bluetooth.profile.pan.nap.enabled"
501}
502
503# Whether the Personal Area Networking Profile (PAN) PANU role is enabled on this device.
504# Set by vendors overlay, read at Bluetooth initialization
505prop {
506    api_name: "isProfilePanPanuEnabled"
507    type: Boolean
508    scope: Public
509    access: Readonly
510    prop_name: "bluetooth.profile.pan.panu.enabled"
511}
512
513# Whether the Phonebook Access Profile (PBAP) client role is enabled on this device.
514# Set by vendors overlay, read at Bluetooth initialization
515prop {
516    api_name: "isProfilePbapClientEnabled"
517    type: Boolean
518    scope: Public
519    access: Readonly
520    prop_name: "bluetooth.profile.pbap.client.enabled"
521}
522
523# Whether the Phonebook Access Profile (PBAP) server role is enabled on this device.
524# Set by vendors overlay, read at Bluetooth initialization
525prop {
526    api_name: "isProfilePbapServerEnabled"
527    type: Boolean
528    scope: Public
529    access: Readonly
530    prop_name: "bluetooth.profile.pbap.server.enabled"
531}
532
533# Whether the Phonebook Access Profile (PBAP)'s SIM feature is enabled on this device.
534# Set by vendors overlay, read at Bluetooth initialization
535prop {
536    api_name: "isProfilePbapSimEnabled"
537    type: Boolean
538    scope: Public
539    access: Readonly
540    prop_name: "bluetooth.profile.pbap.sim.enabled"
541}
542
543# Whether the SIM Access Profile (SAP) server is enabled on this device.
544# Set by vendors overlay, read at Bluetooth initialization
545prop {
546    api_name: "isProfileSapServerEnabled"
547    type: Boolean
548    scope: Public
549    access: Readonly
550    prop_name: "bluetooth.profile.sap.server.enabled"
551}
552
553# Whether the Call Control Profile (CCP) server role is enabled on this device.
554# Set by vendors overlay, read at Bluetooth initialization
555prop {
556    api_name: "isProfileCcpServerEnabled"
557    type: Boolean
558    scope: Public
559    access: Readonly
560    prop_name: "bluetooth.profile.ccp.server.enabled"
561}
562
563# Whether the Volume Control Profile (VCP) controller role is enabled on this device.
564# Set by vendors overlay, read at Bluetooth initialization
565prop {
566    api_name: "isProfileVcpControllerEnabled"
567    type: Boolean
568    scope: Public
569    access: Readonly
570    prop_name: "bluetooth.profile.vcp.controller.enabled"
571}
572
573# ACL Link supervision timeout
574prop {
575    api_name: "getLinkSupervisionTimeout"
576    type: UInt
577    scope: Internal
578    access: Readonly
579    prop_name: "bluetooth.core.acl.link_supervision_timeout"
580}
581
582# The following values are used to load default adapter parameters for BR/EDR.
583# The Bluetooth Core Specification should be consulted for the meaning and valid
584# domain of each of these values.
585
586# BR/EDR Page scan activity configuration
587prop {
588    api_name: "getClassicPageScanType"
589    type: UInt
590    scope: Internal
591    access: Readonly
592    prop_name: "bluetooth.core.classic.page_scan_type"
593}
594prop {
595    api_name: "getClassicPageScanInterval"
596    type: UInt
597    scope: Internal
598    access: Readonly
599    prop_name: "bluetooth.core.classic.page_scan_interval"
600}
601prop {
602    api_name: "getClassicPageScanWindow"
603    type: UInt
604    scope: Internal
605    access: Readonly
606    prop_name: "bluetooth.core.classic.page_scan_window"
607}
608
609# BR/EDR Inquiry scan activity configuration
610prop {
611    api_name: "getClassicInquiryScanType"
612    type: UInt
613    scope: Internal
614    access: Readonly
615    prop_name: "bluetooth.core.classic.inq_scan_type"
616}
617prop {
618    api_name: "getClassicInquiryScanInterval"
619    type: UInt
620    scope: Internal
621    access: Readonly
622    prop_name: "bluetooth.core.classic.inq_scan_interval"
623}
624prop {
625    api_name: "getClassicInquiryScanWindow"
626    type: UInt
627    scope: Internal
628    access: Readonly
629    prop_name: "bluetooth.core.classic.inq_scan_window"
630}
631
632# BR/EDR Page Timeout
633prop {
634    api_name: "getClassicPageTimeout"
635    type: UInt
636    scope: Internal
637    access: Readonly
638    prop_name: "bluetooth.core.classic.page_timeout"
639}
640
641# BR/EDR Sniff Parameters
642# Please refer to BTA_DM_PM_PARK_IDX in bta_api.h to determine how many
643# entries are currently being supported.
644# The SNIFF table entries must be in the order from highest latency (biggest
645# interval) to lowest latency. If there's a conflict among the connected
646# services, the setting with lowest latency wins.
647prop {
648    api_name: "getClassicSniffMaxIntervals"
649    type: UIntList
650    scope: Internal
651    access: Readonly
652    prop_name: "bluetooth.core.classic.sniff_max_intervals"
653}
654prop {
655    api_name: "getClassicSniffMinIntervals"
656    type: UIntList
657    scope: Internal
658    access: Readonly
659    prop_name: "bluetooth.core.classic.sniff_min_intervals"
660}
661prop {
662    api_name: "getClassicSniffAttempts"
663    type: UIntList
664    scope: Internal
665    access: Readonly
666    prop_name: "bluetooth.core.classic.sniff_attempts"
667}
668prop {
669    api_name: "getClassicSniffTimeouts"
670    type: UIntList
671    scope: Internal
672    access: Readonly
673    prop_name: "bluetooth.core.classic.sniff_timeouts"
674}
675
676# The following values are used to load default adapter parameters for LE.
677# The Bluetooth Core Specification should be consulted for the meaning and valid
678# domain of each of these values.
679
680# LE connection parameters.
681prop {
682    api_name: "getLeMinConnectionInterval"
683    type: UInt
684    scope: Internal
685    access: Readonly
686    prop_name: "bluetooth.core.le.min_connection_interval"
687}
688prop {
689    api_name: "getLeMaxConnectionInterval"
690    type: UInt
691    scope: Internal
692    access: Readonly
693    prop_name: "bluetooth.core.le.max_connection_interval"
694}
695prop {
696    api_name: "getLeConnectionLatency"
697    type: UInt
698    scope: Internal
699    access: Readonly
700    prop_name: "bluetooth.core.le.connection_latency"
701}
702prop {
703    api_name: "getLeConnectionSupervisionTimeout"
704    type: UInt
705    scope: Internal
706    access: Readonly
707    prop_name: "bluetooth.core.le.connection_supervision_timeout"
708}
709
710# Direct connection timeout in ms
711prop {
712    api_name: "getLeDirectConnectionTimeout"
713    type: UInt
714    scope: Internal
715    access: Readonly
716    prop_name: "bluetooth.core.le.direct_connection_timeout"
717}
718
719# LE connection scan interval/window
720prop {
721    api_name: "getLeConnectionScanIntervalFast"
722    type: UInt
723    scope: Internal
724    access: Readonly
725    prop_name: "bluetooth.core.le.connection_scan_interval_fast"
726}
727prop {
728    api_name: "getLeConnectionScanWindowFast"
729    type: UInt
730    scope: Internal
731    access: Readonly
732    prop_name: "bluetooth.core.le.connection_scan_window_fast"
733}
734prop {
735    api_name: "getLeConnectionScanWindow2mFast"
736    type: UInt
737    scope: Internal
738    access: Readonly
739    prop_name: "bluetooth.core.le.connection_scan_window_2m_fast"
740}
741prop {
742    api_name: "getLeConnectionScanWindowCodedFast"
743    type: UInt
744    scope: Internal
745    access: Readonly
746    prop_name: "bluetooth.core.le.connection_scan_window_coded_fast"
747}
748prop {
749    api_name: "getLeConnectionScanIntervalSlow"
750    type: UInt
751    scope: Internal
752    access: Readonly
753    prop_name: "bluetooth.core.le.connection_scan_interval_slow"
754}
755prop {
756    api_name: "getLeConnectionScanWindowSlow"
757    type: UInt
758    scope: Internal
759    access: Readonly
760    prop_name: "bluetooth.core.le.connection_scan_window_slow"
761}
762
763# LE scanning parameters used during BTM inquiry
764prop {
765    api_name: "getLeInquiryScanInterval"
766    type: UInt
767    scope: Internal
768    access: Readonly
769    prop_name: "bluetooth.core.le.inquiry_scan_interval"
770}
771prop {
772    api_name: "getLeInquiryScanWindow"
773    type: UInt
774    scope: Internal
775    access: Readonly
776    prop_name: "bluetooth.core.le.inquiry_scan_window"
777}
778
779# Used to disable LeGetVendorCapabilities.
780prop {
781    api_name: "getLeVendorCapabilitiesEnabled"
782    type: Boolean
783    scope: Internal
784    access: Readonly
785    prop_name: "bluetooth.core.le.vendor_capabilities.enabled"
786}
787
788# Maximum number of number of allowed concurrent LE Connections
789prop {
790    api_name: "getLeMaxNumberOfConcurrentConnections"
791    type: UInt
792    scope: Public
793    access: Readonly
794    prop_name: "bluetooth.core.le.max_number_of_concurrent_connections"
795}
796
797# list of supported HID transport protocols for IMU data over LE Audio by order of preferrence
798# Comma separated list of:
799# - "le-acl": LE ACL transport, the IMU data is reported via the sensor stack
800# - "iso-sw": ISO transport, the IMU data is reported via the sensor stack
801# - "iso-hw": ISO transport, the IMU data is tunneled to the Spatializer in the ADSP
802prop {
803    api_name: "dsa_transport_preference"
804    type: StringList
805    scope: Public
806    access: Readonly
807    prop_name: "bluetooth.core.le.dsa_transport_preference"
808}
809
810# Used to disable enhanced SCO connection
811prop {
812    api_name: "getDisableEnchancedConnection"
813    type: Boolean
814    scope: Internal
815    access: Readonly
816    prop_name: "bluetooth.sco.disable_enhanced_connection"
817}
818
819# Whether Bluetooth HFP SCO managed by Audio.
820# Set by vendors overlay, read at Bluetooth initialization
821prop {
822    api_name: "isScoManagedByAudioEnabled"
823    type: Boolean
824    scope: Public
825    access: Readonly
826    prop_name: "bluetooth.sco.managed_by_audio"
827}
828
829# Determine if sniff mode is handled in AP or MCU
830prop {
831    api_name: "enable_sniff_offload"
832    type: Boolean
833    scope: Public
834    access: Readonly
835    prop_name: "persist.bluetooth.sniff_offload.enabled"
836    integer_as_bool: true
837}
838
839# Determines if MSFT HCI ext should be used for LE Scanning
840prop {
841    api_name: "isMsftHciExtEnabled"
842    type: Boolean
843    scope: Internal
844    access: Readonly
845    prop_name: "bluetooth.core.le.use_msft_hci_ext"
846}
847