Release of BlueZ 5.38

This release has lots of updates and fixes to the GATT D-Bus API. It should be working considerably better now. A key change to the GATT D-Bus API is that it is now fully conforming to the word of the D-Bus Object Manager specification. Instead of registering each service individually with an Object Manager interface per service path, all application services are now grouped together through a single RegisterApplication call. The details can be found in doc/gatt-api.txt. Besides the D-Bus API change there are also numerous fixes to GATT functionality in general.

Other areas that received fixes in this release are OBEX, AVRCP and 128-bit UUID handling. Feature-wise there isn’t anything groundbreaking, but a notable update is support for the Start Limited Discovery command in the btmgmt tool (this feature debuted with the 4.5 kernel release).


Release of BlueZ 5.37

Here’s the traditional X-mas/end-of-year release of BlueZ. Most of the changes are bug fixes, targeting areas such as GATT and external profile registration. Another large chunk of changes is refactoring to use the same implementation for Android and non-Android LE profiles (e.g. HoG). With this release btattach (the successor to hciattach) finally has a manual page and will get installed by default. There’s also a new feature that will become available together with the Linux kernel 4.5 version: support for a new logging channel which lets btmon interleave HCI and bluetoothd logs into the same output. For those wanting to experiment with this feature already now, you can find it e.g. in the bluetooth-next kernel tree. One minor but noteworthy change is that the default IO capability of agents (used for pairing) has changed from “DisplayYesNo” to “KeyboardDisplay”. This is an LE-specific capability which makes more sense on most systems than “DisplayYesNo”. On BR/EDR connections “KeyboardDisplay” gets automatically translated to “DisplayYesNo” (so no change in behavior there).


Release of BlueZ 5.36

This release consists for the most part of bug fixes that target areas such as PBAP, AVRCP and GATT.

Feature-wise a notable change is btmon support for vendor diagnostic messages which will be debuting with the 4.4 Linux kernel release. This feature will allow e.g. LMP tracing with specific controllers. For now there is preliminary support for Intel and Broadcom based controllers. You can already now enable and experiment with the feature using the bluetooth-next kernel tree by writing “1″ to the “vendor_diag” file in debugfs.


Release of BlueZ 5.35

This release contains bugfixes to areas such as GATT, OBEX, HoG and AVRCP. From now on bluetoothd will cache more information of remote GATT databases and thereby avoid unnecessary rediscovery of remote services.

A noteworthy new feature is the ability to configure bluetoothd to automatically enable (power on) all new adapters. One use of this is to replace unreliable “hciconfig hci0 up” commands that some distributions use in their init/udev scripts. The feature can be enabled by having AutoEnable=true under the [Policy] section of /etc/bluetooth/main.conf.


Release of BlueZ 5.34

This release fixes a fairly important bug for the GATT D-Bus interface where automatic reconnections would not always occur for the client role. There’s also a fix for a missing attribute in PBAP & MAP SDP records as well as a couple of audio related fixes. A new feature in this release is Media Player Selection support for the Target role of AVRCP (the Controller role already had this). On the Android side there’s now support for the WBS (WideBand Speech) callbacks of HFP.


Release of BlueZ 5.33

This BlueZ release contains mostly bugfixes, particularly in areas such as the audio plugin, GATT and OBEX. The main feature additions are in the the emulator code which received improvelents to LE features. There’s also a new tool for testing the recently released Eddystone protocol from Google.


Release of BlueZ 5.32

This is mostly a bug fix release rather than including many new features. The fixes fall in several different areas, including OPP, ATT and advertising (instance number handling in particular). There’s also a fix for handling a sudden disconnect when a connection setup process hasn’t yet completed. The one notable feature this release has is the ability to select between letting the stack handle ATT security elevation or doing the respective error handling in higher layers.


Release of BlueZ 5.31

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.