Bluetooth

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

Motywacja

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

  1. Szybciej i częściej dostarczaj aktualizacje z nowymi funkcjami, poprawkami błędów i interoperacyjności oraz poprawkami bezpieczeństwa.
  2. Ogranicz powtarzalną pracę partnerów
    1. Mniejsze obciążenie 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 Bluetootha.

Format pakietu

Pakiet to plik APEX zawierający plik APK Bluetooth (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łu Bluetooth

Rysunek 1. Granica modułu Bluetooth

Przeprowadzamy migrację wszystkich naszych istniejących repozytoriów do jednego w system/bt . Rysunek 1 przedstawia aktualne katalogi, które będą zawierać nasz moduł.

Zależności

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

  • Przychodzące i wychodzące użycia interfejsu API @hide , które zostaną oczyszczone
  • Biblioteki wymagane dla pakietu APK Bluetooth, libbluetooth.so i libbluetooth_jni.so