En esta página, se describe cómo compilar, ejecutar y desarrollar funciones del bootloader de Android en un dispositivo Cuttlefish.
Fuentes del AOSP
Para desarrollar funciones del bootloader de Android, usa la configuración de Cuttlefish U-boot con Cuttlefish en la rama de la versión más reciente (android16-release) o en ramas de la imagen genérica del sistema (GSI) para Android 11 o versiones posteriores. Las siguientes son las fuentes del AOSP:
Manifiesto para la configuración de Cuttlefish de U-boot (
u-boot-mainline).
Cómo desarrollar un bootloader
Para compilar, ejecutar y desarrollar funciones del bootloader de forma local, sigue estos pasos:
Clona el manifiesto para la bifurcación de Android de U-boot:
$ mkdir u-boot-mainline $ cd u-boot-mainline $ repo init -u https://android.googlesource.com/kernel/manifest -b u-boot-mainline $ repo sync -j$(nproc) -qCompila el objetivo del bootloader apropiado para tu arquitectura de Cuttlefish. Por ejemplo:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_distaarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
El objeto binario del bootloader resultante (
u-boot.binpara arm64 yu-boot.rompara x86_64) se encuentra en$PATH_TO_REPO/out/u-boot-mainline/dist.Ejecuta el dispositivo Cuttlefish con el bootloader. Incluye el parámetro
pause_in_bootloaderpara inhabilitar inicio automático y permitirte interactuar con el bootloader.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=truePara interactuar con el bootloader, conectate con la consola del bootloader.
$ screen ~/cuttlefish_runtime/consoleUna vez que finalices las interacciones con el bootloader, ingresa
booten la consola para continuar con el inicio.
Cómo probar el flujo del bootloader con diferentes kernels
Para probar el flujo del bootloader con diferentes kernels o módulos de kernels, pasa los artefactos objetivo (kernels y módulos de kernels) usando los argumentos --kernel_path y --initramfs_path. El ensamblador vuelve a empaquetar las imágenes de arranque en los artefactos que se pasaron en los argumentos.
cvd create \
-kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/bzImage \
-initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.imgPara más información, consulta Desarrolla Kernels de Android.