कटलफिश: एक कस्टम डिवाइस बनाएं

यह पृष्ठ वर्णन करता है कि एक अनुकूलित कटलफ़िश उपकरण कैसे बनाया जाए। कटलफिश में AndroidProducts.mk में सूचीबद्ध विभिन्न फॉर्म कारकों में पूर्वनिर्धारित डिवाइस प्रकार शामिल हैं। नई डिवाइस जोड़ना में वर्णित सामान्य डिवाइस अनुकूलन विकल्पों के अलावा, आप कटलफिश-विशिष्ट अनुकूलन कर सकते हैं जैसे वर्चुअल डिवाइस बोर्ड कॉन्फ़िगरेशन प्रीसेट (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 कॉन्फ़िगरेशन को परिभाषित करें

कटलफिश डिवाइस लॉन्च करने के लिए, डिवाइस गुणों का प्रतिनिधित्व करने वाली एक पदानुक्रमित संरचना के साथ big_phone .json नाम से एक JSON कॉन्फ़िगरेशन फ़ाइल बनाएं। उदाहरण के लिए, JSON कॉन्फ़िगरेशन फ़ाइल में, आप VM के लिए आवंटित RAM और डिस्प्ले कॉन्फ़िगरेशन जैसे विकल्प निर्दिष्ट कर सकते हैं। इस फ़ाइल का AOSP ट्री में होना आवश्यक नहीं है. कॉन्फ़िगरेशन के लिए JSON प्रारूप के विवरण के लिए, Canonical कॉन्फ़िगरेशन देखें।

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

कॉन्फ़िगरेशन लॉन्च करने के लिए, चलाएँ:

cvd start --config_file=big_phone.json

लॉन्च_सीवीडी चलाएँ (विरासत)

कुछ कॉन्फ़िगरेशन गुण पदानुक्रमित JSON कॉन्फ़िगरेशन प्रारूप में उपलब्ध नहीं हैं। ऐसे कॉन्फ़िगरेशन के लिए, आप एकल-स्तरीय JSON शब्दकोश से launch_cvd ध्वज डिफ़ॉल्ट मान सेट कर सकते हैं। सभी कॉन्फ़िगरेशन विकल्पों की पूरी सूची के लिए, cf_flags_validator.cpp देखें।

निम्नलिखित एक उदाहरण का वर्णन करता है कि JSON कॉन्फ़िगरेशन फ़ाइल का उपयोग करके launch_cvd ध्वज विकल्पों के डिफ़ॉल्ट मानों को कैसे ओवरराइड किया जाए और कस्टम कॉन्फ़िगरेशन लॉन्च करने के लिए कटलफ़िश लॉन्चर को सक्षम किया जाए।

  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. कटलफिश लॉन्चर के लिए big_phone कॉन्फ़िगरेशन लॉन्च करने के लिए, निम्न कार्य करके सुनिश्चित करें कि उसके पास device/google/cuttlefish/shared/config/config_ big_phone .json फ़ाइल तक पहुंच है:

    1. device/google/cuttlefish/shared/config/Android.bp फ़ाइल में prebuilt_etc_host श्लोक जोड़कर JSON आर्टिफैक्ट को बिल्ड आर्टिफैक्ट घोषित करें।

      prebuilt_etc_host {
          name: "cvd_config_big_phone.json",
          src: "config_big_phone.json",
          sub_dir: "cvd_config",
      }
      
    2. device/google/cuttlefish/shared/device.mk में निम्नलिखित चलाकर परिणामी बिल्ड आर्टिफैक्ट घोषणा को कटलफिश लॉन्चर में जोड़ें।

      $(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
      
    3. एक android_info.txt फ़ाइल बनाएं और device/google/cuttlefish/vsoc_x86_64/ big_phone /aosp_cf.mk में निम्न पंक्ति जोड़कर big_phone कॉन्फ़िगरेशन को फ़ाइल से जोड़ें:

      TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
      
    4. निम्नलिखित के साथ device/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt को पॉप्युलेट करके डिवाइस प्रकार को big_phone कॉन्फ़िगरेशन के साथ लेबल करें:

      config=big_phone