Configurado para el desarrollo de AOSP (9.0 o posterior)

Antes de descargar y compilar la rama main de la fuente de Android, asegúrese de que su hardware cumpla con los requisitos necesarios y que el software requerido esté instalado correctamente. También debe estar familiarizado con los siguientes términos:

git
Git es un sistema de control de versiones distribuido, gratuito y de código abierto. Android usa Git para operaciones locales como bifurcaciones, confirmaciones, diferencias y ediciones. Para obtener ayuda para aprender Git, consulte la documentación de Git .
repositorio
Repo es un contenedor de Python para Git que simplifica la realización de operaciones complejas en múltiples repositorios de Git. Repo no reemplaza a Git para todas las operaciones de control de versiones, solo hace que las operaciones complejas de Git sean más fáciles de realizar.

Cumplir con los requisitos de hardware

Su 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 disco para verificar y compilar el código (250 GB para verificar + 150 GB para compilar).

  • Un mínimo de 64 GB de RAM. Google utiliza máquinas de 72 núcleos con 64 GB de RAM para construir Android. Con esta configuración de hardware, se necesitan aproximadamente 40 minutos para una compilación completa de Android y solo unos minutos para una compilación incremental de Android. Por el contrario, se necesitan aproximadamente 6 horas para una compilación completa con una máquina de 6 núcleos con 64 GB de RAM.

Cumplir con los requisitos del sistema operativo

Su estación de trabajo de desarrollo debe ejecutar Ubuntu 18.04 o posterior.

Instalar los paquetes necesarios

Para compilar Android 11 o superior, debes usar Ubuntu 18.04 o posterior. Para instalar los paquetes necesarios para Ubuntu 18.04 o posterior, ejecute el siguiente comando:

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

Entre los paquetes instalados, este comando instala Git, que se utiliza para descargar el código fuente de AOSP.

Instalar el software requerido

Antes de poder trabajar con AOSP, debe tener instalaciones de OpenJDK, Make, Python 3 y Repo. La rama principal AOSP de Android viene con versiones prediseñadas de OpenJDK, Make y Python 3, por lo que no se requieren pasos de instalación adicionales. La siguiente sección explica cómo instalar Repo.

Instalar repositorio

Siga estos pasos para instalar Repo:

  1. Descargue la información del paquete actual:

    $ sudo apt-get update
    
  2. Ejecute el siguiente comando para instalar el iniciador de repositorio:

    $ sudo apt-get install repo
    

    El iniciador de Repo proporciona un script de Python que inicializa un pago y descarga la herramienta Repo completa.

    Si tiene éxito, salte al paso 4.

  3. (opcional) Instale Repo manualmente 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 clave requerida. Si estos comandos tienen éxito, el comando final instala el iniciador de repositorio.

  4. Verifique la versión del iniciador de repositorio:

    $ repo version
    

    El resultado debe indicar una versión 2.5 o superior, por ejemplo:

    repo launcher version 2.40

Establecer un directorio de salida alternativo

De forma predeterminada, el resultado de cada compilación se almacena en el subdirectorio out/ del árbol fuente correspondiente. Puede anular este directorio exportando la variable de entorno OUT_DIR . Por ejemplo, si desea almacenar su salida en una unidad diferente, puede señalar OUT_DIR a esa unidad:

$ export OUT_DIR=my_other_drive