Bluetooth

Bluetooth to opcjonalny moduł Mainline, który zaczyna się od Androida 13. Moduł Bluetooth Mainline ma zapewnić wszystkim użytkownikom Androida spójne i wysokiej jakości działanie Bluetooth.

Motywacja

Głównym celem modułu Bluetooth jest zapewnienie wysokiej jakości partnerom, użytkownikom i deweloperom aplikacji. Osiągniemy to na kilka kluczowych sposobów:

  1. Szybciej i częściej dostarczać aktualizacje z nowymi funkcjami, poprawkami błędów i niezgodności oraz poprawkami zabezpieczeń.
  2. Zmniejszenie liczby powtarzalnych czynności przez partnerów.
    1. Zmniejszenie nakładów związanych z rebazowaniem kodu źródłowego co roku.
    2. Zmniejszenie nakładów związanych z wdrażaniem aktualizacji OTA na urządzeniach starszej generacji.
  3. zmniejszenie fragmentacji i zapewnienie spójnych wrażeń dla deweloperów i użytkowników aplikacji;
  4. poprawa ogólnego stanu zabezpieczeń 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 pliku packages/modules/Bluetooth/android/app), nasze natywne biblioteki (libbluetooth.solibbluetooth_jni.so), nasze interfejsy HIDL (w ramach packages/modules/Bluetooth/framework/java/android/bluetooth) oraz nasze interfejsy HIDL.

Granica modułu

Architektura modułu Bluetooth Mainline

Rysunek 1. Zasięg modułu Bluetooth

Przenosimy wszystkie istniejące repozytoria do jednego repozytorium system/bt. Rysunek 1 przedstawia bieżące katalogi, które składają się na nasz moduł.

Zależności

Moduł Bluetooth ma zależności od:

  • Przychodzące i wychodzące interfejsy API @hide, które zostaną usunięte
  • Biblioteki wymagane w przypadku plików APK Bluetooth, libbluetooth.so i libbluetooth_jni.so