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

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

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

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

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

إنشاء صورة 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

لإنشاء هدف خاص بالمورّد فقط في Cuttlefish، اتّبِع الخطوات التالية:

يمكنك استخدام aosp_cf_vendor.mk لتحديد هدف aosp_cf_arm64_phone_vendor، والذي يمكنك استخدامه كملف استهداف المورّد لصورة CHD.

  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