• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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