Piattaforma di riferimento

Tramite un nuovo prodotto chiamato trout, Android Automotive (AAOS) ora fornisce supporto per il deployment come macchina virtuale (VM) guest in ambienti compatibili con VirtIO standard. trout si basa su Seppia ed è disponibile come configurazione del dispositivo trout. La il codice sorgente dello spazio utente è disponibile all'indirizzo device/google/trout. La tabella di seguito viene descritta la tecnologia utilizzata per virtualizzare ciascuno dei sottosistemi in trout.

Funzionalità Tecnologia
Controllo audio HAL vsock/gRPC
HAL audio virtio-snd
Bluetooth virtio-console
HAL dumpstate vsock/gRPC
Sistema di visualizzazione estesa (EVS) virtio-video
Modalità garage vsock/gRPC
Grafica virtio-gpu
Satellite per la navigazione globale (GNSS) virtio-console
Sensore HAL 2.0 virtio-scmi and IIO
Input touchscreen virtio-input
HAL per veicoli vsock/gRPC

Estendere trote

trout può essere utilizzato come punto di partenza per creare un nuovo sistema di infotainment nel veicolo (IVI) Target Android. L'infrastruttura di compilazione è progettata per essere estesa e personalizzata. Ad esempio:

# 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 ...]

Diversi HAL Android possono essere sostituiti singolarmente con implementazioni personalizzate oppure il le implementazioni predefinite sono state mantenute, ma alcuni parametri di configurazione sono stati regolati per stabilire una comunicazione tra le VM adeguata nell'ambiente di destinazione. Questi HAL (inclusi HAL per veicoli, Audio Control HAL e Dumpstate HAL) vengono implementati attraverso un’interfaccia gRPC supportata da un Connessione vsock tra l'ospite AAOS e un sistema host che fornisce il dell'implementazione delle funzionalità di base. Questi devono essere configurati fornendo i campi Parametri di connessione vsock come proprietà del fornitore. Il codice sorgente agisce come dati empirici reali su quali proprietà sono disponibili per la configurazione e la loro semantica.

Costruire trote

Compila lo spazio utente

Per compilare lo spazio utente:

  1. Scarica la struttura di origine Android:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. Crea l'ambiente:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

crea il kernel

Per trout 1.1, il codebase del kernel è fornito in AOSP. trout è composto dallo stesso codice dell'upstream ACK 5.10, con l'aggiunta di Moduli specifici per trout per i sottosistemi VirtIO.

  1. Per clonare il kernel, esegui:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Per creare il kernel, esegui:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

Il tuo fornitore di hypervisor potrebbe richiedere una configurazione kernel diversa o e i moduli che devono essere compilati. Assicurati di seguire queste specifiche indicazioni, se fornite.

Conformità

Quando AAOS viene eseguito come VM ospite, il nostro obiettivo è garantire un'implementazione Android compatibile la prospettiva del framework. I problemi lato host rientrano nell'ambito di ogni implementazione e non rientrano nel ambito di trout 1.1.

Non abbiamo eseguito un'ulteriore convalida xTS su trout 1.1. Continua per fare riferimento alla discussione sull'assistenza CTS riportata di seguito in trout 1.0.

Nella versione trout 1.0, rimangono diversi problemi relativi a CTS. I seguenti moduli CTS sono noti includi gli errori dei test:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
Casi di test CtsVideo
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
Casi di test dell'host CtsAdb
Case di test Cts NativeHardware
CtsContentTestCases
Case di prova dell'host per auto
CtsOsTestCases
CtsStatsdHostTestCases
Case di test CtsVoiceInteraction
CtsViewTestCases
Casi di test della fotocamera Cts
CtsLocationGnssTestCases
Case di test CtsGraphics
CtsIncidentHostTestCases
CtsInstallHostTestCases
Casi di test dell'avvio verificato nativi
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
Test CtsUsb
CtsFILLINServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
Casi di test accessibilità
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

Le seguenti aree CTS-V sono note per includere errori nei test:

Test di Avvio app dell'auto
Test dell'inserzionista Bluetooth Low Energy (BLE)
Strumento di verifica della qualità dei video in streaming
Test dispositivo Bluetooth HID
Test microfono a ultrasuoni Hi-Fi
Test altoparlante a ultrasuoni hi-fi
Test richiesto dispositivo sbloccato
Test di rilevamento del sensore dinamico
Test sensore off-body
Test di movimento significativo
Test notifica routing output audio
Test di richieste o suggerimenti di rete

Note di rilascio

trout 1.1 contiene i seguenti problemi noti:

  • Le build utente di trout non sono disponibili. Il sistema è realizzato -userdebug, il che può influire su alcuni test CTS.
  • Avvio verificato di Android (AVB) non è supportato.
  • Alcuni sottosistemi Android potrebbero non essere disponibili, tra cui Secure World e NNHAL.
  • L'accesso alla rete ospite viene generalmente fornito per mezzo di un adattatore Wi-Fi virtualizzato e virtio-net tunnel. La connettività lato host dipende dalla distribuzione hypervisor specifica.
  • Alcune implementazioni potrebbero offrire funzionalità Bluetooth limitate o del tutto assenti.
  • L'inserimento di eventi VHAL potrebbe non funzionare per alcuni sensori.
  • Alcuni carichi di lavoro pesanti possono causare problemi di riproduzione audio.
  • In alcune implementazioni, il riavvio adb dell'ospite AAOS potrebbe riavviare l'intero sistema.
  • STS può causare l'instabilità del sistema e richiedere un riavvio.

Per ulteriori dettagli, consulta le note di rilascio per i partner relative al deployment specifico trout.