Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Plataforma de referencia

A través de un nuevo producto llamado trucha, Android Automoción (AAOS) ahora proporciona soporte para el despliegue como una máquina virtual invitada (VM) en entornos compatibles con el VirtIO estándar. trout se basa en la jibia plataforma de referencia virtual y está disponible como la trout configuración del dispositivo. El código fuente de 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 .

El equipo de la plataforma de la AAOS ha desarrollado y verificado la versión de la plataforma de referencia inicial 0,9 en el Qualcomm SA8155P chipset con el Lantronix hardware de referencia junto con el COQOS hipervisor SDK de OpenSynergy.
Característica Tecnología
Control de audio HAL vsock/gRPC
Audio HAL virtio-snd
Dumpstate HAL vsock/gRPC
Sistema de vista extendida (EVS) virtio-video and vendor extensions
Modo garaje vsock/gRPC
Gráficos virtio-gpu
Sensor HAL 2.0 virtio-scmi and IIO
Entrada de pantalla táctil virtio-input
Vehículo HAL vsock/gRPC

La extensión de trout

trout se puede utilizar como punto de partida para crear nuevas en los vehículos Infotainment (IVI) objetivos Android. La infraestructura de construcción está diseñada para ampliarse 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 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 VM en el entorno de destino. Estos HAL (incluyendo HAL vehículo, HAL de control de audio, y Dumpstate HAL) se implementan por medio de una interfaz de GRPC respaldado por una vsock conexión entre el huésped AAOS y un sistema anfitrión que proporciona la aplicación característica subyacente. Estos deben ser configuradas por medio de suministro de los propios vsock parámetros de conexión como las propiedades de los proveedores.

La construcción de trout

Compilar el espacio de usuario

Para compilar el espacio de usuario:

  1. Descargar el árbol de código fuente de Android:
    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. Construir el medio ambiente:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Construyendo el kernel

Para la versión 0.9 de la plataforma de referencia inicial, debido a una limitación de configuración del hipervisor, el kernel de Android no se puede personalizar. Se proporcionará un kernel prediseñado como parte de la versión del hipervisor de OpenSynergy. El núcleo está basado en Android Común Kernel rama common-android11-5.4 con algunas modificaciones para incorporar los últimos controladores Virtio. Con fines informativos, el código fuente del kernel correspondiente está disponible en estas ubicaciones:

Cumplimiento

El plan es lograr el 100% de compatibilidad en una versión posterior.

Limitaciones y elementos no compatibles en trout

  • Bluetooth.
  • Sistema global de navegación por satélite (GNSS).
  • LaunchCVD. trout no tiene actualmente arranque desde crosvm .
  • Gráficos. En esta versión, el dispositivo virgl VirtIO GPU sólo funciona cuando dmabuf . está desactivado. La interfaz de usuario muestra colores invertidos para rojo y azul.