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).
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.
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.
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.
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.
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.
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.