Platforma referencyjna

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:

  1. Pobierz drzewo źródłowe Androida:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. 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.

  1. Aby sklonować jądro, uruchom polecenie:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. 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