Configuración para el desarrollo en AOSP (9.0 o versiones posteriores)

Antes de descargar y compilar la rama main de la fuente de Android, asegúrate de que tu hardware cumpla con los requisitos necesarios y de que tienes correctamente instalado el software requerido. También debes conocer los siguientes términos:

Git
Git es un sistema de control de versión distribuido, gratuito y de código abierto. Android lo usa para operaciones locales como ramificaciones, confirmaciones, diferencias y ediciones. Si deseas obtener ayuda para aprender sobre Git, consulta la documentación de Git.
Repo
Repo es un wrapper de Python para Git que simplifica la ejecución de operaciones complejas en varios repositorios de Git. Repo no reemplaza Git para todas las operaciones de control de versión; solo facilita la realización de operaciones complejas de Git. Usa archivos de manifiesto para agregar proyectos de Git al superproyecto de Android.
Archivo de manifiesto
Un archivo de manifiesto es un archivo en formato XML que especifica dónde se ubican los varios proyectos de Git en la fuente de Android dentro del árbol de fuente de AOSP.

Cumple con los requisitos de hardware

Tu estación de trabajo de desarrollo debe cumplir o superar estos requisitos de hardware:

  • Un sistema de 64 bits

  • Al menos 400 GB de espacio libre en el disco para verificar y compilar el código (250 GB para la verificación y 150 GB para la compilación).

  • Al menos 64 GB de RAM. Google usa máquinas de 72 núcleos con 64 GB de RAM para compilar Android. Con esta configuración de hardware, una compilación completa de Android toma aproximadamente 40 minutos, y una compilación incremental solo toma unos pocos minutos. En cambio, con una máquina de 6 núcleos y 64 GB de RAM, una compilación completa demora cerca de 6 horas.

Cumple con los requisitos del sistema operativo

Tu estación de trabajo de desarrollo debe ejecutar cualquier distribución de Linux de 64 bits con la biblioteca GNU C (glibc) 2.17 o una versión posterior.

Instala los paquetes obligatorios

Para compilar Android 11 o una versión posterior, debes usar Ubuntu 18.04 o una versión posterior. Para instalar los paquetes obligatorios para Ubuntu 18.04 o versiones posteriores, ejecuta el siguiente comando:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Entre los paquetes que se instalan, este comando instala Git, que se usa para descargar la fuente de AOSP.

Instala el software obligatorio

Para poder trabajar con AOSP, debes tener instalados OpenJDK, Make, Python 3 y Repo. La rama principal de AOSP viene con versiones precompiladas de OpenJDK, Make y Python 3, por lo que no necesitarás realizar pasos de instalación adicionales. En la siguiente sección, se explica cómo instalar Repo.

Cómo instalar Repo

Sigue estos pasos para instalar Repo:

  1. Descarga la información del paquete actual:

    sudo apt-get update
    
  2. Ejecuta el siguiente comando para instalar el Launcher de Repo:

    sudo apt-get install repo
    

    El Launcher de Repo ofrece una secuencia de comandos de Python que inicializa un procesamiento y descarga la herramienta Repo completa.

    Si se realiza de forma correcta, continúa con el paso 4.

  3. (Opcional) Instala Repo de forma manual usando la siguiente serie de comandos:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    Los primeros tres comandos configuran un archivo temporal, descargan Repo en el archivo y verifican que la clave proporcionada coincida con la requerida. Si estos comandos se ejecutan de forma correcta, el comando final instala el Launcher de Repo.

  4. Verifica la versión del Launcher de Repo:

    repo version
    

    El resultado debería mostrar la versión 2.5 o una posterior, por ejemplo:

    repo launcher version 2.40

Configura un directorio de salida alternativo

De manera predeterminada, el resultado de cada compilación se almacena en el subdirectorio de out/ del árbol de fuentes con el que coincide. Puedes anular este directorio si exportas la variable de entorno OUT_DIR. Por ejemplo, si deseas almacenar el resultado en un controlador diferente, puedes apuntar OUT_DIR a ese controlador:

export OUT_DIR=my_other_drive

¿Qué sigue?