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 des Bluetooth-Moduls 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 die sich wiederholende Arbeit 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 einheitliches Erlebnis für App-Entwickler und -Benutzer
  4. Verbessern Sie die globale Sicherheit im Android-Ökosystem. Ein großer Teil der Android-Sicherheitslücken betrifft Bluetooth.

Paketformat

Das Paket ist ein APEX, das das 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 enthält packages/modules/Bluetooth/framework/java/android/bluetooth ) und unsere HIDL-Schnittstellen.

Modulgrenze

Mainline-Bluetooth-Modularchitektur

Abbildung 1. Bluetooth-Modulgrenze

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 ist von Folgendem abhängig:

  • Eingehende und ausgehende @hide API-Nutzungen, die bereinigt werden
  • Für das Bluetooth APK erforderliche Bibliotheken: libbluetooth.so und libbluetooth_jni.so