این صفحه نحوه ساخت، اجرا و توسعه ویژگی های بوت لودر اندروید را در دستگاه Cuttlefish شرح می دهد.
منابع AOSP
 برای توسعه ویژگیهای بوتلودر اندروید، از پیکربندی Cuttlefish U-boot with Cuttlefish در آخرین شاخه انتشار ( android16-release ) یا در شاخههای تصویر سیستم عمومی (GSI) برای Android 11 یا بالاتر استفاده کنید. منابع زیر در AOSP هستند:
یک بوت لودر توسعه دهید
برای ساخت، اجرا و توسعه ویژگی های بوت لودر به صورت محلی، این مراحل را دنبال کنید:
- مانیفست را برای فورک اندروید 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
- هدف بوت لودر را متناسب با معماری Cuttlefish خود بسازید. به عنوان مثال: - x86_64 - $ tools/bazel run //u-boot:crosvm_x86_64_dist
- aarch64 - $ tools/bazel run //u-boot:crosvm_aarch64_dist
 - باینری بوت لودر ( - u-boot.binبرای arm64 و- u-boot.romبرای x86_64) در- $PATH_TO_REPO/out/u-boot-mainline/distیافت میشود.
- دستگاه Cuttlefish را با بوت لودر راه اندازی کنید. پارامتر - pause_in_bootloaderرا برای غیرفعال کردن راهاندازی خودکار و امکان تعامل با بوتلودر اضافه کنید.- $ launch_cvd \ -bootloader /$PATH/$TO/u-boot-mainline/out/u-boot-mainline/dist/u-boot.rom \ -pause_in_bootloader -console=true
- برای تعامل با بوت لودر، به کنسول بوت لودر متصل شوید. - $ screen ~/cuttlefish_runtime/console
- پس از انجام تعاملات بوت لودر، بوت را با تایپ - bootدر کنسول ادامه دهید.
جریان بوت لودر را با هسته های مختلف تست کنید
 برای آزمایش جریان بوت لودر با هستههای مختلف یا ماژولهای هسته، آرتیفکتهای هدف (ماژولهای هسته و هسته) را با استفاده از آرگومانهای --kernel_path و --initramfs_path ارسال کنید. اسمبلر تصاویر بوت را بر اساس مصنوعات ارسال شده در آرگومان ها دوباره بسته بندی می کند.
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.imgبرای اطلاعات بیشتر، به توسعه هستههای اندروید مراجعه کنید.
