BlueZ 5.41 is purely a bug-fix release targeting areas such as GATT, AVRCP, OBEX and device discovery filters. The GATT D-Bus API is now starting to be stable enough that this will likely be the last release where it is flagged as experimental.
This is mostly a bug fix release fixing issues with GATT, paired devices and connection handling (particularly for accepting connections through the Profile D-Bus interface).
One new feature is the ability to use btmon for reading HCI logs from a TTY device. Right now the creation of this kind of logs is available with Zephyr in the form of a special console logging mode (more information available here). The format of the protocol is a slight modification of what btmon normally receives from the kernel monitor sockets, and is documented in doc/btsnoop.txt).
This is almost entirely a bug fix release with important fixes to GATT, HoG, AVRCP & A2DP. It is recommended to upgrade if you were previously using 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).
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.