Bluetooth jest opcjonalnym modułem głównego szkieletu od wersji Android 13. Moduł Bluetooth Mainline ma zapewnić wszystkim użytkownikom Androida spójne i wysokojakościowe 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:
- Szybciej i częściej dostarczać aktualizacje z nowymi funkcjami, poprawkami błędów i niezgodności oraz poprawkami zabezpieczeń.
- Ograniczenie powtarzalnej pracy partnerów
- Zmniejszenie nakładów związanych z rebazowaniem kodu źródłowego co roku.
- Zmniejszenie nakładów związanych z wdrażaniem aktualizacji OTA na urządzeniach starszej generacji.
- zmniejszenie fragmentacji i zapewnienie spójnych wrażeń dla deweloperów i użytkowników aplikacji;
- 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.so
i libbluetooth_jni.so
), nasze interfejsy HIDL (w ramach packages/modules/Bluetooth/framework/java/android/bluetooth
) oraz nasze interfejsy HIDL.
Granica modułu
Rysunek 1. Ograniczenie modułu Bluetooth
Wszystkie nasze repozytoria zostaną przeniesione do jednego repozytorium o nazwie system/bt
.
Rysunek 1 przedstawia bieżące katalogi, które będą tworzyć 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 do pliku APK Bluetooth,
libbluetooth.so
ilibbluetooth_jni.so