Cette page décrit comment créer, exécuter et développer des fonctionnalités du chargeur de démarrage Android sur un appareil Cuttlefish.
Sources AOSP
Pour développer les fonctionnalités du chargeur de démarrage Android, utilisez la configuration Cuttlefish de U-boot avec Cuttlefish dans aosp-main
ou sur les branches d'image système générique (GSI) pour Android 11 ou version ultérieure. Voici les sources de l'AOSP :
Développer un chargeur de démarrage
Pour créer, exécuter et développer des fonctionnalités du chargeur de démarrage localement, procédez comme suit :
Clonez le manifeste pour le fork 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
Créez la cible du chargeur de démarrage adaptée à votre architecture Cuttlefish. Par exemple:
x86_64
$ tools/bazel run //u-boot:crosvm_x86_64_dist
aarch64
$ tools/bazel run //u-boot:crosvm_aarch64_dist
Le binaire du chargeur de démarrage résultant (
u-boot.bin
pour arm64 etu-boot.rom
pour x86_64) se trouve dans$PATH_TO_REPO/out/u-boot-mainline/dist
.Lancez le périphérique Cuttlefish avec le chargeur de démarrage. Incluez le paramètre
pause_in_bootloader
pour désactiver le démarrage automatique et vous permettre d'interagir avec le chargeur de démarrage.$ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=true
Pour interagir avec le chargeur de démarrage, connectez-vous à la console du chargeur de démarrage.
$ screen ~/cuttlefish_runtime/console
Une fois les interactions du chargeur de démarrage terminées, poursuivez le démarrage en tapant
boot
dans la console.
Tester le flux du chargeur de démarrage avec différents noyaux
Pour tester le flux du chargeur de démarrage 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 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
Pour plus d'informations, consultez Développer des noyaux Android .