The BlueZ for Android project provides a drop-in replacement for the Bluedroid stack shipped with Android 4.4 (KitKat) and Android 5.0/5.1 (Lollipop). It utitlizes the Bluetooth subsystem of the Linux kernel and provides all Bluetooth HAL interfaces defined by Android. BlueZ for Android is fully compatible with Android's Bluetooth services. No modifications of existing applications or the Bluetooth service itself are required.
Supported Bluetooth profiles
With the KitKat and Lollipop release of Android, the Bluedroid stack provides support for Bluetooth 4.0 core technology and standard profiles including HFP 1.5, A2DP 1.2, AVRCP 1.3, PAN, HID, HDP, OPP, MAP, PBAP and GATT.
With BlueZ for Android for KiKat and Lollipop, this adds support for Bluetooth 4.2 and upgrades to HFP 1.6 + Wideband speech, A2DP 1.3, AVRCP 1.5 and MPS. It also provides full integration for aptX(R) high-quality low-latency codec from CSR.
For end products it is important that the Bluetooth stack pass the Bluetooth qualification. The majority of the qualification test cases are done by the Profile Tuning Suite (PTS). One drawback with Bluedroid is that it does not provide any documentation, instructions or test tools for the Bluetooth qualification. With BlueZ for Android this is different--all needed information about PICS, PIXIT and PTS are publically available and include detailed instructions.
In addition to PTS, the project also provides detailed instructions for the Bluetooth portion of the Google Compliance Test Suite (CTS).
Source availibity and requirements
The source code for BlueZ for Android is part of the upstream GIT repository of BlueZ. Staring with the BlueZ 5.21 release all Android HAL interfaces are provided and also all PTS instructions are included.
The minimum Linux kernel requirement for Bluetooth Classic (BR/EDR) operation is Linux 3.9 with version 1.3 of the Bluetooth management API. For Bluetooth Low Energy (LE) operation it is recommended to use Linux 3.16 with version 1.6 of the Bluetooth management API. Earlier kernel versions provide Bluetooth Low Energy support, but are not feature complete. For Secure Connections support the Linux 3.19 kernel with version 1.8 of the Bluetooth management API is required. The Bluetooth subsytem is available via Linux kernel backports project in case older kernel version are required.