דיונון: צור מכשיר מותאם אישית

דף זה מתאר כיצד ליצור מכשיר דיונון מותאם אישית. דיונון כולל סוגי מכשירים מוגדרים מראש בגורמי צורה שונים כפי שמופיעים ב- AndroidProducts.mk . בנוסף לאפשרויות ההתאמה האישית הכלליות של המכשיר המתוארות בהוספת התקן חדש , ניתן לבצע התאמות אישיות ספציפיות ל-Cuttlefish, כגון קביעות מראש של תצורת לוח המכשירים הווירטואליים (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), בנייה מוקדמת של ליבה, בנייה מראש של טוען אתחול, מאפייני ספק, תצורות מערכת, מקוננות תמיכה בווירטואליזציה ואפשרויות תצוגה. לרשימה מלאה של פרמטרי זמן הבנייה שניתן להתאים אישית, ראה device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk .

השלבים הבאים מתארים כיצד ליצור מכשיר x86-64 big_phone בדיוני בגודל פי עשרה ממכשיר דיונון רגיל.

קבל בירושה מיעד קיים

כדי לרשת מיעד קיים:

  • צור ספריית device/google/cuttlefish/vsoc_x86_64/ big_phone .
  • צור קובץ aosp_cf.mk בספרייה זו.
$(call inherit-product, device/google/cuttlefish/vsoc_x86_64_phone.mk)

PRODUCT_NAME: big_phone
PRODUCT_DEVICE: vsoc_x86_64
PRODUCT_MANUFACTURER := My Company
PRODUCT_MODEL: My Company very large phone

PRODUCT_VENDOR_PROPERTIES += \
    ro.soc.manufacturer=$(PRODUCT_MANUFACTURER) \
    ro.soc.model=$(PRODUCT_DEVICE)

הוסף יעד לארוחת צהריים

הכנס את יעד lunch לקובץ device/google/cuttlefish/AndroidProducts.mk :

PRODUCT_MAKEFILES := \
  ...
  big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
  ...
lunch big_phone

הגדר תצורת JSON

כדי להפעיל את התקן Cuttlefish, צור קובץ תצורה של JSON בשם big_phone .json עם מבנה היררכי המייצג את מאפייני המכשיר. לדוגמה, בקובץ התצורה של JSON, אתה יכול לציין אפשרויות כגון זיכרון RAM שהוקצה ל-VM ותצורת התצוגה. קובץ זה לא חייב להיות בעץ AOSP. לפרטים על פורמט JSON לתצורות, ראה תצורות קנוניות .

{
  "instances":
      [
        {
          "vm": {
            "memory_mb": 40960,
          },
          "graphics": {
            "displays": [
              {
                "width": 7200,
                "height": 12800,
                "dpi": 320
              }
            ]
          }
        }
      ]
}

כדי להפעיל את התצורה, הפעל:

cvd start --config_file=big_phone.json

הפעל launch_cvd (מדור קודם)

מאפייני תצורה מסוימים אינם זמינים בפורמט התצורה ההיררכי של JSON. עבור תצורות כאלה, אתה יכול להגדיר ערכי ברירת מחדל של דגל launch_cvd מתוך מילון JSON ברמה אחת. לרשימה מלאה של כל אפשרויות התצורה, ראה cf_flags_validator.cpp .

להלן דוגמה כיצד לעקוף את ערכי ברירת המחדל של אפשרויות הדגל launch_cvd באמצעות קובץ תצורה של JSON ולאפשר למשגר Cuttlefish להפעיל את התצורה המותאמת אישית.

  1. צור קובץ תצורה של JSON, device/google/cuttlefish/shared/config/config_ big_phone .json , עם ערכים מותאמים אישית.

    {
      "x_res": 7200,
      "y_res": 12800,
      "dpi": 320,
      "memory_mb": 40960,
      "ddr_mem_mb": 49150,
    }
    
  2. כדי שהמשגר ​​Cuttlefish יפעיל את תצורת big_phone , ודא שיש לו גישה לקובץ device/google/cuttlefish/shared/config/config_ big_phone .json על ידי ביצוע הפעולות הבאות:

    1. הכריז על חפץ ה-JSON כחפץ בנייה על-ידי הוספת המשפט prebuilt_etc_host בקובץ device/google/cuttlefish/shared/config/Android.bp .

      prebuilt_etc_host {
          name: "cvd_config_big_phone.json",
          src: "config_big_phone.json",
          sub_dir: "cvd_config",
      }
      
    2. הוסף את הצהרת ה-build artifact שהתקבלה ל-Cuttlefish משגר על-ידי הפעלת הפריטים הבאים ב- device/google/cuttlefish/shared/device.mk .

      $(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
      
    3. צור קובץ android_info.txt וקשור את תצורת big_phone לקובץ על ידי הוספת השורה הבאה למכשיר device/google/cuttlefish/vsoc_x86_64/ big_phone /aosp_cf.mk :

      TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
      
    4. תווית את סוג המכשיר עם תצורת big_phone על ידי אכלוס device/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt בטקסט הבא:

      config=big_phone