| # 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 |
| |
| # 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] |
| com.google.android.apps.youtube.music = Name_Based |
| com.gaana = 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 |