Bluetooth

The Bluetooth module is an optional Mainline module introduced in Android 13. In Android 16 and higher, the module is updatable and contains a fully certified dual-mode Bluetooth host stack, enabling Android devices to support both classic Bluetooth and Bluetooth Low Energy (BLE) functionalities.

The primary motivation for the Bluetooth module is to provide a higher-quality Bluetooth experience to device manufacturers, users, and app developers by:

  • Delivering faster updates with new features, bug fixes, interoperability enhancements, and security patches quickly and regularly, independently of the Android OS release cycle.

  • Reducing fragmentation and creating a consistent experience for the entire Android ecosystem.

  • Streamlining partner development by delivering Android-validated Bluetooth Mainline modules and avoiding frequent rebasing, thus reducing development and testing overhead.

Package format

The Bluetooth module uses the APEX format. The com.google.android.bt package contains the Bluetooth APK defined in packages/modules/Bluetooth/android/app, the built-in library libbluetooth_jni.so, the APIs under packages/modules/Bluetooth/framework/java/android/bluetooth, and the HIDL interfaces.

Module boundary

The following diagram shows the Bluetooth module boundary:

Bluetooth module boundary

Figure 1. Bluetooth module boundary.

Dependencies

The Bluetooth module has dependencies on the following:

  • Incoming and outgoing @hide API usages
  • Library required for the Bluetooth APK (libbluetooth.so).
  • HAL implementation from the Bluetooth chipset provider
  • Android Audio Framework for audio streaming
  • Android telephony for phone calls
  • Android tethering for Bluetooth Personal Area Network (PAN)