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:
- Scarica la struttura di origine Android:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- 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.
- Per clonare il kernel, esegui:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 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
.