יצירת מכשיר היברידי מסוג Cuttlefish

בדף הזה נסביר איך ליצור מכשיר היברידי של Cuttlefish‏ (CHD).

‫CHD הוא מכשיר וירטואלי היברידי של Cuttlefish, שמריץ קובץ אימג' של המערכת של מכשיר פיזי במקום קובץ אימג' של המערכת של Cuttlefish ב-HALs של המכשיר. היתרונות של הגישה הזו:

  • פיתוח ובדיקות מוקדמים: קובצי CHD מאפשרים פיתוח ובדיקות מוקדמים של תוכנת מערכת מהדור הבא לפני שהחומרה הפיזית זמינה.

  • יכולת הרחבה: שימוש ב-CHD מאפשר להרחיב בקלות את יכולות הפיתוח והבדיקה.

יצירת תמונת CHD

כדי ליצור תמונת CHD, פועלים לפי השלבים הבאים:

  1. יוצרים את קובצי היעד עבור יעד הספק והמכשיר הפיזי באמצעות make dist. יוצרים את קובצי הטירגוט של הספק באמצעות אחת מהאפשרויות הבאות:

  2. משלבים את שני קובצי היעד לקובץ יעד CHD ומריצים את הסקריפט build_cf_hybrid_device.py כדי ליצור את תמונות ה-CHD מקובץ היעד CHD. הסקריפט הזה משלב את שני קובצי היעד לקובץ יעד של 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