| # 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] |