A través de un nuevo producto llamado trout
, Android Automotive (AAOS) ahora brinda soporte para la implementación como una máquina virtual (VM) invitada en entornos compatibles con el estándar VirtIO . trout
se basa en la plataforma de referencia virtual Cuttlefish y está disponible como la configuración del dispositivo trout
. El código fuente del espacio de usuario se puede encontrar en device/google/trout
. La siguiente tabla describe la tecnología utilizada para virtualizar cada uno de los subsistemas de trout
.
Rasgo | Tecnología |
---|---|
HAL de control de audio | vsock/gRPC |
HAL de audio | virtio-snd |
Bluetooth | virtio-console |
Estado de descarga HAL | vsock/gRPC |
Sistema de vista extendida (EVS) | virtio-video |
modo garaje | vsock/gRPC |
Gráficos | virtio-gpu |
Sistema mundial de navegación por satélite (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Entrada de pantalla táctil | virtio-input |
HAL del vehículo | vsock/gRPC |
Trucha extensible
La trout
se puede utilizar como punto de partida para crear nuevos objetivos Android de información y entretenimiento en el vehículo (IVI). La infraestructura de construcción está diseñada para ser ampliada y personalizada. 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 se pueden reemplazar individualmente con implementaciones personalizadas, o se pueden mantener las implementaciones predeterminadas, pero se pueden ajustar ciertos parámetros de configuración para establecer una comunicación adecuada entre máquinas virtuales en el entorno de destino. Estos HAL (incluidos Vehicle HAL, Audio Control HAL y Dumpstate HAL) se implementan por medio de una interfaz gRPC respaldada por una conexión vsock
entre el invitado AAOS y un sistema host que proporciona la implementación de funciones subyacente. Estos deben configurarse mediante el suministro de los parámetros de conexión vsock
adecuados como propiedades del proveedor.
Trucha de construcción
Compilar el espacio de usuario
Para compilar el espacio de usuario:
- Descargue el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- Construir el entorno:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Construyendo el núcleo
Para trout
1.0, el código base del kernel se proporciona en AOSP. El núcleo de trout
está compuesto por el mismo código que el ACK 5.10 anterior, con la adición de módulos específicos de trout
para los subsistemas VirtIO.
- Para clonar el núcleo, ejecute:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Para compilar el kernel para el entorno OpenSynergy, ejecute:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Cumplimiento
Cuando AAOS se ejecuta como una máquina virtual invitada, nuestro objetivo es ser una implementación de Android compatible desde la perspectiva del marco. Los problemas del lado del host son competencia de cada implementación y están fuera del alcance de trout
1.0.
En trout
1.0, quedan varios problemas de CTS. Se sabe que los siguientes módulos CTS incluyen fallas en las pruebas:
CtsEscenificadoInstalarHostPruebaCasos CtsRollbackManagerHostTestCases CtsVideoTestCases CtsHostsideNetworkPruebas CtsActivityManagerFondoActividadPruebaCasos CtsAdbHostTestCases CtsNativoHardwarePruebaCasos CtsContentTestCases CtsCarHostPruebaCasos Casos de prueba CtsOs CtsStatsdHostTestCases CtsVoiceInteractionTestCases CtsViewTestCases CtsCameraTestCasos CtsUbicaciónGnssPruebaCasos CtsGraphicsTestCasos CtsIncidenteHostPruebaCasos CtsInstallHostTestCasos CtsNativeVerifiedBootTestCases CtsNetTestCasos | CtsWindowManagerDeviceTestCases CtsMediaStressTestCasos Casos de prueba de CtsApp CtsUsbPruebas CtsAutoFillServiceTestCases CtsDisplayTestCases Casos de prueba de CtsMedia Casos de prueba CtsDeqp CtsDumpsysHostTestCasos CtsOpenGLTestCasesCtsLibcoreTestCases CtsSeguridadHostTestCases CtsEntradaMétodoPruebaCasos CtsStatsdAtomHostTestCasos CtsPermission4TestCases CtsNNAPIBenchmarkCasos de prueba CtsSimpleperfTestCasos CtsAccessibilityTestCases CtsAppSeguridadHostTestCasos CtsKeystoreTestCases |
Se sabe que las siguientes áreas de CTS-V incluyen fallas en las pruebas:
Prueba de lanzador de coches Prueba de anunciante de Bluetooth de baja energía (BLE) Verificador de calidad de transmisión de video Prueba de dispositivo Bluetooth HID Prueba de micrófono de ultrasonido de alta fidelidad Prueba de altavoz de ultrasonido de alta fidelidad | Dispositivo desbloqueado Prueba requerida Prueba de descubrimiento de sensor dinámico Prueba de sensor fuera del cuerpo Prueba de movimiento significativo Prueba de notificación de enrutamiento de salida de audio Prueba de solicitud o sugerencia de red |
Notas de lanzamiento
trout
1.0 contiene los siguientes problemas conocidos:
- Las compilaciones de usuarios de
trout
no están disponibles. El sistema está construido como-userdebug
, lo que puede afectar algunas pruebas de CTS. - El acceso a TrustZone para Android no es compatible con
trout
1.0. - El arranque verificado de Android (AVB) no es compatible.
- Los aceleradores neuronales no están expuestos a NNAPI en
trout
1.0. - La virtualización Wi-Fi no está disponible y algunas implementaciones ofrecen soporte limitado para un túnel `virtio-net`.
- En algunos casos, la transferencia de archivos grandes desde o hacia Android a través de Android Debug Bridge (ADB) puede hacer que el sistema se cuelgue.
- En algunos casos, la aplicación de SMS puede dejar de sincronizarse con un teléfono Bluetooth emparejado.
- Es posible que una inyección de eventos VHAL no funcione para algunos sensores.
- La serie ADB del SoC subyacente no se reenvía a Android como la serie ADB del invitado.
- En algunas implementaciones, es posible que Ethernet no esté disponible para el host para la conectividad de red.
Para obtener detalles adicionales, consulte las notas de la versión del socio para su implementación específica de trout
.
A través de un nuevo producto llamado trout
, Android Automotive (AAOS) ahora brinda soporte para la implementación como una máquina virtual (VM) invitada en entornos compatibles con el estándar VirtIO . trout
se basa en la plataforma de referencia virtual Cuttlefish y está disponible como la configuración del dispositivo trout
. El código fuente del espacio de usuario se puede encontrar en device/google/trout
. La siguiente tabla describe la tecnología utilizada para virtualizar cada uno de los subsistemas de trout
.
Rasgo | Tecnología |
---|---|
HAL de control de audio | vsock/gRPC |
HAL de audio | virtio-snd |
Bluetooth | virtio-console |
Estado de descarga HAL | vsock/gRPC |
Sistema de vista extendida (EVS) | virtio-video |
modo garaje | vsock/gRPC |
Gráficos | virtio-gpu |
Sistema mundial de navegación por satélite (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Entrada de pantalla táctil | virtio-input |
HAL del vehículo | vsock/gRPC |
Trucha extensible
La trout
se puede utilizar como punto de partida para crear nuevos objetivos Android de información y entretenimiento en el vehículo (IVI). La infraestructura de construcción está diseñada para ser ampliada y personalizada. 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 se pueden reemplazar individualmente con implementaciones personalizadas, o se pueden mantener las implementaciones predeterminadas, pero se pueden ajustar ciertos parámetros de configuración para establecer una comunicación adecuada entre máquinas virtuales en el entorno de destino. Estos HAL (incluidos Vehicle HAL, Audio Control HAL y Dumpstate HAL) se implementan por medio de una interfaz gRPC respaldada por una conexión vsock
entre el invitado AAOS y un sistema host que proporciona la implementación de funciones subyacente. Estos deben configurarse mediante el suministro de los parámetros de conexión vsock
adecuados como propiedades del proveedor.
Trucha de construcción
Compilar el espacio de usuario
Para compilar el espacio de usuario:
- Descargue el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- Construir el entorno:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
Construyendo el núcleo
Para trout
1.0, el código base del kernel se proporciona en AOSP. El núcleo de trout
está compuesto por el mismo código que el ACK 5.10 anterior, con la adición de módulos específicos de trout
para los subsistemas VirtIO.
- Para clonar el núcleo, ejecute:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Para compilar el kernel para el entorno OpenSynergy, ejecute:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
Cumplimiento
Cuando AAOS se ejecuta como una máquina virtual invitada, nuestro objetivo es ser una implementación de Android compatible desde la perspectiva del marco. Los problemas del lado del host son competencia de cada implementación y están fuera del alcance de trout
1.0.
En trout
1.0, quedan varios problemas de CTS. Se sabe que los siguientes módulos CTS incluyen fallas en las pruebas:
CtsEscenificadoInstalarHostPruebaCasos CtsRollbackManagerHostTestCases CtsVideoTestCases CtsHostsideNetworkPruebas CtsActivityManagerFondoActividadPruebaCasos CtsAdbHostTestCases CtsNativoHardwarePruebaCasos CtsContentTestCases CtsCarHostPruebaCasos Casos de prueba CtsOs CtsStatsdHostTestCases CtsVoiceInteractionTestCases CtsViewTestCases CtsCameraTestCasos CtsUbicaciónGnssPruebaCasos CtsGraphicsTestCasos CtsIncidenteHostPruebaCasos CtsInstallHostTestCasos CtsNativeVerifiedBootTestCases CtsNetTestCasos | CtsWindowManagerDeviceTestCases CtsMediaStressTestCasos Casos de prueba de CtsApp CtsUsbPruebas CtsAutoFillServiceTestCases CtsDisplayTestCases Casos de prueba de CtsMedia Casos de prueba CtsDeqp CtsDumpsysHostTestCasos CtsOpenGLTestCasesCtsLibcoreTestCases CtsSeguridadHostTestCases CtsEntradaMétodoPruebaCasos CtsStatsdAtomHostTestCasos CtsPermission4TestCases CtsNNAPIBenchmarkCasos de prueba CtsSimpleperfTestCasos CtsAccessibilityTestCases CtsAppSeguridadHostTestCasos CtsKeystoreTestCases |
Se sabe que las siguientes áreas de CTS-V incluyen fallas en las pruebas:
Prueba de lanzador de coches Prueba de anunciante de Bluetooth de baja energía (BLE) Verificador de calidad de transmisión de video Prueba de dispositivo Bluetooth HID Prueba de micrófono de ultrasonido de alta fidelidad Prueba de altavoz de ultrasonido de alta fidelidad | Dispositivo desbloqueado Prueba requerida Prueba de descubrimiento de sensor dinámico Prueba de sensor fuera del cuerpo Prueba de movimiento significativo Prueba de notificación de enrutamiento de salida de audio Prueba de solicitud o sugerencia de red |
Notas de lanzamiento
trout
1.0 contiene los siguientes problemas conocidos:
- Las compilaciones de usuarios de
trout
no están disponibles. El sistema está construido como-userdebug
, lo que puede afectar algunas pruebas de CTS. - El acceso a TrustZone para Android no es compatible con
trout
1.0. - El arranque verificado de Android (AVB) no es compatible.
- Los aceleradores neuronales no están expuestos a NNAPI en
trout
1.0. - La virtualización Wi-Fi no está disponible y algunas implementaciones ofrecen soporte limitado para un túnel `virtio-net`.
- En algunos casos, la transferencia de archivos grandes desde o hacia Android a través de Android Debug Bridge (ADB) puede hacer que el sistema se cuelgue.
- En algunos casos, la aplicación de SMS puede dejar de sincronizarse con un teléfono Bluetooth emparejado.
- Es posible que una inyección de eventos VHAL no funcione para algunos sensores.
- La serie ADB del SoC subyacente no se reenvía a Android como la serie ADB del invitado.
- En algunas implementaciones, es posible que Ethernet no esté disponible para el host para la conectividad de red.
Para obtener detalles adicionales, consulte las notas de la versión del socio para su implementación específica de trout
.