Cette page explique comment créer, exécuter et développer des fonctionnalités de bootloader Android sur un appareil Cuttlefish.
Sources AOSP
Pour développer des fonctionnalités de bootloader Android, utilisez la configuration Cuttlefish d'U-boot avec Cuttlefish dans la dernière branche de version (android16-release) ou dans les branches d'image système générique (GSI) pour Android 11 ou version ultérieure. Voici les sources dans AOSP :
Développer un bootloader
Pour compiler, exécuter et développer des fonctionnalités de bootloader en local, procédez comme suit :
Clonez le fichier manifeste pour le fork Android d'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) -qCréez la cible du bootloader adaptée à votre architecture Cuttlefish. Exemple :
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_distaarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
Le fichier binaire du bootloader obtenu (
u-boot.binpour arm64 etu-boot.rompour x86_64) se trouve dans$PATH_TO_REPO/out/u-boot-mainline/dist.Lancez l'appareil Cuttlefish avec le bootloader. Incluez le paramètre
pause_in_bootloaderpour désactiver le démarrage automatique et vous permettre d'interagir avec le bootloader.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=truePour interagir avec le bootloader, connectez-vous à la console du bootloader.
$ screen ~/cuttlefish_runtime/consoleUne fois que vous avez terminé d'interagir avec le bootloader, continuez le démarrage en saisissant
bootdans la console.
Tester le flux du bootloader avec différents noyaux
Pour tester le flux du bootloader avec différents noyaux ou modules de noyau, transmettez les artefacts cibles (noyau et modules de noyau) à l'aide des arguments --kernel_path et --initramfs_path. L'assembleur reconditionne les images de démarrage en fonction des artefacts transmis dans les arguments.
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.imgPour en savoir plus, consultez Développer des noyaux Android.