This release fixes a bug with frame length calculation for dual-channel mode operation. It also includes a fix for preventing an overflow of an internal frame length variable.
This release consists for the most part of cleanups and minor fixes, however there are some new additions too in the form of Phonebook Access Profile 1.2 and Message Access Profile 1.2 features. On the Android side we’ve got improved automated test coverage as well as several new Android system properties for Bluetooth customization.
BlueZ 5.23 release also provides updated documentation for Bluetooth qualification using PTS 5.2 test system. Documentation about PICS, PIXIT and test cases instructions are provided. The current set contains 944 test cases for BlueZ for Android.
This is mostly a bug-fix release with fixes for concurrent authorization attempts (for untrusted devices), HID, uHID, OBEX, MAP and AVRCP. We now also have better support for AVCTP/AVRCP decoding with btmon.
On the Android side a notable enhancement is the ability to take advantage of kernel whitelist support to enable LE passive scanning (something that’s available from Linux Kernel release 3.17 onward)..
The BlueZ 5.x stack used in Tizen has achieved Bluetooth 4.1 + Low Energy qualification.
The listing is made by Samsung. It covers SDP, L2CAP, GAP, RFCOMM, SPP, AVCTP 1.4, AVDTP 1.3, MCAP, GAP, ATT and SM protocols and profiles.
This release contains several fixes to HID over GATT (HoG) as well as for AVRCP. Feature-wise there are a couple of notable additions debuting with the Linux kernel 3.17 release:
- BR/EDR whitelist support. Starting with Linux kernel 3.17 bluetoothd will no-longer set adapters to connectable by default. Instead, all configured remote devices are added to the kernel whitelist after which the kernel will enable page scanning but only accept connect requests from the whitelist. This effectively reduces the attack surface for unknown devices. When whitelist support is available the general connectable state now follows the discoverable state, meaning discoverable must be enabled for previously unknown devices to be able to connect to us.
- Proper LE passive scanning support. For kernels before 3.17 bluetoothd will use the Start/Stop Discovery commands to perform LE background scanning. This however uses LE active scanning which is both wasteful (causing unneeded Scan Requests) and can cause reconnection issues with devices using direct advertising (e.g. most LE mice). From kernel version 3.17 onward bluetoothd will use proper kernel-side passive scanning, making the background scanning both efficient and more interoperable. The kernel will even use the controller-side whitelist during scanning (if no Resolvable Private Addresses are present), saving even more power.
On the Android side there have been various fixes here and there, but the major areas of change are improved test coverage as well as full GATT over BR/EDR support.
With the BlueZ 5.21 release the support for Android is now fully comparable with Bluedroid. Using BlueZ for Android enables additional features on top of it.
When using Bluedroid, you get support for Bluetooth 4.0 core technology and for HFP 1.5, A2DP 1.2, AVRCP 1.3, PAN, HID, HDP, OPP, MAP, PBAP and GATT profiles.
With BlueZ for Android you get additional support for Bluetooth 4.1 core technology and upgraded profiles including 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 (codec license not included).
This is significant upgrade of features that are additionally supported and fully integrated. BlueZ for Android is a real value add proposition.
For the Bluetooth qualification of Android, the full documentation of PICS, PIXIT and PTS instructions is available available. This makes qualification easy.
Today is the day we celebrate our independence… from bluedroid This is the first BlueZ release that offers full feature parity as a drop-in replacement to what comes as part of Android by default. The biggest latest additions have been HID over GATT (HoG) and Health Device Profile (HDP) support. The development of the Android support is of course by no means over – we’ll continue improving it just like the rest of BlueZ – but the full set of features is now there. It’s also notable that for all of the supported features we have full qualification documentation, from needed PIXIT and PICS values to instructions on how to pass each test case with the PTS.
Besides Android related changes there are also fixes and other improvements throughout the tree. There were several HoG fixes to improve reconnections as well as fixes to bluetoothctl to allow using it for scripting.
An important detail of this release is that it supports several new features that are on their way to the 3.17 kernel (today testable e.g. with the bluetooth-next tree). Perhaps the most important one of these is LE passive scanning. When run on a kernel that supports it, instead of doing a kind of “fake” background scanning using the Start Discovery command, bluetoothd will now tell the kernel the relevant information and the kernel will then commence passive scanning for devices. This is particularly important since active scanning (triggered by Start Discovery) is both wasteful of resources and can cause interoperability issues with devices that use direct advertising (like several LE mice do).