این صفحه نحوه ساخت، اجرا و توسعه ویژگی های بوت لودر اندروید را در دستگاه 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_distaarch64
$ 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برای اطلاعات بیشتر، به توسعه هستههای اندروید مراجعه کنید.