// 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, Peugeot, BMW (MINI10013)
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,00:80:37,00:26:7E

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

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

// Fixed PIN keyboard blacklist. Keyboards should have variable PIN
// The keyboards below have a fixed PIN of 0000, so we will auto pair.
// Note the reverse logic in this case compared to other's in this file
// where its a blacklist for not auto pairing.
FixedPinZerosKeyboardBlacklist=00:0F:F6

// Blacklisting by addition of the address during usage
