Descarga, compila y ejecuta

En esta página, se explica cómo descargar, compilar y ejecutar AAOS SDV en Cuttlefish.

Cómo inicializar un cliente de Repo

Configura tu cliente para acceder al repositorio de código fuente de Android:

  1. Crea un directorio de trabajo y navega hasta este, como sdv:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Inicializa tu directorio de trabajo para controlar el código fuente:

    En este ejemplo, se usa la rama 26Q2-fs-release.

    RELEASE=26Q2-fs-release
    repo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE

    La opción -u es obligatoria y se utiliza para identificar un archivo de manifiesto, que es un archivo en formato XML que especifica dónde se colocan los distintos proyectos Git en el código fuente de Android dentro de tu directorio de trabajo. En este ejemplo, no se especifica el nombre del archivo de manifiesto, por lo que el comando utiliza el archivo de manifiesto predeterminado (default.xml).

    La opción -b identifica la rama que estás por inicializar.

    La salida debería contener el siguiente mensaje:

    repo has been initialized in path_to_working_directory

Cómo descargar el código fuente de AAOS SDV

Ejecuta el siguiente comando para descargar el árbol del código fuente de Android en tu directorio de trabajo:

repo sync -c -j8

El argumento -c le indica a Repo que obtenga la rama actual del manifiesto del servidor. El comando -j8 divide la sincronización en subprocesos para que se completen más rápido.

Cómo configurar tu entorno de compilación

Desde tu directorio de trabajo, obtén la secuencia de comandos envsetup.sh para configurar el entorno de compilación.

source build/envsetup.sh

Esta secuencia de comandos importa varios comandos que te permiten trabajar con el código fuente de Android, incluidos los comandos que se usan en esta página. Para ver el código fuente de la secuencia de comandos, consulta platform/build/envsetup.sh. Para ver la ayuda integrada, escribe hmm.

Cómo elegir un destino

Antes de compilar SDV, identifica un destino para compilar. Para identificarlo, usa el comando lunch seguido de una cadena que represente el destino para el que estás compilando. Por ejemplo, usa este comando para compilar un destino para el emulador de Cuttlefish:

lunch sdv_core_cf-trunk_staging-userdebug

Este comando selecciona el producto, la configuración de lanzamiento y la variante para compilar, y almacena la selección en el entorno.

Los destinos lunch para SDV se proporcionan en un proyecto de Git independiente ubicado en el directorio devices/google/sdv. Consulta una descripción detallada de los destinos disponibles en device/google/sdv/README.md. Los principales destinos de Cuttlefish (cf) son los siguientes:

  • sdv_core_cf-trunk_staging-userdebug - Compila una imagen de AAOS SDV Core (sdv_core) que se ejecuta en Cuttlefish (cf).
  • sdv_media_cf-trunk_staging-userdebug - Compila una imagen de AAOS SDV Core con APIs de medios virtualizadas con virtIO (sdv_media).
  • sdv_media_har_cf-trunk_staging-userdebug - Compila una imagen que extiende el destino lunch de medios de AAOS SDV (sdv_media_cf) para contener el renderizador de alta disponibilidad (HAR). HAR se ejecuta automáticamente durante el inicio.
  • sdv_ivi_cf-trunk_staging-userdebug - Compila una imagen de In-Vehicle Infotainment (IVI) que contiene las apps de ejemplo de SDV Gateway y Java.
  • sdv_ivi_cf_ds-trunk_staging-userdebug - Compila una imagen que extiende el destino IVI de AAOS SDV (sdv_ivi_cf) y que incluye la implementación de DriverUI y del panel de instrumentos de Display Safety.

Cómo compilar AAOS SDV

Para compilar tu destino, ejecuta el siguiente comando. Según la especificación de tu estación de trabajo, la primera compilación tarda entre 30 y 60 minutos. Las compilaciones posteriores tardan mucho menos tiempo.

m

La salida de tu compilación aparece en $OUT_DIR. Si compilas diferentes destinos, cada compilación aparece en $OUT_DIR.

Cómo probar tu compilación con Cuttlefish

Después de compilar AAOS SDV, prueba tu compilación con Cuttlefish.

  1. Para iniciar Cuttlefish con tu compilación, haz lo siguiente:

    cvd create

    Cuttlefish se ejecuta con el destino compilado (sdv_core_cf-trunk_staging-userdebug). Una vez que se inicia Cuttlefish, se muestra este mensaje:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Ejecuta adb para conectarte a Cuttlefish.

  3. Ejecuta adb devices para verificar que tu compilación se esté ejecutando. Se muestra un resultado similar a este:

    List of devices attached
    0.0.0.0:6520 device
  4. Ejecuta cvd stop para apagar el dispositivo.

Para ejecutar varias instancias de Cuttlefish con diferentes compilaciones, consulta Cuttlefish: multi-tenancy.

Solucionar problemas

En esta sección, se explica cómo solucionar los errores que pueden ocurrir durante la descarga, la compilación o la ejecución de AAOS SDV.

Errores de RBE

Si encuentras errores de Remote Build Execution (RBE), quita las definiciones de USE_RBE y ENABLE_RBE_BOOTSTRAP de .bashrc o .zshrc.

cvd: VM manager crosvm isn't supported on this machine

Si Cuttlefish informa que el administrador de VMs crosvm no es compatible con tu máquina, ejecuta el siguiente comando para instalar Cuttlefish:

sudo apt install cuttlefish-common

cvd not found

Si recibes un error cvd not found, haz lo siguiente:

  1. Vuelve a configurar tu compilación de nuevo.
  2. Continúa con Cómo elegir un destino.

Bucles de fallas de Cuttlefish

Si Cuttlefish entra en un bucle de fallas, haz lo siguiente:

  1. Para detener todas las instancias de Cuttlefish, ejecuta cvd stop.
  2. Usa Cuttlefish para volver a probar tu compilación.