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

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

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

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

  • قابلية التوسّع: تسهّل أجهزة CHD توسيع نطاق قدرة التطوير والاختبار.

إنشاء صورة جهاز CHD

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

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

  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
    

اختيار بيئة مضيف لتشغيل جهاز CHD

لإعداد بيئة مضيف قابلة للتوسّع لتشغيل أجهزة CHD المستندة إلى ARM64 وإدارتها، اختَر إعدادًا استنادًا إلى سير عملك:

  • الأجهزة الأساسية في Google Cloud C4A (ننصح بهذا الخيار): الأجهزة الأساسية في Google Cloud C4A، مثل c4a-standard-96-metal أو c4a-highmem-96-metal، توفّر تسريعًا أصليًا للأجهزة المستندة إلى ARM64 KVM مدعومًا بمعالجات Google Axion. يوفّر هذا الإعداد تنفيذًا عالي الأداء وقابلاً للتوسّع بدرجة كبيرة لأجهزة CHD المستندة إلى ARM64 في السحابة الإلكترونية بدون تكاليف إضافية للتحويل إلى بيئة افتراضية متداخلة. علاوةً على ذلك، يتكامل تنسيق السحابة الإلكترونية في OmniLab ATS مع c4a-metalلأتمتة عملية تخصيص الأجهزة وتنسيق الاختبار وإدارة البنية الأساسية.

  • الإعداد اليدوي للمضيف أو الإعداد المحلي (خيار بديل): إذا كنت تستخدم أجهزة ARM مخصّصة محلية أو في المختبر، أو إذا كنت تُعدّ بيئة مضيف يدويًا بدون OmniLab ATS، يُرجى الاطّلاع على مقالة تشغيل Cuttlefish على خادم محلي.