# 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 blacklist
#   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
##
#   A. Address_Based :  This tag refers to Address based blacklist
#   Input Type       :   Input value should be only 3 to 6 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 blacklist.
#   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 blacklist
#   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 blacklist
#   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 blacklist
#   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 blacklist
#   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 blacklist
#   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
# ******************************* Start of Blacklist 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
#ifdef OPLUS_BUG_COMPATIBILITY
#SuHeng@CONNECTIVITY.BT.AVRCP,#2714937,remove airpods mac address for abs volume
#94:16:25 = Address_Based
#endif /* OPLUS_BUG_COMPATIBILITY */
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

# 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. Blacklist 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

# 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 explictly.
[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 explicity ask for it.
[INTEROP_DISABLE_LE_CONN_PREFERRED_PARAMS]
BSMBB09DS = Name_Based
ELECOM = Name_Based

# Few remote devices do not understand AVRCP version greater than 1.3. For these
# devices, we would like to blacklist them and advertise AVRCP version as 1.3
[INTEROP_ADV_AVRCP_VER_1_3]

# 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.
# B4:E6:2A Name: Lynk & Co
[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
B4:E6:2A = 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 whitelist 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]

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

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

#Enable power level 10 adaptive control in FW side for remote devices
#in this whitelist item.
[INTEROP_ENABLE_PL10_ADAPTIVE_CONTROL]

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

#Disable LPA enhanced power control feature
[INTEROP_DISABLE_LPA_ENHANCED_POWER_CONTROL]

#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_ACCPET_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 WhiteList
# Name Based Format addition must be made with the string having
# Player's package Name (Not Player's dispalyable Name) like below:
# Player's Package Name = Name Based
#
# Like below players are part of our Whitelist
# Youtube(YT) Music = Name Based
# Gaana = Name Based
[INTEROP_BROWSE_PLAYER_WHITE_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. Blacklist these devices
# to not update avrcp paused to them when a2dp is playing.
# This blacklist 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 blacklist 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 blacklist 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.
# Blacklist remote devices to disconnect SCO when active call is
# ended, fake MT call indicator again with some delay.
# This blacklist 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. Blacklist the devices to send call
# indicators back to back.
# This blacklist 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 blacklist, 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

# 00:17:53 => Name: Changan CS55
# send empty CLCC response for some devices when VOIP call is ended and CS call
# is started
[INTEROP_HFP_SEND_OK_FOR_CLCC_AFTER_VOIP_CALL_END]
00:17:53 = Address_Based

# Some remote devices reconnect A2DP if A2DP was disconnected first and
# then HFP was disconnected during ongoing call.
# Add remote device into INTEROP_A2DP_DELAY_DISCONNECT blacklist.
[INTEROP_A2DP_DELAY_DISCONNECT]
E4:76:84 = Address_Based // AirPods
54:2B:8D = Address_Based // AirPods
94:16:25 = Address_Based // AirPods 2
F0:5C:D5 = Address_Based // AirPods Pro