This is mostly a bug-fix release, but also contains several notable additions:
- PS3 (sixaxis) controller support
- smp-tester for LE Security Manager Protocol testing
- AVDTP qualification test cases (unit/test-avdtp)
- LE Connection Oriented Channel test support with l2test (LE CoC is a feature of the newly released Bluetooth 4.1 specification)
- btmon decoding support for LE CoC signaling commands, CSA4 and Core spec 4.1 HCI commands
As with the previous release, simply from a statistical perspective the majority of the changes are on the still work-in-progress Android support side (android/* in the source tree), where we should now have mostly working core, PAN and HID HALs, as well as the socket HAL which enables several higher level profiles like OPP and PBAP.
This release contains numerous fixes in many places of the stack, including SDP, AVRCP and OBEX. The btmon HCI analyzer tool also received updates to fully encode a few missing HCI commands.
This is also the first release where have some basic parts of the Android Bluetooth HAL implemented. Things like GAP (device discovery, pairing, etc) should work as well as connecting and using HID devices. All of the Android code lives independently in the android subdirectory of the source tree, though it does share several parts of the “normal” BlueZ source code, such as the SDP handling and mgmt library.
This release contains various bug fixes identified and fixed at the latest UnplugFest. The main profiles concerned are AVRCP and MAP. Other notable changes include more comprehensive protocol decoders in the btmon tool as well as a nice interactive command line client for OBEX (obexctl).
To avoid unnecessary questions and confusion I thought it’d be good to give a quick overview of Android related code that will be going into bluez.git in the near future.
Since Android 4.2 there exists a well standardized HAL interface that the Bluetooth stack is expected to provide and which enables the easy replacement of the stack of choice on Android. What’s now happening in BlueZ is that we’re working on making BlueZ a drop-in replacement to Android by ensuring that the required HAL interfaces are available straight out of the BlueZ source tree.
Most of the work has little or no impact on existing BlueZ functionality and architecture and the code will be going under a separate “android” subdirectory. However, since we’re trying to reuse as much code with the rest of BlueZ as possible this also means that some refactoring will be happening elsewhere in the tree to create reusable library-like modules from parts of the code.
One of the intentions of this work is to avoid multiple companies doing their own Android adaptation for BlueZ by having the work done in a central place upstream.
This release comes with all sorts of fixes and updates to OBEX related profiles. There is also more complete HCI decoding support in btmon as well as some improvements to our user space HCI emulator code. One notable, though completely backwards compatible, API change is the removal of the Profile1.Cancel method. This was mainly used for canceling a NewConnection call that took too long, however bluetoothd always called shutdown on the socket in this case which made the D-Bus call redundant. From BlueZ 5.9 onwards this method is no longer called and previous (5.x) BlueZ versions handle its absence gracefully.
One notable build related change in 5.9 is the removal of the libusb dependency. USB support in BlueZ is now fully self-contained and packages can drop any libusb dependency they might have had.
Here’s a new BlueZ release with mostly bug fixes to audio and OBEX related profiles. One notable feature addition is a low-priority SDP based service discovery that’s always done after connecting known profiles. The intention of this feature is to allow refreshing the list of remote services as there doesn’t exist any kind of explicit way to do this through the D-Bus API.
We had unfortunately a couple of pretty severe regressions that had crept into 5.6 so we’ve released 5.7 earlier than planned. If you’ve started using 5.6 please switch to 5.7 as soon as possible, and if you haven’t yet picked 5.6 just ignore that release
The regressions in question were related to remote service discovery for newly paired devices as well as the failure to parse some SDP responses (this happened with one Nokia headset). These issues are now fixed and since the last release we also managed to get in patches adding support for a MAP notification dispatcher.
This is mostly a bug fix release with improvements to AVRCP, A2DP and OBEX. There is also a new command line tool for controlling remote media players (through AVRCP). This release also further improves our user space Bluetooth controller and host emulation which is mainly used for L2CAP end-to-end tests (tools/l2cap-tester). The btmon tool has also received a more complete set of ATT decoders.