Bluetooth is an optional Mainline module starting with Android 13. The Bluetooth Mainline module aims to provide a consistent, high quality Bluetooth experience to all Android users.
The primary motivation behind the Bluetooth module is to provide a high quality experience to partners, users, and app developers. We will achieve this in a few key ways:
- Ship updates faster and more frequently with new features, bug and interoperability fixes, and security fixes.
- Reduce repetitive work for partners
- Reduced overhead of rebasing the codebase every year.
- Reduced overhead of rolling out OTAs to legacy devices.
- Reduce fragmentation and creating a consistent experience for app developers and users
- Improve global security within the Android ecosystem. A large portion of Android security vulnerabilities involve Bluetooth..
The package is an APEX containing the Bluetooth APK (currently defined in
packages/modules/Bluetooth/android/app), our native libraries (
libbluetooth_jni.so), our APIs (under
packages/modules/Bluetooth/framework/java/android/bluetooth), and our HIDL
Figure 1. Bluetooth Module Boundary
We are migrating all of our existing repos into a single one under
Figure 1 represents the current directories that will comprise our module.
The Bluetooth module has dependencies on the following:
- Incoming and outgoing
@hideAPI usages that will be cleaned up
- Libraries required for the Bluetooth APK,