تطوير ميزات برنامج إقلاع Android

توضّح هذه الصفحة كيفية إنشاء ميزات مشغِّل تحميل Android وتشغيلها وتطويرها على جهاز Cuttlefish.

مصادر AOSP

لتطوير ميزات مشغّل تحميل نظام التشغيل Android، استخدِم إعدادات Cuttlefish لملف U-boot مع Cuttlefish في aosp-main أو على فروع صورة النظام العامة (GSI) لنظام التشغيل Android 11 أو الإصدارات الأحدث. في ما يلي المصادر في AOSP:

تطوير برنامج إقلاع

لإنشاء ميزات برنامج الإقلاع وتشغيلها وتطويرها على الجهاز، اتبع الخطوات التالية:

  1. يمكنك استنساخ بيان الترخيص لإصدار U-boot المشتق من Android:

    $ 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

    يمكن العثور على ملف bootloader الثنائي الناتج (u-boot.bin لنظام التشغيل arm64 وu-boot.rom لنظام التشغيل x86_64) في $PATH_TO_REPO/out/u-boot-mainline/dist.

  3. شغِّل جهاز حبَّار باستخدام برنامج الإقلاع. يمكنك تضمين المَعلمة 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

لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تطوير نواة Android.