این صفحه نحوه ساخت، اجرا و توسعه ویژگی های بوت لودر اندروید را در دستگاه Cuttlefish شرح می دهد.
منابع AOSP
برای توسعه ویژگیهای بوتلودر اندروید، از پیکربندی Cuttlefish U-boot with Cuttlefish در شاخههای aosp-main
یا در شاخههای تصویر سیستم عمومی (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
برای اطلاعات بیشتر، به توسعه هستههای اندروید مراجعه کنید.
،این صفحه نحوه ساخت، اجرا و توسعه ویژگی های بوت لودر اندروید را در دستگاه Cuttlefish شرح می دهد.
منابع AOSP
برای توسعه ویژگیهای بوتلودر اندروید، از پیکربندی Cuttlefish U-boot with Cuttlefish در شاخههای aosp-main
یا در شاخههای تصویر سیستم عمومی (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
برای اطلاعات بیشتر، به توسعه هستههای اندروید مراجعه کنید.