Guía de Compilación y Despliegue de Android 12 en Orange Pi 5

Requisitos del Entorno de Compilación

Para compilar el sistema operativo Android 12 para la placa Orange Pi 5 (basada en el SoC RK3588S), es fundamental disponer de un entorno de desarrollo robusto. Se recomienda utilizar una máquina virtual con VMware Workstation 17 Pro o superior, configurada con los siguientes recursos mínimos para evitar cuellos de botella:

  • Sistema Operativo: Ubuntu 18.04.6 LTS (Desktop AMD64).
  • Procesador: Asignación de al menos 4 núcleos virtuales (ej. basado en un i5-8400).
  • Memoria RAM: 8 GB de RAM física.
  • Almacenamiento: 300 GB de espacio en disco (la compilación final y los archivos temporales ocupan aproximadamente 250 GB).

Configuración del Sistema y Dependencias

El primer paso consiste en preparar el sistema base instalando todas las herramientas necesarias para el árbol de fuentes de AOSP y las utilidades específicas de Rockchip.

# Actualizar los repositorios e instalar el conjunto base de herramientas de compilación
sudo apt update && sudo apt install -y \
    git gnupg flex bison gperf build-essential zip curl \
    zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
    lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev \
    ccache libgl1-mesa-dev libxml2-utils xsltproc unzip u-boot-tools

# Instalar dependencias adicionales críticas para resolver conflictos de compilación
sudo apt install -y libssl-dev python-minimal

# Instalar lz4 mediante snap; la versión de apt suele generar errores de parámetros en el build de Android
sudo snap install lz4

Optimización de Memoria mediante Swap

Dado que el proceso de compilación es intensivo en memoria, es altamente recomendable crear un archivo de intercambio adicional de 16 GB para prevenir fallos por falta de memoria (OOM).

# Definir la ruta y crear un archivo de 16GB lleno de ceros
SWAP_FILE="/mnt/swapfile_android_build"
sudo dd if=/dev/zero of=$SWAP_FILE bs=1M count=16384 status=progress

# Configurar permisos, formatear y activar el espacio de intercambio
sudo chmod 600 $SWAP_FILE
sudo mkswap $SWAP_FILE
sudo swapon $SWAP_FILE

# Verificar que el nuevo swap está correctamente montado
grep SwapTotal /proc/meminfo

Ajustes en el Árbol de Fuentes

Para evitar que el compilador Soong falle durante la generación de stubs de Java debido a límites de memoria del heap, es necesario modificar manualmente un archivo de configuración del sistema de compilación.

Abra el archivo build/soong/java/droidstubs.go en su editor de texto preferido. Localice la línea que contiene Flag(config.JavacVmFlags). y, justo en la línea inferior, añada la siguiente directiva para expandir el límite de memoria de la JVM:

Flag("-J-Xmx6114m").

Ejecución del Proceso de Compilación

Una vez configurado el entorno, proceda a compilar la imagen completa que incluye U-Boot, el Kernel de Linux y el framwork de Android, optimizada para salida por pantalla LCD.

# Acceder al directorio raíz del código fuente de Android 12
cd ~/Android_12_Source

# Habilitar la variable de entorno para el soporte de doble pantalla LCD
export DUAL_LCD=true

# Inicializar las variables de entorno y funciones del shell de compilación
source build/envsetup.sh

# Seleccionar la configuración de destino para la placa RK3588S en modo usuario de depuración
lunch rk3588s_s-userdebug

# Lanzar el script de compilación unificada (-A: Android, -U: Uboot, -K: Kernel, -u: empaquetado)
./build.sh -AUKu

Este proceso es extenso y requiere paciencia. Al finalizar exitosamente, los artefactos generados se almacenarán en la ruta rockdev/Image-rk3588s_s/. El archivo principal para el arranque desde tarjeta de memoria es update.img.

Preparación de la Tarjeta SD y Flasheo del Firmware

Para garantizar que la imagen se grabe correctamente en la tarjeta microSD y el sistema arranque sin problemas, siga este flujo de trabajo riguroso:

  1. Utilice la herramienta DiskGenius en Windows para preparar el medio físico: elimine absolutamente todas las particiones existentes en la tarjeta SD y convierta la tabla de particiones al formato GUID (GPT) si aún no lo está.
  2. Descargue y ejecute como Administrador la utiliadd oficial SD_Firmware_Tool v1.7.2.
  3. En la interfaz de la herramienta, seleccioen la letra de unidad correspondiente a su tarjeta SD, marque la casilla de SD Boot (o Modo SD), cargue el archivo update.img generado previamente y pulse el botón para iniciar la creación y flasheo de la imagen.

Etiquetas: Android-12 Orange-Pi-5 RK3588S AOSP-Build-System embedded-linux

Publicado el 7-9 19:45