Skip to content

SimpleBLE v0.14.0

Latest

Choose a tag to compare

@kdewald kdewald released this 02 May 20:33
· 44 commits to main since this release

[0.14.0] - 2026-05-02

Notes

This release introduces the concept of Backend to the SimpleBLE API. Backends represent the underlying BLE implementation,
such as BlueZ on Linux, CoreBluetooth on macOS, and WinRT on Windows. These entities will become more relevant in future
releases as we move towards more elaborate workstreams, the first of which is the introduction of the Dongl backend.

The SimpleBLE Dongl is a suite of hardware and firmware products that bypass the host's BLE stack entirely, providing an
extremely consistent BLE experience across all platforms. Visit the SimpleBLE Dongl website
to learn more.

Added

  • (SimpleJavaBLE) Added CompletableFuture wrappers for blocking operations to allow clean asynchronous programming without blocking threads.
  • (SimpleBLE) Elevated Backend class to the public API, enabling programmatical control of all available backends.
  • (SimpleBLE) Introduced the Dongl backend for custom SimpleBLE hardware and firmware products.

Changed

  • (SimpleJavaBLE) JNI API calls are now safely wrapped to catch C++ exceptions and bubble them up as Java RuntimeException instead of crashing the JVM.
  • (SimpleJavaBLE) Updated EventListener interfaces in Adapter and Peripheral to provide default empty implementations.
  • (Windows) Added configurable workaround for 3-second delay in disconnecting from a peripheral. (Thanks, josmithua!)
  • (Android) Updated NDK version to r29.

Fixed

  • (SimpleRsBLE) Fixed linker errors on some 64-bit Linux systems. (Thanks, davidedellagiustina!)
  • (SimpleDBus) Fixed bad_any_cast exception in dictionaries with ObjectPath or Signature keys. (Thanks, AndreiSvatko!)
  • (SimpleDBus) Fixed D-Bus parameter errors and strict validation rejections on BlueZ 5.83+ by properly skipping uninitialized optional properties. (Thanks, piranna!)
  • (SimpleJavaBLE) Fixed missing macOS x64 .dylib artifact in the release package due to an omitted CI architecture target.
  • (SimpleJavaBLE) Fixed JNI symbol resolution errors (UnsatisfiedLinkError) on Adapter.isBluetoothEnabled() and isPaired flags.
  • (SimpleJavaBLE) Fixed jvm.dll initialization conflicts on Windows that prevented the native bindings from loading smoothly.
  • (SimpleCBLE) Fixed remotely triggerable stack buffer overflows when handling manufacturer data and advertised services (EVE-2026-002, EVE-2026-003). (Thanks, Mr-IoT!)
  • (SimpleBLE) Fixed stack buffer overflow in Dongl write function. (EVE-2026-001). (Thanks, Mr-IoT!)
  • (SimpleBLE) Added missing export headers to Config.h.

Special Acknowledgements

We'd like to thank Mr-IoT for reporting and providing patches for multiple security vulnerabilities (EVE-2026-001, EVE-2026-002, EVE-2026-003).