توضّح هذه الصفحة كيفية إنشاء ميزات برنامج تحميل التشغيل لنظام Android وتشغيلها وتطويرها على جهاز Cuttlefish.
مصادر AOSP
لتطوير ميزات برنامج التشغيل الأوّلي لنظام Android، استخدِم إعداد Cuttlefish الخاص بـ U-boot مع Cuttlefish في أحدث فرع إصدار (android16-release) أو في فروع صورة النظام العامة (GSI) لنظام Android 11 أو الإصدارات الأحدث. في ما يلي المصادر في AOSP:
ملف البيان لإعداد Cuttlefish الخاص بـ U-boot (
u-boot-mainline)
تطوير برنامج إقلاع
لإنشاء ميزات برنامج تحميل التشغيل وتشغيلها وتطويرها محليًا، اتّبِع الخطوات التالية:
أنشئ نسخة طبق الأصل من ملف البيان لفرع 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أنشئ هدف برنامج تحميل التشغيل المناسب لبنية 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في وحدة التحكّم.
اختبار مسار برنامج تحميل التشغيل باستخدام نِوى مختلفة
لاختبار مسار برنامج 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.