Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Bluetooth
Stay organized with collections
Save and categorize content based on your preferences.
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.
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:
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)
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-07-03 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-03 UTC."],[],[],null,["# Bluetooth\n\nThe Bluetooth module is an optional Mainline module introduced in Android 13.\nIn Android 16 and higher, the module is updatable and contains a fully\ncertified dual-mode Bluetooth host stack, enabling Android devices to support\nboth classic Bluetooth and Bluetooth Low Energy (BLE) functionalities.\n\nThe primary motivation for the Bluetooth module is to provide a higher-quality\nBluetooth experience to device manufacturers, users, and app developers by:\n\n- **Delivering faster updates** with new features, bug fixes, interoperability\n enhancements, and security patches quickly and regularly, independently of\n the Android OS release cycle.\n\n- **Reducing fragmentation** and creating a consistent experience for the\n entire Android ecosystem.\n\n- **Streamlining partner development** by delivering Android-validated\n Bluetooth Mainline modules and avoiding frequent rebasing, thus reducing\n development and testing overhead.\n\nPackage format\n--------------\n\nThe Bluetooth module uses the [APEX](/docs/core/ota/apex) format. The `com.google.android.bt`\npackage contains the Bluetooth APK defined in\n`packages/modules/Bluetooth/android/app`, the built-in library\n`libbluetooth_jni.so`, the APIs under\n`packages/modules/Bluetooth/framework/java/android/bluetooth`, and the HIDL\ninterfaces.\n\nModule boundary\n---------------\n\nThe following diagram shows the Bluetooth module boundary:\n\n**Figure 1**. Bluetooth module boundary.\n\nDependencies\n------------\n\nThe Bluetooth module has dependencies on the following:\n\n- Incoming and outgoing `@hide` API usages\n- Library required for the Bluetooth APK (`libbluetooth.so`).\n- HAL implementation from the Bluetooth chipset provider\n- Android Audio Framework for audio streaming\n- Android telephony for phone calls\n- Android tethering for Bluetooth Personal Area Network (PAN)"]]