ویژگی های بوت لودر اندروید را توسعه دهید

این صفحه نحوه ساخت، اجرا و توسعه ویژگی های بوت لودر اندروید را در دستگاه Cuttlefish شرح می دهد.

منابع AOSP

برای توسعه ویژگی‌های بوت‌لودر اندروید، از پیکربندی Cuttlefish U-boot with Cuttlefish در شاخه‌های aosp-main یا در شاخه‌های تصویر سیستم عمومی (GSI) برای Android 11 یا بالاتر استفاده کنید. منابع زیر در AOSP هستند:

یک بوت لودر توسعه دهید

برای ساخت، اجرا و توسعه ویژگی های بوت لودر به صورت محلی، این مراحل را دنبال کنید:

  1. مانیفست را برای فورک اندروید 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
  2. هدف بوت لودر را متناسب با معماری 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 یافت می‌شود.

  3. دستگاه 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
  4. برای تعامل با بوت لودر، به کنسول بوت لودر متصل شوید.

    $ screen ~/cuttlefish_runtime/console
  5. پس از انجام تعاملات بوت لودر، بوت را با تایپ 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 هستند:

یک بوت لودر توسعه دهید

برای ساخت، اجرا و توسعه ویژگی های بوت لودر به صورت محلی، این مراحل را دنبال کنید:

  1. مانیفست را برای فورک اندروید 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
  2. هدف بوت لودر را متناسب با معماری 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 یافت می‌شود.

  3. دستگاه 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
  4. برای تعامل با بوت لودر، به کنسول بوت لودر متصل شوید.

    $ screen ~/cuttlefish_runtime/console
  5. پس از انجام تعاملات بوت لودر، بوت را با تایپ 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

برای اطلاعات بیشتر، به توسعه هسته‌های اندروید مراجعه کنید.