After more than a half year of development the BlueZ project is proud to announce the release of BlueZ 5 with numerous new features, API simplifications and other improvements. With this release BlueZ only supports the new Bluetooth Management kernel interface that was introduced in Linux 3.4, so essentially this is the minimum kernel requirement for BlueZ 5. For Low Energy support at least kernel version 3.5 is needed.
The new major version indicates that the API is not backwards compatible with BlueZ 4, which means that any applications, agents, etc will need to be updated. The BlueZ internal test scripts and tools have naturally already been updated to support the new API.
With this release the hcidump (bluez-hcidump.git) and obexd (obexd.git) projects have been merged into the main BlueZ project (bluez.git) and new releases of them will come as part of new 5.x BlueZ releases.
We have a separate BlueZ 5 API introduction and porting guide for developers, but here are a few of the more high level changes since the BlueZ 4.x series:
- Move to standard D-Bus ObjectManager & Properties interface
- Remove Manager interface as the same functionality comes through ObjectManager
- Remove support for audio UNIX socket interface (the Media D-Bus interface replaces it)
- SBC library moved into its own project
- GStreamer elements removed after submitting them to the upstream GStreamer project
- Removal of the Service interface and introduction of a new (libbluetooth independent) Profile interface
- New bluetoothctl command line too for interacting with BlueZ
- New btmon monitoring tool
- Remove internal support for telephony (HFP and HSP) profiles. They should be implemented using the new Profile interface preferably by the telephony subsystem of choice (e.g. oFono which already supports this)
- General connection establishment procedure and vastly simplified D-Bus API for it
- The adapter power state is not stored persistently and remembered over bluetoothd restarts. An external entity (like ConnMan) is expected to handle this.
- libbluetooth not installed by default as it’s not really useful or recommended anymore. The new Profile interface further decreases its usefulness.
- INI-style format for all storage file. Old files from BlueZ 4 are auto-converted.
- Merge obex-client into the main obexd daemon
- D-Bus interface versions with the intent to always keep support at least for the two latest versions.
- New Low Energy profiles:
- Cycling Speed
- Scan Parameters
- HID over GATT (HoG)