blob: 66d636b68ab6ff4eba3441b6fef537ae099626b7 [file] [log] [blame]
# Below are the guidelines/instructions for editing this database file.
# Note 1: User should turn off the BT, before updating this database file.
# Note 2: Line started with the # is treated as comments.
# Note 3: Comment lines in between the entries are not allowed.
# Note 4: All duplicated entries including main BL types will be ignored.
#
#1. Below are the four tags for denylist
# A. Address_Based C. Manufacturer_based
# B. Name_Based D. Vndr_Prdt_Based
# E. SSR_Max_Lat_Based F. Version_Based
# G. LMP_Version_Based H. Address_Range_Based
##
# A. Address_Based : This tag refers to Address based denylist
# Input Type : Input value should be only 3 to 4 bytes of BD address
# Format Type : Address should be in XX:XX:XX format
# Examples : 00:01:03 = Address_Based
###
# B. Name_Based : This tag refers to Name based denylist.
# Input type : Input should be only string and length of the string
# should not be more than 248 characters.
# Format Type : string
# Examples : Sample Headset name = Name_Based
####
# C. Manufacturer_Based : This tag refers to Manufacturer based denylist
# Input type : Input should be in Hexadecimal Number of Manufacturer
# Format Type : 2 Bytes Hexadecimal Value
# Examples : 0X0023 = Manufacturer_Based
#####
# D. Vndr_Prdt_Based : This tag refers to vendor and product based denylist
# Input type : Input should be in Hexadecimal value
# Format Type : 4 bytes hex value( 2 bytes of vendor and 2 bytes of product),
# Vendor and product hex values should be separated with delimiter(-).
# Examples : 0X00AB-0X00BC = Vndr_Prdt_Based
#####
# E. SSR_Max_Lat_Based : This tag refers to SSR Max Latency based denylist
# Input type : Input value should be combination of first 3 bytes of BD address and
# Hexadecimal value of SSR Max Latency
# Format Type : Address should be in XX:XX:XX format followed by 2 bytes hex value
# of max latency Address and Max Latency should be separated with delimiter(-).
# Examples : 00:01:03-0X00AB = SSR_Max_Lat_Based
#####
# F. Version_Based : This tag refers to DID Version based denylist
# Input type : Input value should be Hexadecimal value
# Format Type : 2 bytes hex value
# Examples : 0X00AB = Version_Based
#####
# G. LMP_Version_Based : This tag refers to LMP Version based denylist
# Input type : Input value should be combination of first 3 bytes of BD address and
# Hexadecimal value of LMP version and Sub version
# Format Type : Address should be in XX:XX:XX format followed by 1 bytes hex value
# of LMP versiion and 2 bytes of sub version
# Address, LMP version and sub version should be separated with delimiter(-).
# Examples : 00:01:03-0X01-0XABCD = LMP_Version_Based
##
# H. Address_Range_Based : This tag refers to Address Range based denylist
# Input Type : Input value should be only 6 bytes of start BD address
# & 6 bytes of end BD address.
# Format Type : Start Address should be XX:XX:XX:XX:XX:XX format followed by
# End BD address should be XX:XX:XX:XX:XX:XX format
# Examples : 00:0f:59:50:00:00-00:0f:59:6f:ff:ff = Address_Range_Based
#####
# ******************************* Start of denylist Database ********************************
#Disable secure connections
#This is for pre BT 4.1/2 devices that do not handle secure mode very well.
[INTEROP_DISABLE_LE_SECURE_CONNECTIONS]
# Devices requiring this workaround do not handle Bluetooth Absolute Volume
# control correctly, leading to undesirable (potentially harmful) volume levels
# or general lack of controlability.
# 04:CB:88 - JBL TUNE125TWS
[INTEROP_DISABLE_ABSOLUTE_VOLUME]
04:CB:88 = Address_Based
# Disable automatic pairing with headsets/car-kits
# Some car kits do not react kindly to a failed pairing attempt and
# do not allow immediate re-pairing. Denylist these so that the initial
# pairing attempt makes it to the user instead
[INTEROP_DISABLE_AUTO_PAIRING]
# Use a fixed pin for specific keyboards
# Keyboards should use a variable pin at all times. However, some keyboards
# require a fixed pin of all 0000. This workaround enables auto pairing for
# those keyboards.
[INTEROP_KEYBOARD_REQUIRES_FIXED_PIN]
# Some headsets have audio jitter issues because of increased re-transmissions as the
# 3 Mbps packets have a lower link margin, and are more prone to interference. We can
# disable 3DH packets (use only 2DH packets) for the ACL link to improve sensitivity
# when streaming A2DP audio to the headset. Air sniffer logs show reduced
# re-transmissions after switching to 2DH packets.
# Disable 3Mbps packets and use only 2Mbps packets for ACL links when streaming audio.
[INTEROP_2MBPS_LINK_ONLY]
# Some HID pointing devices have proven problematic behaviour if pairing is initiated with
# them, resulting in no response for authentication request and ultimately resulting
# in connection failure.
# To avoid degrading the user experience with those devices, authentication request
# is not requested explicitly.
[INTEROP_DISABLE_AUTH_FOR_HID_POINTING]
# HID Keyboards that claim support for multitouch functionality have issue with
# normal functioning of keyboard because of issues in USB HID kernel driver.
# To avoid degrading the user experience with those devices, digitizer record
# is removed from the report descriptor.
[INTEROP_REMOVE_HID_DIG_DESCRIPTOR]
# Some HID devices have problematic behaviour where when hid link is in Sniff
# and DUT is in Slave role for SCO link ( not eSCO) any solution cannot maintain
# the link as SCO scheduling over a short period will overlap with Sniff link due to
# slave drift.
# To avoid degrading the user experience with those devices, sniff is disabled from
# link policy when sco is active, and enabled when sco is disabled.
[INTEROP_DISABLE_SNIFF_DURING_SCO]
# Few carkits take long time to start sending AT commands
# Increase AG_CONN TIMEOUT so that AG connection go through
[INTEROP_INCREASE_AG_CONN_TIMEOUT]
# Some HOGP devices do not respond well when we switch from default LE conn parameters
# to preferred conn params immediately post connection. Disable automatic switching to
# preferred conn params for such devices and allow them to explicitly ask for it.
[INTEROP_DISABLE_LE_CONN_PREFERRED_PARAMS]
# Disable role switch for headsets/car-kits
# Some car kits allow role switch but when DUT initiates role switch
# Remote will go to bad state and its leads to LMP time out.
[INTEROP_DISABLE_ROLE_SWITCH]
# Disable role switch policy for headsets/car-kits
# Some car kits initiate a role switch but won't initiate encryption
# after role switch complete
[INTEROP_DISABLE_ROLE_SWITCH_POLICY]
# certain remote A2DP sinks have issue playing back Music in AAC format.
# disable AAC for those headsets so that it switch to SBC
# 1. byte alignment issues with encoder (solo3::20:3c:ae,airpods::4c:32:75)
# 2. remote sending 128 instead of 128k as bitrate (cadillac::28:a1:83, Chevrolet Tahoe,
# buick_verano::ac:7a:4d(moved to name based, maruti_brezzai:28:a1:83,
# cadillac cue::e0:75:0a, 30:C3:D9)
# 3. remote supporting only 44.1Khz (BIG-JAM-BOX::00-21-3c,JVC CK::00:1D:86,BMW CK::9C:DF:03)
[INTEROP_DISABLE_AAC_CODEC]
# certain remote A2DP sinks have issue playing back Music in AAC VBR mode.
# disable AAC VBR for those headsets so that it switch to either AAC CBR
# or SBC codec
[INTEROP_DISABLE_AAC_VBR_CODEC]
[INTEROP_ENABLE_AAC_CODEC]
# Devices requiring this workaround do not handle Bluetooth PBAP 1.2
# version correctly, leading them to go in bad state. So for better
# interoperability respond with PBAP 1.1 as supported version.
[INTEROP_ADV_PBAP_VER_1_1]
# Devices requiring this workaround do not handle Bluetooth PBAP 1.1
# version correctly, leading them to go in bad state. So for better
# interoperability respond with PBAP 1.2 as supported version.
[INTEROP_ADV_PBAP_VER_1_2]
# Devices requiring this workaround do not handle PBAP SDP request correctly,
# and lead to connection failures. To prevent this scenario, device requiring this
# workaorund need to avoid sending SDP request during pairing time
# 00:1F:20 - Logitech Bluetooth Mouse M555b
[INTEROP_DISABLE_PCE_SDP_AFTER_PAIRING]
00:1F:20 = Address_Based
# Devices requiring this workaround do not handle SSR max latency values as mentioned,
# in their SDP HID Record properly and lead to connection timeout or lags. To prevent
# such scenarios, device requiring this workaorund need to use specific ssr max latency
# values.
[INTEROP_UPDATE_HID_SSR_MAX_LAT]
DC:2C:26-0x0000 = SSR_Max_Lat_Based
#Some device reports support for hf indicator, but it's HFP version as 1.5. The
#behaviour violates spec and shall cause problem when DUT support HFP1.7, thus
#denylisting such devices and remove remote's hf indicator bit if not support HFP1.7.
[INTEROP_DISABLE_HF_INDICATOR]
#Ensure that call active indicator is sent prior to SCO connection
#request by adding some delay. Some remotes are very strict in the
#order of call indicator and SCO connection request.
[INTEROP_DELAY_SCO_FOR_MT_CALL]
# Some remotes ara taking longer to respond to +BCS during codec negotiation.
# Disable codec negotiation and directly initiate SCO connection for those.
[INTEROP_DISABLE_CODEC_NEGOTIATION]
# Disallow sending Player Application Setting Commands for some CK as they are unable
# to send Passthrough Command while Streaming is in progress
[INTEROP_DISABLE_PLAYER_APPLICATION_SETTING_CMDS]
[INTEROP_DISABLE_CONNECTION_AFTER_COLLISION]
# Do not use supervision timeout value received from preferred connection
# parameters, use 3s instead. Use with HID only.
[INTEROP_HID_PREF_CONN_SUP_TIMEOUT_3S]
# Do not use AVDTP RECONFIGURE when reconfiguring A2DP streams.
# Some A2DP Sink devices report SUCCESS to the AVDTP RECONFIGURE command,
# but fail to play the reconfigured audio stream.
[INTEROP_DISABLE_AVDTP_RECONFIGURE]
[INTEROP_GATTC_NO_SERVICE_CHANGED_IND]
#Some LE devices have proven problematic behaviour if LE connection update is initiated with
#them, resulting in no response after initiating LE connection update and ultimately resulting
#in connection timeout. To avoid degrading the user experience with those devices,
#LE connection update is not requested explicitly for those devices.
[INTEROP_DISABLE_LE_CONN_UPDATES]
[INTEROP_AVRCP_BROWSE_OPEN_CHANNEL_COLLISION]
#Some remote devices don't support sniff mode when the SCO is connected.
#For such devices, disable sniff mode after SCO is connected and make
#the link as active.
[INTEROP_DISABLE_SNIFF_LINK_DURING_SCO]
#For some remote devices, disable sniff mode during the call
#as some remotes need call indicators in active mode
[INTEROP_DISABLE_SNIFF_DURING_CALL]
#Skip sending incoming call state to denylisted devices
[INTEROP_SKIP_INCOMING_STATE]
#Nintendo Switch Pro Controller - does not set sniff interval dynamically.
#Requires custom HID report command to change mode.
[INTEROP_HID_HOST_LIMIT_SNIFF_INTERVAL]
#For some remote devices disable setting of refresh_sig_timer while responding
#to incoming AVDTP signalling. While incoming connection remote device is sending
#set_config and delay report back to back, which is violating spec(As per the spec,
#remote should wait for set_config response and then it should send delay report).
#Due to which HOST is responding BAD_STATE for delay_report sent by remote, which
#resulted in remote is going to bad state and sent AVDTP_OPEN with ACP Stream
#Endpoint ID: 0, for which DUT responded with Error Code: BAD_ACP_SEID
[INTEROP_DISABLE_REFRESH_ACCEPT_SIG_TIMER]
# List of Media Players allowed to be considered as potential
# candidates of supporting AVRCP Browsing featute are to be
# included in this Name Based Allowlist
# Name Based Format addition must be made with the string having
# Player's package Name (Not Player's displayable Name) like below:
# Player's Package Name = Name Based
#
# Like below players are part of our Allowlist
# Youtube(YT) Music = Name Based
# Gaana = Name Based
[INTEROP_BROWSE_PLAYER_ALLOW_LIST]
# For some certain remote devices, when a2dp is playing and music
# player is paused, if we update avrcp paused to remote device, remote device will
# not output audio even after avrcp becomes playing again. Denylist these devices
# to not update avrcp paused to them when a2dp is playing.
# This denylist is migrated from playerStateUpdateBlackListed of Avrcp_ext.java
[INTEROP_NOT_UPDATE_AVRCP_PAUSED_TO_REMOTE]
# Some certain devices reject DUT initiated connection
# when DUT tries to connect other auto-connectable profiles 6s after
# peer connects the first one. To avoid such race condition, raised
# connect other profiles timeout to 10s to make sure there is no
# connection rejection from remote because of connection collision.
# This denylist is migrated from delayConnectTimeoutDevice
# of PhonePolicy.java.
[INTEROP_PHONE_POLICY_INCREASED_DELAY_CONNECT_OTHER_PROFILES]
# As per the implementation for the incoming connection scenario if one
# profile got connected and other profile didn't get connected, DUT starts
# connect other profiles after 6sec timeout. For some certain device,
# this timeout has been reduced to 2sec for triggering auto connect to
# otherprofiles from DUT. So that Audio will get routed to BT device with
# reduced delay.
# This denylist is migrated from delayReducedConnectTimeoutDevice
# of PhonePolicy.java.
[INTEROP_PHONE_POLICY_REDUCED_DELAY_CONNECT_OTHER_PROFILES]
# Some remote devices are misbehaving when there is an active
# call and MT call is in progress. We send call indicators for
# active call and MT Call in progess. When active call is
# terminated, we send call end indicator only to remote. This
# is confusing remote and remotes are going into bad state.
# Denylist remote devices to disconnect SCO when active call is
# ended, fake MT call indicator again with some delay.
# This denylist is migrated from BlacklistDeviceAddrToDelayCallInd
# of HeadsetStateMachine.java.
[INTEROP_HFP_FAKE_INCOMING_CALL_INDICATOR]
# Some certain devices not rendering VOIP call audio if call indicators
# are sent with a delay. Denylist the devices to send call
# indicators back to back.
# This denylist is migrated from BlacklistDeviceForSendingVOIPCallIndsBackToBack
# of HeadsetStateMachine.java.
[INTEROP_HFP_SEND_CALL_INDICATORS_BACK_TO_BACK]
# Some CKs need SCO immediately after SLC if there is an ongoing call on phone
[INTEROP_SETUP_SCO_WITH_NO_DELAY_AFTER_SLC_DURING_CALL]
#Some LE mouses need preferred connection parameters
[INTEROP_ENABLE_PREFERRED_CONN_PARAMETER]
# Some CKs drop SCO connection immediately after accept,
# Retry setup SCO once for those remote devices.
[INTEROP_RETRY_SCO_AFTER_REMOTE_REJECT_SCO]
# some remotes not able to render the voice for VOIP calls if call
# ougoing indicators are sent and sco is opened immediately.
# Adding such devices to denylist, to do the sco open after
# indicators are sent with slight delay.
[INTEROP_DELAY_SCO_FOR_MO_CALL]
# some remote hid devices cannot work properly as they laod special hid usb driver in kernel,
# so modify their vid/pid so that generic hid driver are loaded.
[INTEROP_CHANGE_HID_VID_PID]
# Some remote always set DUT as slave during connection which restricts
# setting supervision timeout to the required value. This interop will allow
# local device to be only master as role switch would be restricted during connection.
[INTEROP_DISABLE_ROLE_SWITCH_DURING_CONNECTION]
# Disable auto repairing
[INTEROP_AUTO_RETRY_PAIRING]
# Disable Name Request
[INTEROP_DISABLE_NAME_REQUEST]
# AVRCP 1_4 Only device
[INTEROP_AVRCP_1_4_ONLY]
# Few remote devices do not understand AVRCP version greater than 1.3. For these
# devices, we would like to denylist them and advertise AVRCP version as 1.3
[INTEROP_AVRCP_1_3_ONLY]
# Disable Sniff
[INTEROP_DISABLE_SNIFF]
# HFP AT+BIND missing
[INTEROP_SLC_SKIP_BIND_COMMAND]
# Some remote devices have LMP version in [5.0, 5.2] but do not support robust caching
# or correctly response with an error. We disable the database hash lookup for such devices.
[INTEROP_DISABLE_ROBUST_CACHING]