Android Automotive (AAOS) unterstützt jetzt das neue Produkt trout
für die Bereitstellung als virtuelle Gastmaschine in Umgebungen, die mit der
VirtIO
Standard. trout
basiert auf dem
Tintenfisch
virtuelle Referenzplattform und ist als trout
-Gerätekonfiguration verfügbar. Die
Den Userspace-Quellcode findest du unter device/google/trout
. Tabelle
wird unten die Technologie beschrieben, die zur Virtualisierung der einzelnen Subsysteme in trout
verwendet wird.
Funktion | Technologie |
---|---|
Hal für Audiosteuerung | vsock/gRPC |
Audio-HAL | virtio-snd |
Bluetooth | virtio-console |
Dumpstate-HAL | vsock/gRPC |
Extended View System (EVS) | virtio-video |
Garagemodus | vsock/gRPC |
Grafik | virtio-gpu |
Globaler Navigationssatent (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Touchscreen-Eingabe | virtio-input |
Fahrzeug-HAL | vsock/gRPC |
Forelle verlängern
trout
kann als Ausgangspunkt für die Erstellung eines neuen Infotainmentsystems (IVI) verwendet werden
Android-Ziele Die Build-Infrastruktur ist so konzipiert, dass sie erweitert und angepasst werden kann.
Beispiel:
# 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 ...]
Mehrere Android-HALs können einzeln durch benutzerdefinierte Implementierungen ersetzt werden.
Standardimplementierungen beibehalten, aber bestimmte Konfigurationsparameter angepasst, um
Kommunikation zwischen VMs
in der Zielumgebung funktioniert. Diese HALs (einschließlich Fahrzeug-HAL,
Audio Control HAL und Dumpstate HAL) werden mithilfe einer gRPC-Schnittstelle implementiert, die von einem
vsock
-Verbindung zwischen dem AAOS-Gast und einem Hostsystem, das den
Implementierung der zugrunde liegenden Funktion. Diese müssen so konfiguriert werden, dass die richtigen
vsock
-Verbindungsparameter als Anbietereigenschaften. Der Quellcode fungiert als ultimative
gibt an, welche Attribute für die Konfiguration verfügbar sind und welche Semantik es gibt.
Forelle aufbauen
Userspace kompilieren
So kompilieren Sie den Userspace:
- Laden Sie die Android-Quellstruktur herunter:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- Erstellen Sie die Umgebung:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Kernel erstellen
Für trout
1.1 wird die Kernel-Codebasis in AOSP bereitgestellt. Das trout
Kernel besteht aus dem gleichen Code wie der vorgelagerte ACK 5.10, mit dem Zusatz von
trout
-spezifische Module für VirtIO-Subsysteme.
- Führen Sie folgenden Befehl aus, um den Kernel zu klonen:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Führen Sie folgenden Befehl aus, um den Kernel zu erstellen:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Möglicherweise hat Ihr Hypervisor-Anbieter eine andere Kernel-Konfiguration oder zusätzliche Module, die kompiliert werden müssen. Befolge diese spezifischen Anweisungen, sofern vorhanden.
Compliance
Wenn AAOS als Gast-VM ausgeführt wird, ist es unser Ziel, eine kompatible Android-Bereitstellung vom
Framework-Perspektive. Hostseitige Probleme betreffen jede Implementierung und außerhalb des
von trout
1.1.
Wir haben keine zusätzliche xTS-Validierung für trout
1.1 durchgeführt. Weiter
, um sich auf die Diskussion unten zum CTS-Support in trout
1.0 zu beziehen.
In trout
1.0 bestehen weiterhin mehrere CTS-Probleme. Die folgenden CTS-Module sind bekannt für
Testfehler einschließen:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases CtsVideoTestCases CtsHostsideNetworkTests CtsActivityManagerBackgroundActivityTestCases CtsAdbHostTestfälle CtsNativeHardwareTestCases CtsContentTestCases CtsCarHostTestCases CtsOsTestCases CtsStatsdHostTestCases CtsVoiceInteractionTestCases CtsViewTestCases CtsCameraTestCases CtsLocationGnssTestCases CtsGraphicsTestCases CtsIncidentHostTestCases CtsInstallHostTestCases CtsNativeVerifiedBootTestCases CtsNetTestCases |
CtsWindowManagerDeviceTestCases CtsMediaStressTestCases CtsAppTestCases Cts-Usb-Tests CtsAutofillServiceTestCases CtsDisplayTestCases CtsMediaTestCases CtsDeqpTestCases CtsDumpsysHostTestfälle CtsOpenGLTestCasesCtsLibcoreTestCases CtsSecurityHostTestCases CtsInputMethodTestCases CtsStatsdAtomHostTestCases CtsPermission4TestCases CtsNNAPIBenchmarkTestCases CtsSimpleperfTestCases CtsAccessibilityTestCases CtsAppSecurityHostTestCases CtsKeystoreTestCases |
In den folgenden CTS-V-Bereichen treten bekanntermaßen Testfehler auf:
Autostarter-Test Bluetooth Low Energy (BLE)-Werbetreibendentest Qualitätsprüfung für Videos Bluetooth-HID-Gerätetest Hi-Fi-Ultraschallmikrofontest Hi-Fi-Ultraschalllautsprecher Test |
Test auf entsperrtes Gerät erforderlich Erkennung der dynamischen Sensoren Absenksensortest Signifikante Bewegungserkennung Test für Audioausgaberouting-Benachrichtigungen Netzwerkanfrage- oder Vorschlagstest |
Versionshinweise
trout
1.1 enthält die folgenden bekannten Probleme:
- Nutzer-Builds von
trout
sind nicht verfügbar. Das System ist als-userdebug
, was sich auf einige CTS-Tests auswirken kann. - AVB (Verifizierter Bootmodus von Android) wird nicht unterstützt.
- Einige Android-Subsysteme sind möglicherweise nicht verfügbar, z. B. Secure World und NNHAL.
- Der Zugriff auf das Gastnetzwerk erfolgt in der Regel über einen virtualisierten WLAN-Adapter und
virtio-net
Tunnel. Die hostseitige Verbindung hängt von der spezifischen Hypervisor-Bereitstellung ab. - Bei einigen Implementierungen ist die Bluetooth-Funktion möglicherweise nur eingeschränkt oder gar nicht verfügbar.
- Eine VHAL-Ereignisinjektion funktioniert bei einigen Sensoren möglicherweise nicht.
- Einige hohe Arbeitslasten können zu Fehlern bei der Audiowiedergabe führen.
- In einigen Implementierungen starten ADB-Neustarts des AAOS-Gasts möglicherweise das gesamte System neu.
- STS kann das System instabil machen und einen Neustart erforderlich machen.
Weitere Informationen finden Sie in den Versionshinweisen für Ihre spezifische Bereitstellung von
trout