Archive for the ‘Release’ Category.
It’s been well over two months since the last BlueZ release, so we’re quite overdue for another one. BlueZ 5.31 contains fixes to many different areas, including networking, GATT, HID, A2DP and AVRCP. Feature-wise we’ve got support for security flags for the GATT database, allowing fine-grained security level control for D-Bus clients using the GATT D-Bus API. We’ve also got a new experimental device discovery filter interface which allows filtering for a specific remote service, RSSI threshold or transport (LE vs. BR/EDR). Another new experimental interface is for LE advertising, which also brings the LE peripheral role closer to feature completion on a D-Bus level.
On the Android side, all PTS documents have been updated to cover the latest PTS 6.1 version.
The highlight of this release is the completion of the GATT D-Bus APIs. We’ve now got both the client and server functionality in place, however it’s still behind the -E (–experimental) command line switch. The API is documented in doc/gatt-api.txt and there are several test tools for it in the tree (even bluetoothctl has support for it). Another new (and still experimental) D-Bus API that debuts with this release is one for managing LE Advertising, i.e. acting in peripheral role. The API is documented in doc/advertising-api.txt.
Besides the new features, there are several fixes to AVCTP, AVDTP & AVRCP. There’s also a fix for C++ compiler compatibility with the library headers as well as a fix for device information not being stored in certain corner cases.
On the Android side a notable addition is support for the Android 5.1 GATT MTU exchange API.
This is a comparatively large release with over a month and 475 commits since 5.28. There have been lots of fixes to the Android side, mainly to HFP & HSP, but also to GATT. The Android qualification documentation and results have also been updated for PTS version 6.0. Our internal GATT library (used both by ‘normal’ BlueZ as well as the Android version) received lots of updates for this release. The GATT client and server D-Bus APIs (which use the library) also reached completion, although they’re still behind the –experimental command line switch. The APIs are documented in doc/gatt-api.txt. Other notable changes are a fix for AVCTP key repeat timeout as well as added support for the Multi Profile Specification (MPS).
Here’s the first BlueZ release in 2015. Most of the changes since the last one are bug fixes, but there’s actually quite many of them this time, including:
- Fixes to GATT service discovery & probing
- Fix for bearer selection with dual-mode devices
- Fix potential crash when removing devices
- Fix issue with incomplete names in EIR data
- Fix parsing GATT name characteristics
- Fix AVCTP long press & key repetition handling
- Fixes for GATT notification handling
Besides bug fixes we’ve now also got more extensive unit tests for new GATT code as well as better HCI decoders in btmon for some less used 4.1 and 4.2 features. The hid2hci tool gained support for CSR 8510 A10 devices and the hex2hcd tool (for Broadcom firmware) received a complete rewrite with better command handling.
Here comes the traditional x-mas release! BlueZ 5.27 consists mostly of bug fixes to areas such as GATT and mgmt (the interface through which bluetoothd talks to the kernel). The emulation framework has also received many new features, paving the way for more extensive test automation. On the Android side we’ve continued perfecting 5.0 (Lollipop) support, a notable addition being support for needed SELinux policies.
This release is for the most part a bug-fix release with fixes in A2DP and OBEX related functionality, but there’s also an added features for get/set reports for HID over GATT as well as Phonebook Access Profile 1.2 support
On the Android side the 5.0 (Lollipop) support is now starting to be fairly mature with full PTS test runs either with PTS 5.3 or 6.0.
The Bluetooth 4.2 specification went public in early December and BlueZ 5.26 is the first release with support for its features. Perhaps the most notable one of these is Low Energy Secure Connections which will require a 3.19 or newer kernel. This feature brings LE pairing to the same level of security as it has been for BR/EDR. LE SC also brings along with it so-called cross-transport pairing, which means that you only need to pair once over LE or BR/EDR to get the necessary keys for both transports between two dual-mode devices.
This release contains various improvements to MAP and PBAP support. There are also various GATT related fixes. We’ve also got a fix for a race condition which could occasionally cause LE connection/pairing failures. The fix will work for kernels from 3.13 onward (for older kernels a proper fix isn’t really feasible).
The Android Lollipop (5.0) source code was released roughly a week ago, and we’re happy to announce that this is the first BlueZ version with initial support for it. We’ll be doing various improvements and fixes along with subsequent BlueZ releases but starting with 5.25 basic things are already working.
It’s also notable that PTS 5.3 is now fully supported with this release. All tests are either passing or errata has been filed for them (all of which is documented in android/pts-*.txt).
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.