توضّح هذه الصفحة كيفية إنشاء جهاز Cuttlefish المختلط (CHD).
جهاز CHD هو جهاز Cuttlefish افتراضي مختلط، ويشغّل صورة نظام لجهاز فعلي بدلاً من صورة نظام Cuttlefish على طبقات HAL الخاصة بالجهاز. ويوفّر ذلك المزايا التالية:
التطوير والاختبار المبكّران: تتيح الأجهزة الافتراضية المشفّرة إجراء عمليات التطوير والاختبار المبكّرة لبرامج الأنظمة من الجيل التالي قبل توفّر الأجهزة المادية.
قابلية التوسّع: تسهّل البيئات السحابية الخاصة بالتطوير توسيع نطاق التطوير واختبار القدرات.
إنشاء صورة CHD
لإنشاء صورة CHD، اتّبِع الخطوات التالية:
أنشئ الملفات المستهدَفة الخاصة بالهدف الخاص بالمورّد والجهاز الفعلي باستخدام
make dist. أنشئ ملفات استهداف المورّدين باستخدام أحد الخيارَين التاليَين:- جهاز Cuttlefish كامل حالي
- هدف Cuttlefish ينشئ ملفات مورّد Cuttlefish فقط. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء هدف مورّد Cuttlefish.
ادمج ملفَي الاستهداف في ملف استهداف CHD واحد، وأنشئ صور CHD من ملف استهداف CHD من خلال تشغيل النص البرمجي
build_cf_hybrid_device.py. يجمع هذا النص البرمجي بين ملفَّي الاستهداف في ملف استهداف CHD باستخدامmerge_target_files.pyوينشئ صور CHD من ملف استهداف CHD باستخدامimg_from_target_files.python3 tools/treble/cuttlefish/build_cf_hybrid_device.py \ --framework_target_files_zip <physical_device_target_files.zip> \ --vendor_target_files_zip <cuttlefish_device_target_files.zip> \ --otatools_zip <cuttlefish_otatools.zip> \ --target chd \ --output_dir <output_directory>
إنشاء هدف مورّد Cuttlefish
يمكنك استخدام aosp_cf_vendor.mk لتحديد هدف aosp_cf_arm64_phone_vendor، والذي يمكنك استخدامه كملف استهداف المورّد لصورة CHD.
لإنشاء هدف خاص بالمورّدين فقط في Cuttlefish، اتّبِع الخطوات التالية:
استخدِم هدف Cuttlefish الذي ينشئ عناصر كاملة:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)حدِّد اسم الهدف:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorإيقاف عمليات الإنشاء غير الضرورية من العناصر الكاملة:
PRODUCT_BUILD_SYSTEM_IMAGE := false PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false PRODUCT_BUILD_PRODUCT_IMAGE := false PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false PRODUCT_BUILD_SUPER_PARTITION := false TARGET_SKIP_OTA_PACKAGE := true