Android Automotive (AAOS) ahora ofrece compatibilidad con un producto nuevo llamado trout
.
para implementarlas como máquina virtual (VM) invitada en entornos compatibles con el
VirtIO
estándar. trout
se basa en el
Cuttlefish
de referencia virtual y está disponible como la configuración del dispositivo trout
. El
del código fuente del espacio de usuario en device/google/trout
. La tabla
a continuación, se describe la tecnología que se utiliza para virtualizar cada uno de los subsistemas de trout
.
Función | Tecnología |
---|---|
HAL de control de audio | vsock/gRPC |
HAL de audio | virtio-snd |
Bluetooth | virtio-console |
HAL de estado inactivo | vsock/gRPC |
Sistema de vista extendida (EVS) | virtio-video |
Modo garaje | vsock/gRPC |
Gráficos | virtio-gpu |
Satélite de navegación global (GNSS) | virtio-console |
HAL del sensor 2.0 | virtio-scmi and IIO |
Entrada de pantalla táctil | virtio-input |
HAL del vehículo | vsock/gRPC |
Extender trucha
trout
se puede usar como punto de partida para crear un nuevo infoentretenimiento en el vehículo (IVI)
Orientaciones de Android. La infraestructura de compilación se diseñó para extenderse y personalizarse.
Por ejemplo:
# 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 ...]
Varias HAL de Android pueden reemplazarse de manera individual con implementaciones personalizadas.
se mantienen las implementaciones predeterminadas, pero se ajustan ciertos parámetros de configuración para establecer
una comunicación adecuada entre VM
en el entorno de destino. Estas HAL (incluidas las HAL de vehículos,
HAL de control de audio y HAL de estado de volcado) se implementan a través de una interfaz gRPC respaldada por un
vsock
entre el invitado AAOS y un sistema host que proporciona la
implementación de la función subyacente. Estas se deben configurar proporcionando los datos
Parámetros de conexión de vsock
como propiedades del proveedor El código fuente es la clave
verdades fundamentales sobre qué propiedades están disponibles para la configuración y sus semánticas.
Crear truchas
Compila el espacio del usuario
Para compilar el espacio de usuario, haz lo siguiente:
- Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- Compila el entorno:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Cómo compilar el kernel
Para trout
1.1, AOSP proporciona la base de código del kernel. El trout
está compuesto por el mismo código que el ACK posterior 5.10, con la adición de
Módulos específicos de trout
para subsistemas de VirtIO
- Para clonar el kernel, ejecuta lo siguiente:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Para compilar el kernel, ejecuta lo siguiente:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Tu proveedor de hipervisor podría tener una configuración de kernel diferente requerida o adicional módulos que deben compilarse. Asegúrate de seguir esta guía específica, si se proporciona.
Cumplimiento
Cuando AAOS se ejecuta como una VM invitada, nuestro objetivo es ser una implementación de Android compatible desde el
desde la perspectiva del framework. Los problemas del host son para el ámbito de cada implementación y están fuera del
el alcance de trout
1.1.
No realizamos una validación adicional de xTS en trout
1.1. Continuar
para consultar la siguiente explicación sobre la compatibilidad de CTS en trout
1.0.
En trout
1.0, quedan varios problemas de CTS. Los siguientes módulos de CTS son conocidos por
incluir pruebas fallidas:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases Casos de prueba de CtsVideo CtsHostsideNetworkTests CtsActivityManagerBackgroundActivityTestCases Casos de prueba de CtsAdbHost Casos de prueba de hardwarenativos de Cts Casos de prueba de contenido de Cts Casos de prueba de host de CtsCar Casos de prueba de CtsOs CtsStatsdHostTestCases CtsVoiceInteractionTestCases Casos de prueba de CtsView Casos de prueba de la cámara de Cts Casos de prueba de CtsLocationGnss Casos de prueba de CtsGraphics Casos de prueba de host de CtsIncident Casos de instalación de prueba de host de Cts Casos de prueba de inicio verificadodeCtsNative Casos de prueba de CtsNet |
CtsWindowManagerDeviceTestCases Casos de prueba de CtsMediaStress Casos de prueba de CtsApp Pruebas de CtsUsb CtsAutoFillServiceTestCases Casos de prueba de CtsDisplay CtsMediaTestCases Casos de prueba de CtsDeqp CtsDumpsysHostTestCases CtsOpenGLTestCasesCtsLibcoreTestCases Casos de prueba de CtsSecurityHost CtsInputMethodTestCases CtsStatsdAtomHostTestCases CtsPermission4TestCases CtsNNAPIBenchmarkTestCases CtsSimpleperfTestCases CtsAccessibilityTestCases Casos de prueba de CtsAppSecurityHostTest Casos de prueba de CtsKeystore |
Se sabe que las siguientes áreas de CTS-V incluyen pruebas fallidas:
Prueba del Selector de vehículos Prueba de Bluetooth de bajo consumo (BLE) para anunciantes Verificador de calidad de video de transmisión Prueba de dispositivo Bluetooth HID Prueba del micrófono ultrasonido de alta fidelidad Prueba de ultrasonido de alta fidelidad con bocinas |
Prueba obligatoria de dispositivo desbloqueado Prueba de descubrimiento del sensor dinámico Prueba del sensor de lejanía Prueba de movimiento significativo Prueba de notificación de enrutamiento de salida de audio Prueba de solicitud o sugerencia de red |
Notas de la versión
trout
1.1 contiene los siguientes problemas conocidos:
- Las compilaciones de usuario de
trout
no están disponibles. El sistema se compila-userdebug
, que puede afectar algunas pruebas del CTS - El inicio verificado de Android (AVB) no es compatible.
- Es posible que algunos subsistemas de Android no estén disponibles, como Secure World y NNHAL.
- El acceso a la red para invitados generalmente se proporciona a través de un adaptador de Wi-Fi virtualizado y
un
virtio-net
por túnel. La conectividad del lado del host depende de la implementación específica de tu hipervisor. - Algunas implementaciones podrían ofrecer capacidad limitada o nula de Bluetooth.
- Es posible que una inyección de eventos de VHAL no funcione con algunos sensores.
- Algunas cargas de trabajo pesadas pueden causar fallas en la reproducción de audio.
- En algunas implementaciones, el reinicio de adb del invitado AAOS podría reiniciar todo el sistema.
- STS puede causar inestabilidad del sistema y requerir un reinicio.
Para obtener información adicional, consulta las notas de la versión del socio correspondientes a tu implementación específica de
trout