Esta página describe cómo crear, ejecutar y desarrollar funciones del gestor de arranque de Android en un dispositivo Cuttlefish.
fuentes AOSP
Para desarrollar funciones del gestor de arranque de Android, utilice la configuración Cuttlefish de U-boot con Cuttlefish en aosp-main
o en ramas de imagen genérica del sistema (GSI) para Android 11 o superior. Las siguientes son las fuentes en AOSP:
Manifiesto para la configuración Cuttlefish de U-boot (
u-boot-mainline
).
Desarrollar un gestor de arranque
Para crear, ejecutar y desarrollar funciones del gestor de arranque localmente, siga 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) -q
Cree el destino del gestor de arranque apropiado para su arquitectura Cuttlefish. Por ejemplo:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_dist
aarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
El binario del gestor de arranque resultante (
u-boot.bin
para arm64 yu-boot.rom
para x86_64) se encuentra en$PATH_TO_REPO/out/u-boot-mainline/dist
.Inicie el dispositivo Cuttlefish con el gestor de arranque. Incluya el parámetro
pause_in_bootloader
para deshabilitar el inicio automático y permitirle interactuar con el gestor de arranque.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=true
Para interactuar con el gestor de arranque, conéctese a la consola del gestor de arranque.
$ screen ~/cuttlefish_runtime/console
Cuando haya terminado con las interacciones del cargador de arranque, continúe con el arranque escribiendo
boot
en la consola.
Pruebe el flujo del gestor de arranque con diferentes núcleos
Para probar el flujo del gestor de arranque con diferentes kernels o módulos de kernel, pase los artefactos de destino (kernel y módulos de kernel) usando los argumentos --kernel_path
y --initramfs_path
. El ensamblador vuelve a empaquetar las imágenes de arranque según los artefactos pasados en los argumentos.
cvd start \
-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.img
Para obtener más información, consulte Desarrollar kernels de Android .