تطوير ميزات مشغّل تحميل نظام التشغيل Android

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

مصادر AOSP

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

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

لإنشاء ميزات برنامج تحميل التشغيل وتشغيلها وتطويرها محليًا، اتّبِع الخطوات التالية:

  1. أنشئ نسخة طبق الأصل من ملف البيان لفرع Android من 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 في وحدة التحكّم.

اختبار مسار برنامج تحميل التشغيل باستخدام نِوى مختلفة

لاختبار مسار برنامج bootloader باستخدام نُسخ مختلفة من النواة أو وحدات نواة، مرِّر العناصر المستهدَفة (النواة ووحدات النواة) باستخدام الوسيطتَين --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.