// Do NOT change this file format without updating the parsing logic in
// BluetoothService.java

// This file contains information to prevent auto pairing with Bluetooth devices.
// Blacklisting by vendor prefix address:
// The following companies are included in the list below:
// ALPS (lexus), Murata (Prius 2007, Nokia 616), TEMIC SDS (Porsche, Audi),
// Parrot, Zhongshan General K-mate Electronics, Great Well
// Electronics, Flaircomm Electronics, Jatty Electronics, Delphi,
// Clarion, Novero, Denso (Lexus, Toyota), Johnson Controls (Acura),
// Continental Automotive, Harman/Becker, Panasonic/Kyushu Ten,
// BMW (Motorola PCS), Visteon
AddressBlacklist=00:02:C7,00:16:FE,00:19:C1,00:1B:FB,00:1E:3D,00:21:4F,00:23:06,00:24:33,00:A0:79,00:0E:6D,00:13:E0,00:21:E8,00:60:57,00:0E:9F,00:12:1C,00:18:91,00:18:96,00:13:04,00:16:FD,00:22:A0,00:0B:4C,00:60:6F,00:23:3D,00:C0:59,00:0A:30,00:1E:AE,00:1C:D7,00:80:F0,00:12:8A,00:09:93

// Blacklisting by Exact Name:
ExactNameBlacklist=Motorola IHF1000,i.TechBlueBAND,X5 Stereo v1.3

// Blacklisting by Partial Name (if name starts with)
PartialNameBlacklist=BMW,Audi,Parrot

// Blacklisting by addition of the address during usage
