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 y Khadas VIM3, que están diseñadas con el objetivo de 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 y Khadas VIM3. 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
Compilación:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
Instalación de imágenes locales
Inicia db845c en Modo fastboot [Fastboot mode] (consulta Recuperación de DragonBoard).
Ejecuta el siguiente comando:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
Como alternativa, 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:
./device/linaro/dragonboard/installer/db845c/recovery.sh
Cómo escribir imágenes en la memoria flash desde ci.android.com
Puedes usar flash.android.com para probar fácilmente los últimos artefactos de compilación del AOSP en ci.android.com. No es necesario hacer la compilación, pero debes tener una placa DragonBoard 845c con el último bootloader en AOSP antes de comenzar.
En un navegador web, dirígete a flash.android.com.
Haz clic en Comenzar y omite el paso 1 (dado que tu dispositivo ya está en modo de desarrollador).
En disponible, busca DragonBoard 845c (db845c). Si no la ves, haz clic en + Agregar nuevo dispositivo y selecciona la opción Gadget de Android o Dispositivo Android en la lista.
Selecciona DragonBoard 845c (db845c).
Haz clic en la opción para seleccionar un ID de compilación y elige la compilación más reciente.
Haz clic en Instalar.
Sigue las instrucciones restantes y espera mientras se escribe la placa en la memoria flash.
¡Felicitaciones! Ahora tu DragonBoard 845c ejecuta la versión más reciente de AOSP.
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 el nuevo kernel en la memoria flash del dispositivo (consulta Cómo compilar el espacio del usuario).
Prueba el kernel de GKI:
Consulta la compilación más reciente de kernel_aarch64.
En artifacts, descarga
Image.gz
y cópialo en${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Compila y escribe el nuevo kernel en la memoria flash del dispositivo (consulta Cómo compilar el espacio del 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
Compilación:
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
Cómo instalar imágenes iniciales
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 las imágenes iniciales en la memoria flash:
cd device/linaro/hikey/installer/hikey960
APAGA el interruptor 3 y reinicia la placa.
Cómo escribir imágenes en la memoria flash
Para activar el modo flashboot, ENCIENDE el interruptor 3.
Ejecuta los siguientes comandos para escribir las imágenes en la memoria flash:
fastboot flash boot out/target/product/hikey960/boot.img
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=
.
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 4.19. 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:
cd ${AOSP_TOPDIR}
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 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
Exporta las variantes de compilación:
export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r399163b/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
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/$(basename $f)-${KERN_VER} done
cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/Image.lz4-${KERN_VER}
Vuelve a compilar el espacio de usuario de Android (consulta Compilación de espacio de usuario) y escribe en la memoria flash del nuevo kernel (consulta cómo escribir imágenes en la memoria flash).