# Below are the guidelines/instructions for editing this database file. # Note 1: User should turn of 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] 08:62:66 = Address_Based 38:2C:4A:C9 = Address_Based 38:2C:4A:E6 = Address_Based 54:A0:50:D9 = Address_Based AC:9E:17 = Address_Based F0:79:59 = Address_Based 80:E4:DA:70 = Address_Based 1C:96:5A = Address_Based 80:EA:CA = Address_Based 51:01:00 = Address_Based 61:01:00 = Address_Based # Devices requiring this workaround do not handle Bluetooth Absolute Volume # control correctly, leading to undesirable (potentially harmful) volume levels # or general lack of controlability. [INTEROP_DISABLE_ABSOLUTE_VOLUME] A0:E9:DB = Address_Based 00:14:02 = Address_Based 1C:48:F9 = Address_Based 44:5E:F3 = Address_Based D4:9C:28 = Address_Based 00:18:6B = Address_Based B8:AD:3E = Address_Based 00:11:B1 = Address_Based A4:15:66 = Address_Based 00:14:F1 = Address_Based 00:26:7E = Address_Based 90:03:B7 = Address_Based 04:F8:C2 = Address_Based 00:18:91 = Address_Based 00:24:1C = Address_Based 00:08:8b = Address_Based 94:16:25 = Address_Based 00:25:DB = Address_Based A0:C9:A0 = Address_Based 4C:BC:42 = Address_Based EC:41:18 = Address_Based C8:FD:19 = Address_Based 04:7F:0E = Address_Based 0C:A6:94 = Address_Based 00:0f:59:50:00:00-00:0f:59:6f:ff:ff = Address_Range_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] 34:C7:31 = Address_Based 00:07:04 = Address_Based E0:75:0A = Address_Based Audi = Name_Based BMW = Name_Based Parrot = Name_Based Car = Name_Based NISSAN = Name_Based CAR = Name_Based # 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] 00:0F:F6 = Address_Based # 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] 00:18:91 = Address_Based 00:21:4F = Address_Based 20:15:06 = Address_Based 9C:DF:03 = Address_Based 04:52:C7 = Address_Based 30:14:4A = Address_Based 00:54:AF = Address_Based 7C:1C:4E = Address_Based 50:65:83 = Address_Based 00:1E:7C = Address_Based C8:84:47 = Address_Based D0:8A:55 = Address_Based 48:F0:7B = Address_Based 00:0A:08 = Address_Based 00:11:2D = Address_Based A8:54:B2 = Address_Based AC:7A:4D = Address_Based E8:EC:A3 = Address_Based 98:52:3D = Address_Based # 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] 00:12:A1 = Address_Based Targus BT Laser Notebook Mouse = Name_Based # 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] Motorola Keyboard KZ500 = Name_Based Motorola Keyboard KZ500 v122 = Name_Based 0x22b8-0x093D = Vndr_Prdt_Based # 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] 20:4C:10 = Address_Based 0x004C = Manufacturer_Based # 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] 00:14:09 = Address_Based 00:06:F5 = Address_Based # 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] BSMBB09DS = Name_Based ELECOM = Name_Based # 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] FC:C2:DE = Address_Based 00:26:B4 = Address_Based 00:04:3E = Address_Based 00:23:01 = Address_Based 1C:48:F9 = Address_Based 00:54:AF = Address_Based 00:26:E8 = Address_Based 00:37:6D = Address_Based 9C:3A:AF = Address_Based 00:18:91 = Address_Based 0C:E0:E4 = Address_Based 00:07:04 = Address_Based A4:15:66 = Address_Based D0:13:1E = Address_Based 8F:20:B4 = Address_Based A8:B9:B3 = Address_Based 00:0D:F0 = Address_Based 00:08:E0 = Address_Based 00:25:52 = Address_Based 1C:52:16 = Address_Based 00:06:66 = Address_Based 00:24:E4 = address_Based 00:1C:D8 = Address_Based AC:FD:CE = Address_Based 08:76:95 = Address_Based 00:00:45 = Address_Based EB:06:EF = Address_Based 74:95:EC = Address_Based AC:FD:93 = Address_Based AA:A8:AC = Address_Based B8:D5:0B = Address_Based 50:1A:A5 = Address_Based E4:22:A5 = Address_Based 4C:BC:42 = Address_Based 9C:DF:03 = Address_Based 00:0A:30 = Address_Based 00:1D:86 = Address_Based # Disable role switch policy for headsets/car-kits # Some car kits initiate a role switch but won't initiate encryption # after role switch complete # B8:69:C2:9C:20:A8 - JBL Charge 2+ [INTEROP_DISABLE_ROLE_SWITCH_POLICY] 00:0D:FD = Address_Based 00:1B:DC = Address_Based 00:07:04 = Address_Based A4:15:66 = Address_Based 00:54:AF = Address_Based 00:23:7F = Address_Based B8:69:C2 = Address_Based # 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] 28:A1:83 = Address_Based A0:14:3D = Address_Based 90:03:B7 = Address_Based 00:21:3c = Address_Based 9C:DF:03 = Address_Based E0:75:0A = Address_Based 48:F0:7B = Address_Based 04:52:C7 = Address_Based 30:C3:D9 = Address_Based 00:E0:4C = Address_Based abramtek M1 = Name_Based Buick Verano = Name_Based # 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 # 0xb0-00-73-e2-61-dd ==> Name: Audi_MMI_2781 # 0x28-83-35-7a-5f-23 ==> Name: SS Level Pro [INTEROP_DISABLE_AAC_VBR_CODEC] B0:00:73 = Address_Based Audi_MMI_2781 = Name_Based 28:83:35 = Address_Based #Enable AAC encoder only for allowlist devices #0xb8-ad-3e-d2-4b-4b ==> Name: LG HBSA100 #0xb8-ad-3e-e7-13-84 ==> Name: LG HBS1100 #0x00-18-09-95-04-c1 ==> Name: MDR-XB80BS #0x00-18-09-95-04-c1 ==> Name: MDR-1RBT #0x7c-04-d0-9a-75-ad ==> Name: AirPods #24:F6:77:A7:57:F7 ==> Name: AirPods #A8:BE:27:03:4A:2F ==> Name: BeatsX #E0:D1:E6:09:AB:B2 ==> Name: MINIJAMBOX by Jawbone #2C:41:A1:3D:2B:B9 ==> Name: Bose SoundSport #2C:41:A1:48:FB:9A ==> Name: Bose QC35 II #94:B2:CC:42:C9:59 ==> Name: AVH-A208BT #DC:A4:CA:C0:C6:0B ==> Name: Beats Solo³ #BB:27:4D:41:BB:FC ==> Name: PH300 #C4:30:18:9C:9F:C7 ==> Name: LG-PL7(C7) #6C:DD:BC:62:F3:75 ==> Name: Galaxy Buds+ (F375) #2C:4C:C6:AA:51:CC ==> Name: KW-V950BW #C6:58:19:40:88:EC ==> Name: S8 #23:05:21:08:7E:12 ==> Name: TOZO-T10 #2C:FD:B3:66:C2:27 ==> Name: Soundcore Life Q20 #04:21:44:0C:0F:15 ==> Name: JBL Quantum800 #6C:47:60:3D:2E:4F ==> Name: Sony SRS-XB13 #B0:F1:A3:74:D1:D6 ==> Name: Ear Fun Free Pro #b4:9a:95:55:56:47 ==> Name: Realme Buds Air 2 Neo #00:88:79:59:F5:F6 ==> Name: TAOTRONICS Soundliberty 53 #70:BF:92:5E:82:48 ==> Name: Jabra Elite 75t #9C:64:8B:5D:0D:0B ==> Name: Beats Pill+ #0x48-d6-d5-bc-79-43 ==> Name: Pixel Buds 7943 #0x8c-de-52-df-79-8e ==> Name: SRS-X33 #0x04-5d-4b-ec-2c-4c ==> Name: WH-1000XM2 #0x04-5d-4b-40-e7-1e ==> Name: h.ear (MDR-100ABN) #0x04-5d-4b-df-3e-70 ==> Name: WI-1000X #0x04-5d-4b-eb-69-87 ==> Name: WH-H800 (h.ear) #0x04-5d-4b-66-bd-26 ==> Name: MDR-1000X #0x04-5d-4b-66-c1-f6 ==> Name: WI-H700 (h.ear) #0x04-5d-4b-99-f0-5d ==> Name: WH-H900N (h.ear) #0x10-4f-a8-e9-79-eb ==> Name: MDR-1ABT #0x10-4f-a8-15-b9-5a ==> Name: h.ear (MDR-EX750BT) #0xac-9b-0a-bd-1f-20 ==> Name: MDR-ZX770BN #0x04-52-c7-c5-d2-94 ==> Name: Bose QuietComfort 35 #0x0c-e0-e4-64-26-a3 ==> Name: PLT_BBTPRO #0xa4-15-66-4b-4d-24 ==> Name: Tracks Air #0x00-1a-7d-82-36-4b ==> Name: 66 Audio BTS #0x88-e6-03-80-48-6b ==> Name: XB10 #0xb8-69-c2-eb-ae-66 ==> Name: SRS-XB3 #0x58-e2-8f-e9-09-7b ==> Name: BeatsStudio Wireless #0xE4-19-C1-DC-10-10 ==> Name: FreeBuds 3 #0xa0-56-b2-2b-43-ec ==> Name: MB Bluetooth #0x1c-e6-1d-93-83-b5 ==> Name: Galaxy Buds pro(83B5) #CarKits #0x94-b2-cc-28-99-77 ==> Name: AVH-X5890BT ==>pioneer #0x74-5e-1c-98-88-64 ==> Name: AVH-X5790BT ==>pioneer #0x00-1d-86-a4-ea-a6 ==> Name: Car Multimedia ===>JVC #0x00-1d-86-a0-79-c2 ==> Name: DDX6 ==>kenwood #0x90-03-b7-6c-89-aa ==> Name: Parrot ASTEROID #0x30-c3-d9-85-34-ce ==> Name: MB Bluetooth 84389 #0x00-02-5b-00-85-ca ==> Name: HATS_00025B0085E9 #0xa0-56-b2-5b-cc-00 ==> Name: BMW Europe #0x94-e3-6d-dc-e4-d4 ==> Name: BMW Evo [INTEROP_ENABLE_AAC_CODEC] B8:AD:3E = Address_Based LG HBSA100 = Name_Based LG HBS1100 = Name_Based 00:18:09 = Address_Based MDR-XB80BS = Name_Based 00:18:09 = Address_Based MDR-1RBT = Name_Based 7C:04:D0 = Address_Based 24:F6:77 = Address_Based AirPods = Name_Based 48:D6:D5 = Address_Based Pixel Buds 7943 = Name_Based 8C:DE:52 = Address_Based SRS-X33 = Name_Based 04:5D:4B = Address_Based WH-1000XM2 = Name_Based h.ear (MDR-100ABN) = Name_Based WI-1000X = Name_Based WH-H800 (h.ear) = Name_Based MDR-1000X = Name_Based WI-H700 (h.ear) = Name_Based WH-H900N (h.ear) = Name_Based 10:4F:A8 = Address_Based MDR-1ABT = Name_Based h.ear (MDR-EX750BT) = Name_Based AC:9B:0A = Address_Based MDR-ZX770BN = Name_Based 04:52:C7 = Address_Based Bose QuietComfort 35 = Name_Based 94:B2:CC = Address_Based AVH-X5890BT = Name_Based AVH-A208BT = Name_Based 74:5E:1C = Address_Based AVH-X5790BT = Name_Based 00:1D:86 = Address_Based Car Multimedia = Name_Based DDX6 = Name_Based 90:03:B7 = Address_Based Parrot ASTEROID = Name_Based 0C:E0:E4 = Address_Based PLT_BBTPRO = Name_Based A4:15:66 = Address_Based Tracks Air = Name_Based 00:1A:7D = Address_Based 66 Audio BTS = Name_Based 88:E6:03 = Address_Based XB10 = Name_Based B8:69:C2 = Address_Based SRS-XB3 = Name_Based 30:C3:D9 = Address_Based MB Bluetooth 84389 = Name_Based 00:02:5B = Address_Based HATS_00025B0085E9 = Name_Based A8:BE:27 = Address_Based BeatsX = Name_Based E0:D1:E6 = Address_Based MINIJAMBOX by Jawbone = Name_Based 2C:41:A1 = Address_Based Bose SoundSport = Name_Based Bose QC35 II = Name_Based DC:A4:CA = Address_Based Beats Solo³ = Name_Based 58:E2:8F = Address_Based BeatsStudio Wireless = Name_Based FC:4B:BC = Address_Based XAV-AX100 = Name_Based 00:18:6b = Address_Based LG HBS730 = Name_Based 8C:57:9B = Address_Based h.ear go (SRS-HG1) = Name_Based 40:ED:98 = Address_Based FiiO BTR1K = Name_Based 0C:A6:94 = Address_Based HK Soho Wireless = Name_Based 00:09:A7 = Address_Based Beoplay H4 = Name_Based 70:26:05 = Address_Based WF-SP700N = Name_Based 48:D6:D5 = Address_Based Pixel Buds = Name_Based 00:09:a7 = Address_Based Beoplay E8 = Name_Based 2C:41:A1 = Address_Based Bose SoundWear = Name_Based 2C:41:A1 = Address_Based Bose Free SoundSport = Name_Based 00:18:09 = Address_Based Samsung Level On = Name_Based a0:56:b2 = Address_Based BMW 08939 = Name_Based MB Bluetooth = Name_Based 94:e3:6d = Address_Based BMW 99999 = Name_Based E4:19:C1 = Address_Based FreeBuds 3 = Name_Based 28:83:35 = Address_Based Level U Pro (5F23) = Name_Based 1C:E6:1D = Address_Based Galaxy Buds Pro (83B5) = Name_Based BB:27:4D = Address_Based PH300 = Name_Based C4:30:18 = Address_Based LG-PL7(C7) = Name_Based 6C:DD:BC = Address_Based Galaxy Buds+ (F375) = Name_Based 2C:4C:C6 = Address_Based KW-V950BW = Name_Based C6:58:19 = Address_Based S8 = Name_Based 23:05:21 = Address_Based TOZO-T10 = Name_Based 2C:FD:B3 = Address_Based Soundcore Life Q20 = Name_Based 04:21:44 = Address_Based JBL Quantum800 = Name_Based 6C:47:60 = Address_Based Sony SRS-XB13 = Name_Based B0:F1:A3 = Address_Based Ear Fun Free Pro = Name_Based b4:9a:95 = Address_Based Realme Buds Air 2 Neo = Name_Based 00:88:79 = Address_Based TAOTRONICS Soundliberty 53 = Name_Based 70:BF:92 = Address_Based Jabra Elite 75t = Name_Based 9C:64:8B = Address_Based Beats Pill+ = Name_Based #E0:D1:E6 = Address_Based #00:18:6b = Address_Based #20:3c:ae = Address_Based #04:88:e2 = Address_Based #4c:32:75 = Address_Based #00:14:07 = Address_Based #94:20:53 = Address_Based # 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] PTS = Name_Based # 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 [INTEROP_DISABLE_PCE_SDP_AFTER_PAIRING] AC:FD:CE = 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] 00:1B:DC-0x0012 = SSR_Max_Lat_Based DC:2C:26-0x0000 = SSR_Max_Lat_Based 54:46:6B-0x0001 = 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] 98:7b:f3 = Address_Based #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. #1 04:52:c7 - Bose Mini II sound link #2 24:A8:7D - Maruti Suzuki CIAZ 2018 - Delta [INTEROP_DELAY_SCO_FOR_MT_CALL] 04:52:c7 = Address_Based AirPods Pro = Name_Based 24:A8:7D = Address_Based f0:45:da = Address_Based # Some remotes ara taking longer to respond to +BCS during codec negotiation. # Disable codec negotiation and directly initiate SCO connection for those. # 1. M12 - 00:08:8a:f0:1d:8a # 2. HAVIT I39 - 55:55:55:67:0b:d7 [INTEROP_DISABLE_CODEC_NEGOTIATION] 00:08:8a = Address_Based JABRA EASYGO = Name_Based 55:55:55 = Address_Based LG HBSF110 Master = Name_Based # Disallow sending Player Application Setting Commands for some CK as they are unable # to send Passthrough Command while Streaming is in progress # Porsche Panamera :: 74:6f:f7:8c:bf:61 # BMW X3 :: a0:56:b2:4f:86:a8 # Land Rover :: 00:00:2e:b0:12:5c # BMW USAX5 :: a0:56:b2:5a:7f:b0 [INTEROP_DISABLE_PLAYER_APPLICATION_SETTING_CMDS] 00:09:93 = Address_Based 74:6f:f7 = Address_Based A0:56:B2:4F = Address_Based 00:54:AF = Address_Based 00:00:2E = Address_Based A0:56:B2:5A = Address_Based [INTEROP_DISABLE_CONNECTION_AFTER_COLLISION] A0:14:3D = Address_Based # 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] 08:62:66 = Address_Based 38:2C:4A:C9 = Address_Based 38:2C:4A:E6 = Address_Based 54:A0:50:D9 = Address_Based AC:9E:17 = Address_Based F0:79:59 = Address_Based # 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] 00:1D:86 = Address_Based KMM-BT51*HD = Name_Based [INTEROP_GATTC_NO_SERVICE_CHANGED_IND] Pixel C Keyboard = Name_Based MiMouse = Name_Based HTC Fetch = Name_Based #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] LG Lighting = Name_Based KS_5w4Zu = Name_Based ZUK = Name_Based ITAG = Name_Based Pokemon GO Plus = Name_Based FeiZhiX8/X8Pro = Name_Based FeiZhiAPEX = Name_Based FeiZhiWee = Name_Based FeiZhi Wee 2T = Name_Based #Few remote sends avrcp browsing request just after host sends avrcp browsing request leading #collision which results in browsing channel open failure. For such devices, collision timer #of 1 sec is used avoid collision. #Porsche Macan 2018 :: 2c:dc:ad:08:91:89 #Porsche Panamera :: 74:6f:f7:8c:bf:61 [INTEROP_AVRCP_BROWSE_OPEN_CHANNEL_COLLISION] 2c:dc:ad:08 = Address_Based 74:6f:f7 = Address_Based 90:03:b7 = Address_Based 00:06:F5 = Address_Based #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. #Benz Car kit :: 50:65:83:8e:1d:43 #Sony Ear Duo :: 28:3f:69:ff:50:bd #AirPods #Airoha Technology Corp --> 0x0094 [INTEROP_DISABLE_SNIFF_LINK_DURING_SCO] 50:65:83 = Address_Based 28:3f:69 = Address_Based AirPods = Name_Based 0x0094 = Manufacturer_Based #For some remote devices, disable sniff mode during the call #as some remotes need call indicators in active mode #Leviathan Mini :: 10:b7:f6:03:38:b0 [INTEROP_DISABLE_SNIFF_DURING_CALL] 10:b7:f6 = Address_Based AirPods = Name_Based #Skip sending incoming call state to denylisted devices # 00:0E:9F : Porsche Carkit [INTEROP_SKIP_INCOMING_STATE] 00:0E:9F = Address_Based #Nintendo Switch Pro Controller - does not set sniff interval dynamically. #Requires custom HID report command to change mode. [INTEROP_HID_HOST_LIMIT_SNIFF_INTERVAL] 98:B6:E9 = Address_Based Pro Controller = Name_Based Joy-Con = Name_Based #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 #04:4e:af:a8:a0:01 ==> Name: HB20 [INTEROP_DISABLE_REFRESH_ACCEPT_SIG_TIMER] 04:4E:AF = Address_Based HB20 = Name_Based HB 20 = Name_Based # 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 # bc-30-7e-5e-f6-27 => Name: Porsche BT 0310 # bc-30-7e-8c-22-cb => Name: Audi MMI 1193 # 2C-DC-AD-BB-2F-25 => Name: PORSCHE # 00-1e-43-14-f0-68 => Name: Audi MMI 4365 # 9C:DF:03:D3:C0:17 => Name: Benz S600L # 00:0A:08:51:1E:E7 => Name: BMW530 # 00-04-79-00-06-bc => Name: radius HP-BTL01 # 28-A1-83-94-90-AE => Name: VW Radio # 24-df-6a-f4-0a-7e => Name: HUAWEI WATCH # 30-c3-d9-8d-5b-83 => Name: VW RadioBin [INTEROP_NOT_UPDATE_AVRCP_PAUSED_TO_REMOTE] BC:30:7E = Address_Based 2C:DC:AD = Address_Based 00:1E:43 = Address_Based 9C:DF:03 = Address_Based 00:0A:08 = Address_Based 00:04:79 = Address_Based 28:A1:83 = Address_Based 24:df:6a = Address_Based 30:C3:D9 = Address_Based Audi = Name_Based Porsche = Name_Based # 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. # 00:23:3D => Name: volkswagen carkit [INTEROP_PHONE_POLICY_INCREASED_DELAY_CONNECT_OTHER_PROFILES] 00:23:3D = Address_Based # 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. # 10:4F:A8 => Name: h.ear (MDR-EX750BT) [INTEROP_PHONE_POLICY_REDUCED_DELAY_CONNECT_OTHER_PROFILES] 10:4F:A8 = Address_Based # 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. # 00:15:83 => Name: Beiqi Carkit # 2a:eb:00 => Name: BIAC Carkit # 30:53:00 => Name: BIAC series # 00:17:53 => Name: ADAYO Carkit # 40:ef:4c => Name: Road Rover Carkit # 00:07:04 => Name: Tiguan RNS315 [INTEROP_HFP_FAKE_INCOMING_CALL_INDICATOR] 00:15:83 = Address_Based 2a:eb:00 = Address_Based 30:53:00 = Address_Based 00:17:53 = Address_Based 40:ef:4c = Address_Based 00:07:04 = Address_Based 18:48:ca = Address_Based # 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. # f4:15:fd => Name: Rongwei 360 Car [INTEROP_HFP_SEND_CALL_INDICATORS_BACK_TO_BACK] f4:15:fd = Address_Based 94:B2:CC:52 = Address_Based 94:B2:CC:4C = Address_Based # 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] Geely_BT = Name_Based #Some LE mouses need preferred connection parameters [INTEROP_ENABLE_PREFERRED_CONN_PARAMETER] Microsoft Bluetooth Mouse = Name_Based # Some CKs drop SCO connection immediately after accept, # Retry setup SCO once for those remote devices. [INTEROP_RETRY_SCO_AFTER_REMOTE_REJECT_SCO] Bose Mini II SoundLink = Name_Based Honda HFT = Name_Based HAVAL M6 = Name_Based # 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. # BD_ADDR: 00:09:93:a6:c5:4d => Name: VW Radio [INTEROP_DELAY_SCO_FOR_MO_CALL] 00:09:93 = Address_Based # 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] RK-Bluetooth keyboard = Name_Based CK87BT = Name_Based 0x05ac-0x0255 = Vndr_Prdt_Based # 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] 48:eb:62 = Address_Based # Disable auto repairing [INTEROP_AUTO_RETRY_PAIRING] 9c:df:03 = Address_Based # Disable Name Request [INTEROP_DISABLE_NAME_REQUEST] d4:7a:e2 = Address_Based # AVRCP 1_4 Only device [INTEROP_AVRCP_1_4_ONLY] 48:f0:7b = Address_Based 90:03:b7 = Address_Based 28:A1:83 = Address_Based 64:d4:bd = Address_Based fc:35:e6 = Address_Based 00:17:53 = Address_Based 9c:8d:7c = Address_Based 0c:d9:c1 = Address_Based # 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] 00:0a:08 = Address_Based 9c:df:03 = Address_Based 34:38:fe = Address_Based # Disable Sniff [INTEROP_DISABLE_SNIFF] 44:ea:d8 = Address_Based # HFP AT+BIND missing [INTEROP_SLC_SKIP_BIND_COMMAND] 94:b2:cc:30 = Address_Based # 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] 08:9b:f1 = Address_Based 20:be:cd = Address_Based 30:34:22 = Address_Based 3c:5c:f1 = Address_Based 40:47:5e = Address_Based 50:27:a9 = Address_Based 64:97:14 = Address_Based 64:c2:69 = Address_Based 68:4a:76 = Address_Based 6c:ae:f6 = Address_Based 78:76:89 = Address_Based 78:d6:d6 = Address_Based 84:70:d7 = Address_Based 98:ed:7e = Address_Based 9c:0b:05 = Address_Based 9c:57:bc = Address_Based 9c:a5:70 = Address_Based a0:8e:24 = Address_Based ac:ec:85 = Address_Based b4:20:46 = Address_Based b4:b9:e6 = Address_Based c0:36:53 = Address_Based c4:f1:74 = Address_Based c8:b8:2f = Address_Based c8:e3:06 = Address_Based d4:05:de = Address_Based d4:3f:32 = Address_Based ec:74:27 = Address_Based f0:21:e0 = Address_Based f0:b6:61 = Address_Based fc:3f:a6 = Address_Based # some device may have problem in reconnect flow, need we initiate connection after signalling timeout [INTEROP_IGNORE_DISC_BEFORE_SIGNALLING_TIMEOUT] 00:e0:4c = Address_Based 00:9e:c8 = Address_Based # Certain devices have issue where they cannot handle ATT traffic during SMP key exchange. # For those devices, queued ATT writes are delayed until after both encryption complete and # SMP key exchange completed. [INTEROP_SUSPEND_ATT_TRAFFIC_DURING_PAIRING] ORN = Name_Based EPG = Name_Based # Some HID devices have more than one HID services, this rule ask the stack to connect to the # specify one. # 0X046D-0XBB00 - Logitech CASA Pop-Up Touch SKU1 # 0X046D-0XBB01 - Logitech CASA Pop-Up Touch SKU2 [INTEROP_MULTIPLE_HOGP_SERVICE_CHOOSE_THIRD] 0X046D-0XBB00 = Vndr_Prdt_Based 0X046D-0XBB01 = Vndr_Prdt_Based # Some A2DP sink devices don't respond SDP request during A2DP reconnection. Skip SDP for # these devices. [INTEROP_A2DP_SKIP_SDP_DURING_RECONNECTION] CANZ = Name_Based BSK30 = Name_Based BSK10 = Name_Based