Bluetooth

Bluetooth ist ein optionales Mainline-Modul ab Android 13. Das Bluetooth Mainline-Modul zielt darauf ab, allen Android-Benutzern ein konsistentes, qualitativ hochwertiges Bluetooth-Erlebnis zu bieten.

Motivation

Die Hauptmotivation hinter dem Bluetooth-Modul besteht darin, Partnern, Benutzern und App-Entwicklern ein qualitativ hochwertiges Erlebnis zu bieten. Wir werden dies auf einige wichtige Arten erreichen:

  1. Versenden Sie Updates schneller und häufiger mit neuen Funktionen, Fehler- und Interoperabilitätskorrekturen sowie Sicherheitskorrekturen.
  2. Reduzieren Sie sich wiederholende Arbeiten für Partner
    1. Reduzierter Aufwand für die jährliche Neubasierung der Codebasis.
    2. Reduzierter Aufwand für die Einführung von OTAs auf älteren Geräten.
  3. Reduzieren Sie die Fragmentierung und schaffen Sie ein konsistentes Erlebnis für App-Entwickler und Benutzer
  4. Verbessern Sie die globale Sicherheit innerhalb des Android-Ökosystems. Ein großer Teil der Sicherheitslücken in Android betrifft Bluetooth.

Paketformat

Das Paket ist ein APEX, das die Bluetooth-APK (derzeit definiert in packages/modules/Bluetooth/android/app ), unsere nativen Bibliotheken ( libbluetooth.so und libbluetooth_jni.so ), unsere APIs (unter packages/modules/Bluetooth/framework/java/android/bluetooth ) und unsere HIDL-Schnittstellen.

Modulgrenze

Mainline-Bluetooth-Modularchitektur

Abbildung 1. Begrenzung des Bluetooth-Moduls

Wir migrieren alle unsere bestehenden Repos in ein einziges unter system/bt . Abbildung 1 stellt die aktuellen Verzeichnisse dar, aus denen unser Modul bestehen wird.

Abhängigkeiten

Das Bluetooth-Modul hat folgende Abhängigkeiten:

  • Eingehende und ausgehende @hide API-Nutzungen, die bereinigt werden
  • Erforderliche Bibliotheken für die Bluetooth-APK, libbluetooth.so und libbluetooth_jni.so