Bluetooth

Bluetooth to opcjonalny moduł Mainline począwszy od systemu Android 13. Moduł Bluetooth Mainline ma na celu zapewnienie spójnego, wysokiej jakości połączenia Bluetooth wszystkim użytkownikom Androida.

Motywacja

Główną motywacją stojącą za modułem Bluetooth jest zapewnienie wysokiej jakości doświadczeń partnerom, użytkownikom i twórcom aplikacji. Osiągniemy to na kilka kluczowych sposobów:

  1. Dostarczaj aktualizacje szybciej i częściej dzięki nowym funkcjom, poprawkom błędów i interoperacyjności oraz poprawkom zabezpieczeń.
  2. Ogranicz powtarzalną pracę dla partnerów
    1. Zmniejszone narzuty związane z coroczną zmianą bazy kodu.
    2. Zmniejszony narzut związany z wdrażaniem OTA na starszych urządzeniach.
  3. Zmniejsz fragmentację i stwórz spójne środowisko dla twórców aplikacji i użytkowników
  4. Popraw globalne bezpieczeństwo w ekosystemie Androida. Duża część luk w zabezpieczeniach Androida dotyczy Bluetooth.

Format opakowania

Pakiet jest APEX zawierający Bluetooth APK (obecnie zdefiniowany w packages/modules/Bluetooth/android/app ), nasze natywne biblioteki ( libbluetooth.so i libbluetooth_jni.so ), nasze interfejsy API (w packages/modules/Bluetooth/framework/java/android/bluetooth ) i nasze interfejsy HIDL.

Granica modułu

Główna architektura modułów Bluetooth

Rysunek 1. Granica modułu Bluetooth

Migrujemy wszystkie nasze istniejące repozytoria do jednego w system/bt . Rysunek 1 przedstawia bieżące katalogi, które będą składać się z naszego modułu.

Zależności

Moduł Bluetooth jest zależny od następujących elementów:

  • Przychodzące i wychodzące zastosowania interfejsu API @hide , które zostaną wyczyszczone
  • Biblioteki wymagane dla Bluetooth APK, libbluetooth.so i libbluetooth_jni.so