Puedes crear compilaciones para dispositivos Nexus y Pixel mediante las compilaciones del Proyecto de código abierto de Android (AOSP) y los objetos binarios específicos de hardware relevantes. Si deseas ver las compilaciones de Android disponibles y los dispositivos de destino, consulta Etiquetas y compilaciones de código fuente.
También puedes crear compilaciones para las placas de referencia de Android DragonBoard 845c, HiKey 960, Khadas VIM3 y Qualcomm Robotics Board RB5, que están diseñadas para ayudar a que los proveedores de componentes que no sean de dispositivos móviles puedan desarrollar y migrar controladores a las versiones de Android. Las placas de referencia simplifican los esfuerzos de actualización, reducen el tiempo de salida al mercado de los dispositivos Android nuevos, reducen los costos del dispositivo (ya que permiten que los ODM y OEM elijan entre una mayor variedad de componentes compatibles), y aumentan la velocidad de innovación de los proveedores de componentes.
Google es compatible con las placas de referencia de Android DragonBoard 845c, HiKey 960, Khadas VIM3 y Qualcomm Robotics Board RB5. AOSP ofrece compatibilidad con la fuente y la placa del kernel para que los desarrolladores puedan crear y depurar fácilmente controladores periféricos, desarrollar código para el kernel y completar otras tareas con menos restricciones de OEM.
DragonBoard 845c
DragonBoard 845c forma parte de la plataforma RB3 y está disponible en 96boards.org.
Figura 1: DragonBoard 845c
Cómo compilar el espacio del usuario
Usa los siguientes comandos para descargar y compilar Android en la placa DragonBoard 845c.
Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Descarga el paquete del proveedor actual:
./device/linaro/dragonboard/fetch-vendor-package.sh
Compila el AOSP:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
Cómo instalar imágenes locales
Inicia db845c en Modo fastboot [Fastboot mode].
Ejecuta el siguiente comando:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
Si es necesario, puedes ejecutar la siguiente secuencia de comandos después de iniciar db845c en el modo de escritura en la memoria flash por USB para realizar la recuperación de la placa QDL (consulta Recuperación de DragonBoard):
./device/linaro/dragonboard/installer/db845c/recovery.sh
Cómo compilar el kernel
Para compilar los artefactos del kernel de la imagen genérica del kernel (GKI) de Android correspondiente a DragonBoard db845c, haz lo siguiente:
Ejecuta los siguientes comandos para clonar la fuente del kernel, y las secuencias de comandos de compilación y cadenas de herramientas de Android compiladas previamente.
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.db845c ./build/build.sh
Borra todos los objetos de
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
, copia los artefactos de compilación deout/android-mainline/dist/
en${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
y vuelve a compilar el espacio del usuario con lo siguiente:make TARGET_KERNEL_USE=mainline -j24
A continuación, escribe las nuevas imágenes boot.img y super.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).
Prueba el kernel de GKI:
Consulta la compilación más reciente de kernel_aarch64.
En artefactos, descarga la imagen.
Usa gzip para comprimir la imagen
gzip Image
Cópiala en
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Vuelve a compilar el AOSP y escribe la nueva imagen boot.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).
Placas HiKey 960
La placa HiKey 960 está disponible en Amazon y Lenovator.
Figura 2: Placa HiKey 960 de Lenovator
Cómo compilar el espacio del usuario
Usa los siguientes comandos para descargar y compilar Android en la placa HiKey 960.
Descarga el árbol de fuentes de Android
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Descarga el paquete del proveedor actual
./device/linaro/hikey/fetch-vendor-package.sh
Compilación
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
Cómo instalar imágenes locales
Para seleccionar el modo fastboot, enciende el interruptor 3 (si deseas obtener más información, consulta la Guía de introducción a HiKey 960).
Enciende la placa.
Escribe en la memoria flash imágenes locales:
./device/linaro/hikey/installer/hikey960/flash-all.sh
Apaga el interruptor 3 y reinicia la placa.
Cómo compilar el kernel
Para compilar los artefactos del kernel de GKI de Android de HiKey960, haz lo siguiente:
Ejecuta los siguientes comandos:
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.hikey960 build/build.sh
Borra todos los objetos de
${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/
y, luego, copia los artefactos de compilación de la compilación del kernel deout/android12-5.4/dist/
en${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.Concatena la DTB:
cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
Compila un espacio de usuario para Android
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
A continuación, escribe el nuevo kernel en la memoria flash del dispositivo (consulta Cómo compilar el espacio del usuario).
Prueba el kernel de la imagen genérica del kernel (GKI)
Consulta la compilación más reciente de kernel_aarch64.
En artefactos, descarga el archivo
Image
y cópialo en${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.Comprime la imagen y concatena el DTB
gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
- Compila y escribe el nuevo kernel en la memoria flash del dispositivo (consulta Cómo compilar el espacio del usuario).
Cómo configurar el número de serie
Para configurar el número de serie aleatorio, ejecuta lo siguiente:
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
Bootloader exporta el número de serie generado al kernel mediante androidboot.serialno=
. Este parámetro se pasa por la línea de comandos del kernel en Android 11 y versiones anteriores, y por medio de bootconfig en Android 12 con la versión de kernel 5.10 o posterior.
Cómo establecer la resolución del monitor
Edita el parámetro BOARD_KERNEL_CMDLINE
de device/linaro/hikey/hikey960/BoardConfig.mk
y establece la configuración de video
. Por ejemplo, la configuración para un monitor de 24 pulgadas es video=HDMI-A-1:1280x800@60
.
Placas VIM3 y VIM3L
Las placas Vim3 y VIM3L de Khadas están disponibles en el sitio web de Khadas.
Figura 3: Placa de VIM3 de Khadas
Compilación del espacio de usuario
Usa los siguientes comandos para descargar y compilar Android en la placa VIM3.
Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Compilación:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
De forma predeterminada, Android se compila con el kernel 5.10. Para usar compilaciones previas del kernel 5.4, haz lo siguiente:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
Para VIM3L, usa lo siguiente:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
Cómo instalar imágenes iniciales
Coloca la placa en el modo de actualización de USB según las instrucciones de escritura en la memoria flash de VIM3.
Escribe las imágenes iniciales de la memoria flash a la RAM:
cd path/to/aosp/device/amlogic/yukawa/bootloader/
./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
./tools/update run 0xfffa0000
./tools/update bl2_boot u-boot_kvim3_noab.bin
- Si tienes problemas con los permisos, consulta la sección de reglas de udev para agregar las reglas de USB adecuadas.
- Si
tools/update
no funciona, usa la herramienta pyamlboot para escribir a placa en la memoria flash.
Después de que se inicia U-Boot y se ejecuta fastboot, ejecuta los siguientes comandos:
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
Desconecta y conecta el cable de alimentación.
La placa debería iniciarse en el U-boot que se acaba de instalar y, luego, ingresa el Modo fastboot [Fastboot mode].
Cómo instalar imágenes
Ingresa el Modo fastboot [Fastboot mode] (consulta la sección anterior para obtener instrucciones).
Escribe todas las imágenes de Android en la memoria flash:
cd out/target/product/yukawa
fastboot flash boot boot.img
fastboot flash super super.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot flash recovery recovery.img
fastboot flash dtbo dtbo-unsigned.img
fastboot reboot
Cómo compilar el kernel
Para compilar los artefactos del kernel para VIM3 o VIM3L, haz lo siguiente:
Descarga cadenas de herramientas adicionales:
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
Clona la fuente del kernel:
# for 4.19 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
# for 5.4 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
# for 5.10 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
# for 5.15 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
Exporta las variantes de compilación:
export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export LLVM=1
Compila el kernel:
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
Comprime el kernel y copia build_artifacts en
${AOSP_TOPDIR}/device/amlogic/yukawa-kernel
:lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
KERN_VER=4.19 # for 4.19 kernel
KERN_VER=5.4 # for 5.4 kernel
KERN_VER=5.10 # for 5.10 kernel
KERN_VER=5.15 # for 5.15 kernel
for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f) done
cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
Vuelve a compilar el espacio de usuario de Android (consulta Cómo compilar el espacio de usuario) y escribe en la memoria flash del nuevo kernel (consulta Cómo escribir imágenes en la memoria flash).
Qualcomm Robotics Board RB5
La plataforma Robotics Board RB5 está disponible en 96boards.org.
Figura 4: Robotics Board RB5
Cómo compilar el espacio del usuario
Usa los siguientes comandos para descargar y compilar Android en RB5.
Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Descarga el paquete del proveedor actual:
./device/linaro/dragonboard/fetch-vendor-package.sh
Compila el AOSP:
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
Cómo instalar imágenes locales
Inicia RB5 en el Modo fastboot [Fastboot mode].
Ejecuta el siguiente comando:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
Si es necesario, puedes ejecutar la siguiente secuencia de comandos después de iniciar RB5 en el modo de escritura en la memoria flash por USB para realizar la recuperación de la placa QDL (consulta Recuperación de RB5):
./device/linaro/dragonboard/installer/rb5/recovery.sh
Cómo compilar el kernel
Para compilar los artefactos del kernel de la imagen genérica del kernel (GKI) de Android de RB5, haz lo siguiente:
Ejecuta los siguientes comandos para clonar la fuente del kernel, y las secuencias de comandos de compilación y cadenas de herramientas de Android compiladas previamente.
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.db845c ./build/build.sh
Borra todos los objetos de
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
, copia los artefactos de compilación deout/android-mainline/dist/
en${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
y vuelve a compilar el espacio de usuario con lo siguiente:make TARGET_KERNEL_USE=mainline -j24
A continuación, escribe las nuevas imágenes boot.img y super.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).
Prueba el kernel de GKI:
- Consulta la compilación más reciente de kernel_aarch64.
- En artefactos, descarga la imagen.
Usa gzip para comprimir la imagen
gzip Image
Cópiala en
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Vuelve a compilar el AOSP y escribe la nueva imagen boot.img en la memoria flash del dispositivo (consulta Cómo compilar el espacio de usuario).