בדף הזה מוסבר איך ליצור מכשיר היברידי של Cuttlefish (CHD).
מכשיר CHD הוא מכשיר Cuttlefish וירטואלי היברידי שמריץ תמונת מערכת של מכשיר פיזי במקום תמונת מערכת של Cuttlefish ב-HAL של המכשיר. היתרונות של הגישה הזו:
פיתוח ובדיקות מוקדמים: קובצי CHD מאפשרים פיתוח ובדיקות מוקדמים של תוכנת מערכת מהדור הבא לפני שהחומרה הפיזית זמינה.
יכולת הרחבה: CHDs מאפשרים להרחיב בקלות את יכולות הפיתוח והבדיקה.
יצירת תמונת CHD
כדי ליצור תמונת CHD, פועלים לפי השלבים הבאים:
יוצרים את קובצי היעד לטירגוט הספק ולמכשיר הפיזי באמצעות
make dist. יוצרים את קובצי הטירגוט של הספק באמצעות אחת מהאפשרויות הבאות:- יעד מלא קיים של Cuttlefish
- יעד Cuttlefish שיוצר רק קובצי ספק של Cuttlefish. למידע נוסף, ראו יצירת יעד ספק של Cuttlefish.
משלבים את שני קובצי היעד לקובץ יעד 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
אפשר להשתמש ב-aosp_cf_vendor.mk כדי להגדיר את היעד aosp_cf_arm64_phone_vendor, שאפשר להשתמש בו כקובץ היעד של הספק לתמונת CHD.
כדי ליצור יעד של ספק בלבד ב-Cuttlefish, פועלים לפי השלבים הבאים:
הורשה של יעד Cuttlefish שיוצר פריטי Artifact מלאים:
$(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
בחירת סביבת אירוח להפעלת CHD
כדי להגדיר סביבת хост שניתן להרחיב אותה להפעלה ולניהול של קובצי CHD מבוססי ARM64, בוחרים הגדרה על סמך תהליך העבודה:
Google Cloud C4A bare metal (מומלץ): מכונות Google Cloud C4A bare metal, כמו
c4a-standard-96-metalאוc4a-highmem-96-metal, מספקות האצת חומרה מקורית של ARM64 KVM שמבוססת על מעבדי Google Axion. ההגדרה הזו מספקת ביצועים גבוהים וניתנת להרחבה בקלות עבור קובצי CHD של ARM64 בענן, ללא תקורה של וירטואליזציה מקוננת. בנוסף, OmniLab ATS Cloud Orchestration משתלב עםc4a-metalכדי לבצע אוטומציה של הקצאת מכשירים, תזמור בדיקות וניהול תשתית.הגדרה ידנית של מארח או של מערכות מקומיות (אפשרות חלופית): אם אתם מריצים את Cuttlefish על חומרה מקומית או חומרה של מעבד ARM בהתאמה אישית, או אם אתם מגדירים ידנית סביבת מארח בלי OmniLab ATS, תוכלו לעיין במאמר בנושא הרצת Cuttlefish בשרת מקומי.