MiUI 10 AAC Support?

Search This thread

C0nvert

Senior Member
Oct 22, 2013
67
2
Berlin
Hey Guys i finally get my MI 9 and i'm very happy with it.
But one Problem is a real Dealbreaker for me, the AAC Support for my AirPods.

I had before a OnePlus 3 with Oxygen (Oreo Based).
The System auto detects and uses AAC as the default Codec.
But with the MI 9 and MIUI the system only uses SBC wich is a huge quality loss.

Is there a Change to change it back to AAC ?
Root, Magisk ?
Changing in Devolper Settings don't work.
 

Jiatai

Member
Jun 28, 2017
18
4
New Taipei City
You don't even need to root your phone to get AAC support on MIUI 10, there's an option to turn it on.
It won't automatically turn on due to compatible problem.


Bluetooth->
Paired Device->
" > " button->
Turn the option on->
Done
 

Attachments

  • Screenshot_2019-04-26-14-18-55-561_com.android.settings.png
    Screenshot_2019-04-26-14-18-55-561_com.android.settings.png
    106.2 KB · Views: 7,353
Last edited:

notxx

Member
Feb 26, 2018
12
4
AAC support in MIUI is tricky. they used some kind of blacklist/whitelist disabling some headphone's AAC functionality.
if you have a headphone in the blacklist, the AAC option in #2 would disappear...
just modify the /system/etc/bluetooth/interop_database.conf add your headphone, or use magisk module to modify it.
 

C0nvert

Senior Member
Oct 22, 2013
67
2
Berlin
AAC support in MIUI is tricky. they used some kind of blacklist/whitelist disabling some headphone's AAC functionality.
if you have a headphone in the blacklist, the AAC option in #2 would disappear...
just modify the /system/etc/bluetooth/interop_database.conf add your headphone, or use magisk module to modify it.

I hope you talking about these Steps?

  1. Find your Bluetooth Device MAC Adress , something like: XX:XX:XX:XX:XX:XX
  2. Write only the first 6 Numbers of it.
  3. Disable Bluetooth
  4. Go to "/system/etc/bluetooth/interop_database.conf"
  5. Search for "[interop_enable_acc_codec]" and insert below this:
  6. XX:XX:XX = Address_Based

Can someone maybe upload his interop_database.conf from a MI 9 ?
I need to wait 10 days till i can unlock my Phone.
In the meantime i would go through the interop_database.conf, to see how it is build up.
 
Last edited:
  • Like
Reactions: Sage and DeLaLuz22

Jiatai

Member
Jun 28, 2017
18
4
New Taipei City
I hope you talking about these Steps?

  1. Find your Bluetooth Device MAC Adress , something like: XX:XX:XX:XX:XX:XX
  2. Write only the first 6 Numbers of it.
  3. Disable Bluetooth
  4. Go to "/system/etc/bluetooth/interop_database.conf"
  5. Search for "[interop_enable_acc_codec]" and insert below this:
  6. XX:XX:XX = Address_Based

Can someone maybe upload his interop_database.conf from a MI 9 ?
I need to wait 10 days till i can unlock my Phone.
In the meantime i would go through the interop_database.conf, to see how it is build up.

Here u are
Code:
# 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: Maximum length of the line should not be more than 1023 characters.
# Note 3: Line started with the # is treated as comments.
# Note 4: Comment lines in between the entries are not allowed.
# Note 5: 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
##
#   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( 2bytes 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
# ******************************* 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

# 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
00:09:93 = Address_Based
50:65:83 = Address_Based
00:1E:7C = Address_Based
C8:84:47 = Address_Based
D0:8A:55 = Address_Based

# Some HID devices have proven problematic behaviour if SDP is initiated again
# while HID connection is in progress or if more than 1 SDP connection is created
# with those HID devices rsulting in issues of connection failure with such devices.
# To avoid degrading the user experience with those devices, SDP is not attempted
# as part of pairing process.
[INTEROP_DISABLE_SDP_AFTER_PAIRING]
04:0C:CE = Address_Based
00:07:61 = Address_Based
00:1D:D8 = Address_Based
00:1F:20 = Address_Based
6C:5D:63 = Address_Based
28:18:78 = Address_Based
60:45:BD = Address_Based
58:71:33 = Address_Based
00:90:E1 = Address_Based
00:1B:DC = Address_Based
C4:7D:CC = Address_Based
7C:1C:4E = Address_Based
00:09:93 = Address_Based
50:65:83 = Address_Based
00:1E:7C = Address_Based
C8:84:47 = Address_Based
D0:8A:55 = Address_Based
Apple Magic Mouse = Name_Based
Bluetooth Laser Travel Mouse = Name_Based
Microsoft Bluetooth Notebook Mouse 5000 = Name_Based
Logitech MX Revolution Mouse = Name_Based
Microsoft Sculpt Touch Mouse = Name_Based
Tero's Game Controller = Name_Based
0x004C = Manufacturer_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

# 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]
MB Bluetooth = Name_Based

# Fallback to AVRCP version 1.4 for remote to initiate browse connection
[INTEROP_STORE_REMOTE_AVRCP_VERSION_1_4]
00:02:5B:4A = Address_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
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
FC:A8:9A = Address_Based
F4:E0:11 = Address_Based
00:1b:66 = Address_Based
00:25:DB = Address_Based
9C:43:1E = Address_Based
00:16:58 = Address_Based
QY7 = Name_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
# role switch collision(1more active headset E8:07:bF)
[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
E8:07:bF = Address_Based
00:23:7F = Address_Based
00:25:DB = 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_verona::ac:7a:4d, 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)
# 4. customer feedback (Acura HFT::F4:5E:AB)
[INTEROP_DISABLE_AAC_CODEC]
28:A1:83 = Address_Based
AC:7A:4D = Address_Based
28:A1:83 = Address_Based
A0:14:3D = Address_Based
90:03:B7 = Address_Based
00:21:3c = Address_Based
00:1D:86 = Address_Based
9C:DF:03 = Address_Based
E0:75:0A = Address_Based
48:F0:7B = Address_Based
04:52:C7 = Address_Based
E8:EB:11 = Address_Based
88:C2:55 = Address_Based
A0:F6:FD = Address_Based
F4:5E:AB = Address_Based
C4:49:BB = Address_Based
48:D6:D5 = Address_Based
00:E0:4C = Address_Based
50:65:83 = Address_Based
30:C3:D9 = Address_Based
00:E0:4C = Address_Based
Honda HFT = Name_Based
Acura HFT = Name_Based
abramtek M1 = Name_Based

#Enable AAC encoder only for whitelist devices
#0x00-87-63-11-11-4a  ==> Name: AirDots Basic(L&R)
#0x9c-43-1e-05-6d-e1  ==> Name: TicPods Free
#0x64-5a-ed-dd-66-e3  ==> Name: BeatsX
#0xC4-45-67-18-23-F6  ==> ATH-CKR35BT
#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
#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³
#20:3C:AE:CB:1C:78    ==> Name: Beats Solo³
#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
#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  ==> Naae: HATS_00025B0085E9

[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
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

# Xiaomi Add
a8:5c:2c = Address_Based
70:87:63 = Address_Based
00:87:63 = Address_Based
9c:43:1e = Address_Based
MI AIRDOTS BASIC_L = Name_Based
MI AIRDOTS BASIC_R = Name_Based
TicPods Free = Name_Based
64:5A:ED = Address_Based
BeatsX = Name_Based
c4:45:67 = Address_Based
ATH-CKR35BT = Name_Based
WF-1000X = Name_Based
QCY-T1_R = Name_Based
1C:52:16 = Address_Based
Beoplay H9i = Name_Based
Beoplay e8 = Name_Based
00:09:A7 = Address_Based
QCY-Q29_R = Name_Based
QCY-Q29_L = Name_Based
LAXUN A+ = Name_Based
00:11:67 = Address_Based
Losence I3 V4.1 = Name_Based
00:B2:67 = Address_Based
D0:81:7A = Address_Based
Powerbeats³ = Name_Based
00:23:01 = Address_Based
00:23:03 = Address_Based
EDIFIER W280BT = Name_Based
18:81:0E = Address_Based
Mi Bluetooth Headphones = Name_Based
F8:DF:15 = Address_Based
40:26:19 = Address_Based
28:FF:3C = Address_Based
LG HBS-1100 = Name_Based
1C:52:17 = Address_Based
00:42:79 = Address_Based
Funcl AI(R) = Name_Based
60:8C:4A = Address_Based
Philips SHB8850NC = Name_Based
6C:5A:B5 = Address_Based
EDIFIER W360BT = Name_Based
00:00:01 = Address_Based
Sabbat E1 = Name_Based
20:00:00 = Address_Based
10:00:00 = Address_Based
11:11:22 = Address_Based
28:f5:37 = Address_Based
78:A7:EB = Address_Based
Mi True Wireless Earphones = Name_Based
QCY-T1_L = Name_Based
CC:46:67 = Address_Based
MID = Name_Based
Bluetooth Neckband Earphones = Name_Based
5C:C6:E9 = Address_Based
EDIFIER W200BT经典版 = Name_Based
DC:D3:A2 = Address_Based
Beats X = Name_Based
94:BF:2D = Address_Based
88:6B:6E = Address_Based
Beats Studio³ = Name_Based
ATH SR30BT = Name_Based
E8:EC:A3 = Address_Based
Funcl W1 = Name_Based
00:87:63 = Address_Based
00:87:18 = Address_Based
FlyPods = Name_Based
F8:C3:9E = Address_Based
D0:D7:83 = Address_Based
BC:E1:43 = Address_Based
Astrotec S60 = Name_Based
80:8A:A8 = Address_Based
08:E6:89 = Address_Based
E8:36:17 = Address_Based
74:c1:4f = Address_Based
FreeBuds 2 = Name_Based
Beoplay H4 = Name_Based
FlyPods Lite = Name_Based
B4:86:55 = Address_Based
WF-SP700N = Name_Based
70:26:05 = Address_Based
SRS-XB10 = Name_Based
B8:D5:0B = Address_Based
Jabra Elite 65t = Name_Based
74:5C:4B = Address_Based
18:F1:D8 = Address_Based
WI-SP500 = Name_Based
00:02:22 = Address_Based
H8T = Name_Based
FiiO BTR3 = Name_Based
40:ED:98 = Address_Based
LE-BOSE QC35II = Name_Based
28:11:A5 = Address_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]
00:00:7f = Address_Based
00:00:31 = Address_Based
00:00:41 = Address_Based
00:00:6a = Address_Based
00:00:7f = Address_Based
00:01:0a = Address_Based
00:00:3d = Address_Based
00:17:53 = Address_Based
Discovery Sport = Name_Based
Jaguar XE = Name_Based
Elantra = Name_Based

# 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 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
[INTEROP_DELAY_SCO_FOR_MT_CALL]
04:52:c7 = 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
[INTEROP_DISABLE_CODEC_NEGOTIATION]
00:08:8a = Address_Based
JABRA EASYGO = 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
[INTEROP_DISABLE_PLAYER_APPLICATION_SETTING_CMDS]
00:09:93 = Address_Based
74:6f:f7 = Address_Based
A0:56:B2 = 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

#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

#Some remote can't parse specific codec and state error, it may set config with new codec which
#itself can't support, hide those codec for it.
#Nissian :: 48:F0:7B:A3:5E:8C for aptx-adaptive
[INTEROP_A2DP_HIDE_AA_SPECIFIC_CODEC]
48:f0:7b = Address_Based
 
Last edited:
  • Like
Reactions: C0nvert

notxx

Member
Feb 26, 2018
12
4
I hope you talking about these Steps?

  1. Find your Bluetooth Device MAC Adress , something like: XX:XX:XX:XX:XX:XX
  2. Write only the first 6 Numbers of it.
  3. Disable Bluetooth
  4. Go to "/system/etc/bluetooth/interop_database.conf"
  5. Search for "[interop_enable_acc_codec]" and insert below this:
  6. XX:XX:XX = Address_Based

Can someone maybe upload his interop_database.conf from a MI 9 ?
I need to wait 10 days till i can unlock my Phone.
In the meantime i would go through the interop_database.conf, to see how it is build up.

yup. but i just added "Pixel Buds = Name_Based" to add Pixel Buds into the whitelist. maybe without been blacklisted or whitelisted, the AAC option would be there in the bluetooth details.
 

C0nvert

Senior Member
Oct 22, 2013
67
2
Berlin
yup. but i just added "Pixel Buds = Name_Based" to add Pixel Buds into the whitelist. maybe without been blacklisted or whitelisted, the AAC option would be there in the bluetooth details.
So the name of your Bluetooth Speaker are "Pixel Buds" too?
(I don't mean the actual Model Name like "Pixel Buds" or "Airpods"
More the Bluetooth Name you can decide yourself.)
 

seemebreakthis

Senior Member
Jun 6, 2018
173
52
Xiaomi Mi 11
Reviving an old thread...

My headphone supports AAC. But I tried

Adding the MAC address into the whitelist as described above - and found out it is already there in the list

Going to developer options in settings to try and change the Bluetooth attributes there. But the settings won't stick and always reverts back to "system default" when not connected, or "sbc" when connected

So I am stuck with SBC connection. My device is beoplay E6 if that makes a difference.

Any help appreciated !!
 

Jiatai

Member
Jun 28, 2017
18
4
New Taipei City
Reviving an old thread...

My headphone supports AAC. But I tried

Adding the MAC address into the whitelist as described above - and found out it is already there in the list

Going to developer options in settings to try and change the Bluetooth attributes there. But the settings won't stick and always reverts back to "system default" when not connected, or "sbc" when connected

So I am stuck with SBC connection. My device is beoplay E6 if that makes a difference.

Any help appreciated !!

Do u have root?
If no, then there's no way till they support AAC on Stable rom
 

seemebreakthis

Senior Member
Jun 6, 2018
173
52
Xiaomi Mi 11
Can finally see the AAC option. Don't know if I just missed it before or if one of the newer ROMs contains a fix. Anyway it is within the paired devices list, you tap on the right Arrow on the row that shows your device. And the AAC option is on the submenu that opens.

Anyway I now have EEA 10.2.30.0
 

gerhard_wa

Senior Member
Dec 6, 2010
410
94
Can finally see the AAC option. Don't know if I just missed it before or if one of the newer ROMs contains a fix. Anyway it is within the paired devices list, you tap on the right Arrow on the row that shows your device. And the AAC option is on the submenu that opens.

Anyway I now have EEA 10.2.30.0

Did this setting surface after you updated to .30? Did you get .30 over the air? Have you unlocked the bootloader? Many Qs, I know! ?
 

seemebreakthis

Senior Member
Jun 6, 2018
173
52
Xiaomi Mi 11
Did this setting surface after you updated to .30? Did you get .30 over the air? Have you unlocked the bootloader? Many Qs, I know! ?

... Like I mentioned, I am not actually sure if .30 is what fixed the problem. Pretty sure though the AAC option wasn't available way back when I first got my phone. But that was when I had .14 or something like that.

Did several ROM updates along the way, but I wasn't paying attention to this setting until after I updated to .30. and voila, it just appears ! And of course I enabled it right away for my earphones.

Not OTA, I downloaded the ROM and did a manual install.

Yes unlocked and rooted.
 

ftomas

Senior Member
Mar 22, 2007
58
3
Hi
I Can not get it to work on not pro with miui.eu 12.3 with Mi Air2 SE...
I try to put 16:81:77 = address_based
Also with name based... But nothing

Any help
 

Slowking

Member
Jul 26, 2011
43
11
Sadly doesn't seem to work on MIUI 12.
The MAC adress of my device (Momentum True Wireless 2) was actually already in the list. I would assume because other Sennheiser headphones share the first three spots of the MAC.
But for good measure I added it name based, via a magisk module and that did not help either.

It's a bit frustrating. My old Bose Soundsport Free connect via AAC no problem, but the MTW2 just won't.

Any idea on how to fix this?
 

ronnycoleman

Senior Member
Apr 2, 2015
70
18
MIUI 12(.5) doesn't even have a /system/etc/bluetooth/interop_database.conf

But the whitelist must be somewhere else. Apple Airpods are using AAC while Samsung Galaxy Buds+ are only allowed SBC although I enabled AAC for them.

Any idea?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    AAC support in MIUI is tricky. they used some kind of blacklist/whitelist disabling some headphone's AAC functionality.
    if you have a headphone in the blacklist, the AAC option in #2 would disappear...
    just modify the /system/etc/bluetooth/interop_database.conf add your headphone, or use magisk module to modify it.
    2
    AAC support in MIUI is tricky. they used some kind of blacklist/whitelist disabling some headphone's AAC functionality.
    if you have a headphone in the blacklist, the AAC option in #2 would disappear...
    just modify the /system/etc/bluetooth/interop_database.conf add your headphone, or use magisk module to modify it.

    I hope you talking about these Steps?

    1. Find your Bluetooth Device MAC Adress , something like: XX:XX:XX:XX:XX:XX
    2. Write only the first 6 Numbers of it.
    3. Disable Bluetooth
    4. Go to "/system/etc/bluetooth/interop_database.conf"
    5. Search for "[interop_enable_acc_codec]" and insert below this:
    6. XX:XX:XX = Address_Based

    Can someone maybe upload his interop_database.conf from a MI 9 ?
    I need to wait 10 days till i can unlock my Phone.
    In the meantime i would go through the interop_database.conf, to see how it is build up.
    1
    I hope you talking about these Steps?

    1. Find your Bluetooth Device MAC Adress , something like: XX:XX:XX:XX:XX:XX
    2. Write only the first 6 Numbers of it.
    3. Disable Bluetooth
    4. Go to "/system/etc/bluetooth/interop_database.conf"
    5. Search for "[interop_enable_acc_codec]" and insert below this:
    6. XX:XX:XX = Address_Based

    Can someone maybe upload his interop_database.conf from a MI 9 ?
    I need to wait 10 days till i can unlock my Phone.
    In the meantime i would go through the interop_database.conf, to see how it is build up.

    Here u are
    Code:
    # 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: Maximum length of the line should not be more than 1023 characters.
    # Note 3: Line started with the # is treated as comments.
    # Note 4: Comment lines in between the entries are not allowed.
    # Note 5: 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
    ##
    #   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( 2bytes 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
    # ******************************* 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
    
    # 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
    00:09:93 = Address_Based
    50:65:83 = Address_Based
    00:1E:7C = Address_Based
    C8:84:47 = Address_Based
    D0:8A:55 = Address_Based
    
    # Some HID devices have proven problematic behaviour if SDP is initiated again
    # while HID connection is in progress or if more than 1 SDP connection is created
    # with those HID devices rsulting in issues of connection failure with such devices.
    # To avoid degrading the user experience with those devices, SDP is not attempted
    # as part of pairing process.
    [INTEROP_DISABLE_SDP_AFTER_PAIRING]
    04:0C:CE = Address_Based
    00:07:61 = Address_Based
    00:1D:D8 = Address_Based
    00:1F:20 = Address_Based
    6C:5D:63 = Address_Based
    28:18:78 = Address_Based
    60:45:BD = Address_Based
    58:71:33 = Address_Based
    00:90:E1 = Address_Based
    00:1B:DC = Address_Based
    C4:7D:CC = Address_Based
    7C:1C:4E = Address_Based
    00:09:93 = Address_Based
    50:65:83 = Address_Based
    00:1E:7C = Address_Based
    C8:84:47 = Address_Based
    D0:8A:55 = Address_Based
    Apple Magic Mouse = Name_Based
    Bluetooth Laser Travel Mouse = Name_Based
    Microsoft Bluetooth Notebook Mouse 5000 = Name_Based
    Logitech MX Revolution Mouse = Name_Based
    Microsoft Sculpt Touch Mouse = Name_Based
    Tero's Game Controller = Name_Based
    0x004C = Manufacturer_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
    
    # 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]
    MB Bluetooth = Name_Based
    
    # Fallback to AVRCP version 1.4 for remote to initiate browse connection
    [INTEROP_STORE_REMOTE_AVRCP_VERSION_1_4]
    00:02:5B:4A = Address_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
    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
    FC:A8:9A = Address_Based
    F4:E0:11 = Address_Based
    00:1b:66 = Address_Based
    00:25:DB = Address_Based
    9C:43:1E = Address_Based
    00:16:58 = Address_Based
    QY7 = Name_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
    # role switch collision(1more active headset E8:07:bF)
    [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
    E8:07:bF = Address_Based
    00:23:7F = Address_Based
    00:25:DB = 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_verona::ac:7a:4d, 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)
    # 4. customer feedback (Acura HFT::F4:5E:AB)
    [INTEROP_DISABLE_AAC_CODEC]
    28:A1:83 = Address_Based
    AC:7A:4D = Address_Based
    28:A1:83 = Address_Based
    A0:14:3D = Address_Based
    90:03:B7 = Address_Based
    00:21:3c = Address_Based
    00:1D:86 = Address_Based
    9C:DF:03 = Address_Based
    E0:75:0A = Address_Based
    48:F0:7B = Address_Based
    04:52:C7 = Address_Based
    E8:EB:11 = Address_Based
    88:C2:55 = Address_Based
    A0:F6:FD = Address_Based
    F4:5E:AB = Address_Based
    C4:49:BB = Address_Based
    48:D6:D5 = Address_Based
    00:E0:4C = Address_Based
    50:65:83 = Address_Based
    30:C3:D9 = Address_Based
    00:E0:4C = Address_Based
    Honda HFT = Name_Based
    Acura HFT = Name_Based
    abramtek M1 = Name_Based
    
    #Enable AAC encoder only for whitelist devices
    #0x00-87-63-11-11-4a  ==> Name: AirDots Basic(L&R)
    #0x9c-43-1e-05-6d-e1  ==> Name: TicPods Free
    #0x64-5a-ed-dd-66-e3  ==> Name: BeatsX
    #0xC4-45-67-18-23-F6  ==> ATH-CKR35BT
    #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
    #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³
    #20:3C:AE:CB:1C:78    ==> Name: Beats Solo³
    #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
    #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  ==> Naae: HATS_00025B0085E9
    
    [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
    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
    
    # Xiaomi Add
    a8:5c:2c = Address_Based
    70:87:63 = Address_Based
    00:87:63 = Address_Based
    9c:43:1e = Address_Based
    MI AIRDOTS BASIC_L = Name_Based
    MI AIRDOTS BASIC_R = Name_Based
    TicPods Free = Name_Based
    64:5A:ED = Address_Based
    BeatsX = Name_Based
    c4:45:67 = Address_Based
    ATH-CKR35BT = Name_Based
    WF-1000X = Name_Based
    QCY-T1_R = Name_Based
    1C:52:16 = Address_Based
    Beoplay H9i = Name_Based
    Beoplay e8 = Name_Based
    00:09:A7 = Address_Based
    QCY-Q29_R = Name_Based
    QCY-Q29_L = Name_Based
    LAXUN A+ = Name_Based
    00:11:67 = Address_Based
    Losence I3 V4.1 = Name_Based
    00:B2:67 = Address_Based
    D0:81:7A = Address_Based
    Powerbeats³ = Name_Based
    00:23:01 = Address_Based
    00:23:03 = Address_Based
    EDIFIER W280BT = Name_Based
    18:81:0E = Address_Based
    Mi Bluetooth Headphones = Name_Based
    F8:DF:15 = Address_Based
    40:26:19 = Address_Based
    28:FF:3C = Address_Based
    LG HBS-1100 = Name_Based
    1C:52:17 = Address_Based
    00:42:79 = Address_Based
    Funcl AI(R) = Name_Based
    60:8C:4A = Address_Based
    Philips SHB8850NC = Name_Based
    6C:5A:B5 = Address_Based
    EDIFIER W360BT = Name_Based
    00:00:01 = Address_Based
    Sabbat E1 = Name_Based
    20:00:00 = Address_Based
    10:00:00 = Address_Based
    11:11:22 = Address_Based
    28:f5:37 = Address_Based
    78:A7:EB = Address_Based
    Mi True Wireless Earphones = Name_Based
    QCY-T1_L = Name_Based
    CC:46:67 = Address_Based
    MID = Name_Based
    Bluetooth Neckband Earphones = Name_Based
    5C:C6:E9 = Address_Based
    EDIFIER W200BT经典版 = Name_Based
    DC:D3:A2 = Address_Based
    Beats X = Name_Based
    94:BF:2D = Address_Based
    88:6B:6E = Address_Based
    Beats Studio³ = Name_Based
    ATH SR30BT = Name_Based
    E8:EC:A3 = Address_Based
    Funcl W1 = Name_Based
    00:87:63 = Address_Based
    00:87:18 = Address_Based
    FlyPods = Name_Based
    F8:C3:9E = Address_Based
    D0:D7:83 = Address_Based
    BC:E1:43 = Address_Based
    Astrotec S60 = Name_Based
    80:8A:A8 = Address_Based
    08:E6:89 = Address_Based
    E8:36:17 = Address_Based
    74:c1:4f = Address_Based
    FreeBuds 2 = Name_Based
    Beoplay H4 = Name_Based
    FlyPods Lite = Name_Based
    B4:86:55 = Address_Based
    WF-SP700N = Name_Based
    70:26:05 = Address_Based
    SRS-XB10 = Name_Based
    B8:D5:0B = Address_Based
    Jabra Elite 65t = Name_Based
    74:5C:4B = Address_Based
    18:F1:D8 = Address_Based
    WI-SP500 = Name_Based
    00:02:22 = Address_Based
    H8T = Name_Based
    FiiO BTR3 = Name_Based
    40:ED:98 = Address_Based
    LE-BOSE QC35II = Name_Based
    28:11:A5 = Address_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]
    00:00:7f = Address_Based
    00:00:31 = Address_Based
    00:00:41 = Address_Based
    00:00:6a = Address_Based
    00:00:7f = Address_Based
    00:01:0a = Address_Based
    00:00:3d = Address_Based
    00:17:53 = Address_Based
    Discovery Sport = Name_Based
    Jaguar XE = Name_Based
    Elantra = Name_Based
    
    # 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 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
    [INTEROP_DELAY_SCO_FOR_MT_CALL]
    04:52:c7 = 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
    [INTEROP_DISABLE_CODEC_NEGOTIATION]
    00:08:8a = Address_Based
    JABRA EASYGO = 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
    [INTEROP_DISABLE_PLAYER_APPLICATION_SETTING_CMDS]
    00:09:93 = Address_Based
    74:6f:f7 = Address_Based
    A0:56:B2 = 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
    
    #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
    
    #Some remote can't parse specific codec and state error, it may set config with new codec which
    #itself can't support, hide those codec for it.
    #Nissian :: 48:F0:7B:A3:5E:8C for aptx-adaptive
    [INTEROP_A2DP_HIDE_AA_SPECIFIC_CODEC]
    48:f0:7b = Address_Based