Questa pagina descrive come creare, eseguire e sviluppare funzionalità del bootloader Android su un dispositivo Cuttlefish.
Fonti dell'AOSP
Per sviluppare funzionalità del bootloader Android, utilizzare la configurazione Cuttlefish di U-boot con Cuttlefish in aosp-main
o sui rami GSI (Generic System Image) per Android 11 o versioni successive. Di seguito sono riportate le fonti in AOSP:
Sviluppa un bootloader
Per creare, eseguire e sviluppare le funzionalità del bootloader localmente, attenersi alla seguente procedura:
Clona il manifest per il fork Android di 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
Costruisci il target del bootloader appropriato per la tua architettura Cuttlefish. Per esempio:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_dist
aarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
Il file binario del bootloader risultante (
u-boot.bin
per arm64 eu-boot.rom
per x86_64) si trova in$PATH_TO_REPO/out/u-boot-mainline/dist
.Avvia il dispositivo Cuttlefish con il bootloader. Includi il parametro
pause_in_bootloader
per disabilitare l'avvio automatico e consentirti di interagire con il bootloader.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=true
Per interagire con il bootloader, connettiti alla console del bootloader.
$ screen ~/cuttlefish_runtime/console
Una volta terminate le interazioni con il bootloader, continua l'avvio digitando
boot
nella console.
Testare il flusso del bootloader con kernel diversi
Per testare il flusso del bootloader con kernel o moduli kernel diversi, passare gli artefatti di destinazione (kernel e moduli kernel) utilizzando gli argomenti --kernel_path
e --initramfs_path
. L'assembler ricompone le immagini di avvio in base agli artefatti passati negli argomenti.
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
Per ulteriori informazioni, consulta Sviluppare kernel Android .