إنشاء جهاز مختلط من نوع Cuttlefish

توضّح هذه الصفحة كيفية إنشاء جهاز Cuttlefish المختلط (CHD).

جهاز CHD هو جهاز Cuttlefish افتراضي مختلط، ويشغّل صورة نظام لجهاز فعلي بدلاً من صورة نظام Cuttlefish على طبقات HAL الخاصة بالجهاز. ويوفّر ذلك المزايا التالية:

  • التطوير والاختبار المبكّران: تتيح الأجهزة الافتراضية المشفّرة إجراء عمليات التطوير والاختبار المبكّرة لبرامج الأنظمة من الجيل التالي قبل توفّر الأجهزة المادية.

  • قابلية التوسّع: تسهّل البيئات السحابية الخاصة بالتطوير توسيع نطاق التطوير واختبار القدرات.

إنشاء صورة CHD

لإنشاء صورة CHD، اتّبِع الخطوات التالية:

  1. أنشئ الملفات المستهدَفة الخاصة بالهدف الخاص بالمورّد والجهاز الفعلي باستخدام make dist. أنشئ ملفات استهداف المورّدين باستخدام أحد الخيارَين التاليَين:

    • جهاز Cuttlefish كامل حالي
    • هدف Cuttlefish ينشئ ملفات مورّد Cuttlefish فقط. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء هدف مورّد Cuttlefish.
  2. ادمج ملفَي الاستهداف في ملف استهداف 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، اتّبِع الخطوات التالية:

  1. استخدِم هدف Cuttlefish الذي ينشئ عناصر كاملة:

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. حدِّد اسم الهدف:

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. إيقاف عمليات الإنشاء غير الضرورية من العناصر الكاملة:

    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