W nowej usłudze o nazwie trout
Android Automotive (AAOS) zapewnia teraz pomoc
do wdrożenia jako użytkownik-maszyna wirtualna w środowiskach zgodnych z
VirtIO
standardowy. trout
na podstawie:
Mątwa
wirtualna platforma referencyjna i jest dostępna jako konfiguracja urządzenia trout
.
kod źródłowy przestrzeni użytkownika można znaleźć pod adresem device/google/trout
. Tabela
poniżej znajdziesz informacje o technologii używanej do wirtualizacji każdego z podsystemów w trout
.
Funkcja | Technologia |
---|---|
HAL do sterowania dźwiękiem | vsock/gRPC |
HAL audio | virtio-snd |
Bluetooth | virtio-console |
HAL Dumpstate | vsock/gRPC |
System rozszerzonego widoku (EVS) | virtio-video |
Tryb garażu | vsock/gRPC |
Grafika | virtio-gpu |
Globalny satelita nawigacji (GNSS) | virtio-console |
Czujnik HAL 2.0 | virtio-scmi and IIO |
Wprowadzanie z ekranu dotykowego | virtio-input |
HAL pojazdu | vsock/gRPC |
Przedłuż pstrągi
Urządzenie trout
może być wykorzystywane jako punkt wyjścia do tworzenia nowych systemów informacyjno-rozrywkowych w pojeździe (IVI)
na Androida. Infrastrukturę kompilacji zaprojektowano tak, by można ją było rozszerzać i dostosowywać.
Na przykład:
# Inherit trout-arm64 default values and settings $(call inherit-product, device/google/trout/aosp_trout_arm64.mk) # Customize HALs as needed LOCAL_VHAL_PRODUCT_PACKAGE := vendor.oem.vhal@2.0-service LOCAL_AUDIO_PRODUCT_PACKAGE := vendor.oem.audio@6.0-impl # Configure SELinux policy BOARD_SEPOLICY_DIRS += device/oem/car/sepolicy/vendor/oem # Configure properties LOCAL_DUMPSTATE_PROPERTIES := \ ro.vendor.dumpstate.server.cid=22 \ ro.vendor.dumpstate.server.port=406 \ ro.vendor.helpersystem.log_loc=/data/dumpstate [... and more as needed ...]
Kilka HAL Androida można zastąpić niestandardowymi implementacjami.
domyślne wdrożenia zostały zachowane, ale niektóre parametry konfiguracji zostały dostosowane,
właściwą komunikację między maszynami wirtualnymi w środowisku docelowym. Te numery HAL (w tym HAL pojazdów,
HAL sterowania dźwiękiem i HAL Dumpstate) są zaimplementowane za pomocą interfejsu gRPC opartym na
vsock
między gościem w systemie AAOS a systemem hosta, który zapewnia
implementacji funkcji. Aby je skonfigurować, należy podać odpowiednie
Parametry połączenia vsock
jako właściwości dostawcy. To kod źródłowy
informacje podstawowe o usługach dostępnych do konfiguracji i ich semantyce.
Zbieranie pstrągów
Kompilowanie przestrzeni użytkownika
Aby skompilować przestrzeń użytkownika:
- Pobierz drzewo źródłowe Androida:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- Skompiluj środowisko:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Skompilowanie jądra
W trout
1.1 baza kodu jądra jest udostępniana w AOSP. trout
jądro składa się z tego samego kodu co wcześniejsze ACK 5.10 oraz dodatkowo
trout
modułów dla podsystemów VirtIO.
- Aby sklonować jądro, uruchom polecenie:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Aby skompilować uruchomienie jądra:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Twój dostawca hipernadzorcy może mieć inną wymaganą lub dodatkową konfigurację jądra które warto skompilować. Jeśli są dostępne, postępuj zgodnie z tymi wskazówkami.
Zgodność
Gdy AAOS działa jako gość, chcemy być zgodnym wdrożeniem Androida
z perspektywy platformy. Problemy po stronie hosta leżą w zakresie każdej implementacji i poza
zakresu trout
1.1.
Nie przeprowadziliśmy dodatkowej weryfikacji xTS w trout
1.1. Dalej
znajdziesz poniżej omówienie pomocy CTS w trout
w wersji 1.0.
W trout
w wersji 1.0 wciąż jest kilka problemów z pakietem CTS. Następujące moduły CTS są znane z
uwzględnij niepowodzenia testów:
CtsStagedInstallHostCases Przypadki testowe CtsRollbackManagerHost Przypadki testowe CtsVideo CtsHostsideNetworkTests CtsActivityManagerBackgroundActivityTestCases Przypadki testowe CtsAdbHost CtsNativeHardwarePrzypadki testowe CtsContentTestCases Zgłoszenia testowe CtsCarHost CtsOsTestCases CtsStatsdHostTesty Przypadki testowania interakcji z głosem w tekście CtsViewTestCases Zgłoszenia testowania aparatu Cts CtsLocationGnssTestCases CtsGraphicsCases (przypadki testowe ) CtsIncidentHostHostCases CtsInstallHostTestCases CtsNativeVerifiedBootTest Case CtsNetTestCases |
CtsWindowManagerDeviceTestCases PrzypadkiTestowe CtsMediaStress CtsAppTestCases Testy CtsUsbTest CtsAutouzupełnianieServiceCases CtsDisplayCases CtsMediaTestCases CtsDeqpTestPrzypadki CtsDumpsysHostPrzypadki testowe CtsOpenGLTestCasesCtsLibcoreCases ZgłoszeniaTestowe CtsSecurityHost Przypadki testowe CtsInputMethod CtsStatsdAtomHostPrzypadki testowe CtsPermission4Przypadki testowe CtsNAPITesty porównawcze CtsSimpleperfCases CtsAccessibilityTestCases CtsAppSecurityHostCases Przypadki testowe magazynu kluczy Cts |
Błędy testów obejmują te obszary CTS-V:
Test programu uruchamiającego samochód Test reklamodawcy Bluetooth Low Energy (BLE) Weryfikator jakości strumieniowych transmisji wideo Test urządzenia Bluetooth HID Test mikrofonu ultradźwiękowego hi-fi Test głośnika ultradźwiękowego Hi-Fi |
Test wymagany na odblokowaniu urządzenia Test dynamicznego wykrywania czujników Test czujnika wyłączonego na ciele Test znacznego ruchu Test powiadomień dotyczących kierowania wyjścia audio Test żądania sieciowego lub sugestii |
Informacje o wersji
W trout
w wersji 1.1 występują te znane problemy:
- Kompilacje użytkowników aplikacji
trout
są niedostępne. Struktura systemu-userdebug
, co może mieć wpływ na niektóre testy CTS. - Weryfikacja podczas uruchamiania Androida (AVB) nie jest obsługiwana.
- Niektóre podsystemy Android, w tym Secure World i NNHAL, mogą być niedostępne.
- Dostęp do sieci dla gości jest zwykle zapewniany za pomocą zwirtualizowanej karty Wi-Fi oraz
virtio-net
przez tunel. Połączenia po stronie hosta zależą od konkretnego wdrożenia hipernadzorcy. - Niektóre implementacje mogą oferować ograniczone możliwości Bluetootha lub nie oferować ich wcale.
- Wstrzykiwanie zdarzeń VHAL może nie działać w przypadku niektórych czujników.
- Niektóre duże obciążenia mogą powodować przerwy w odtwarzaniu dźwięku.
- W niektórych implementacjach ponowne uruchomienie polecenia adb gościa AAOS może spowodować zrestartowanie całego systemu.
- STS może powodować niestabilność systemu i wymagać ponownego uruchomienia.
Aby uzyskać więcej informacji, zapoznaj się z informacjami dla partnerów dotyczącymi konkretnego wdrożenia
trout