इस पेज पर, अपने हिसाब से बनाया गया Cuttlefish डिवाइस बनाने का तरीका बताया गया है. Cuttlefish
में, अलग-अलग नाप या आकार वाले पहले से तय डिवाइस टाइप शामिल होते हैं. इनकी सूची
AndroidProducts.mk में दी गई है. नया डिवाइस जोड़ना लेख में बताए गए, डिवाइस को अपने हिसाब से बनाने के सामान्य विकल्पों के अलावा, Cuttlefish के लिए खास तौर पर बनाए गए विकल्प भी उपलब्ध हैं. जैसे, वर्चुअल डिवाइस बोर्ड कॉन्फ़िगरेशन के प्रीसेट (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), कर्नल के प्रीबिल्ट, बूटलोडर के प्रीबिल्ट, वेंडर प्रॉपर्टी, सिस्टम कॉन्फ़िगरेशन, नेस्टेड वर्चुअलाइज़ेशन की सुविधा, और डिसप्ले के विकल्प. बिल्ड टाइम पैरामीटर की पूरी सूची देखने के लिए, इन पैरामीटर को अपने हिसाब से बनाया जा सकता है.device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
यहां, x86-64 big_phone नाम का एक काल्पनिक डिवाइस बनाने का तरीका बताया गया है. यह डिवाइस, सामान्य Cuttlefish डिवाइस से दस गुना बड़ा है.
किसी मौजूदा टारगेट से इनहेरिट करना
किसी मौजूदा टारगेट से इनहेरिट करने के लिए:
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)
लंच टारगेट जोड़ना
device/google/cuttlefish/AndroidProducts.mk फ़ाइल में, lunch टारगेट डालें:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phoneJSON कॉन्फ़िगरेशन तय करना
Cuttlefish डिवाइस लॉन्च करने के लिए, JSON कॉन्फ़िगरेशन फ़ाइल बनाएं. इसमें डिवाइस की प्रॉपर्टी को दिखाने के लिए, क्रम के हिसाब से स्ट्रक्चर होना चाहिए.big_phone.json उदाहरण के लिए, JSON कॉन्फ़िगरेशन फ़ाइल में, वीएम के लिए आवंटित रैम और डिसप्ले कॉन्फ़िगरेशन जैसे विकल्प तय किए जा सकते हैं. यह ज़रूरी नहीं है कि यह फ़ाइल, AOSP ट्री में हो.
कॉन्फ़िगरेशन के लिए JSON फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, कैननिकल कॉन्फ़िगरेशन देखें.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
कॉन्फ़िगरेशन लॉन्च करने के लिए, यह कमांड चलाएं:
cvd create --config_file=big_phone.jsonlaunch_cvd (लेगसी) चलाना
क्रम के हिसाब से बने JSON कॉन्फ़िगरेशन फ़ॉर्मैट में, कुछ कॉन्फ़िगरेशन प्रॉपर्टी उपलब्ध नहीं होती हैं. ऐसे कॉन्फ़िगरेशन के लिए, एक ही लेवल वाले JSON शब्दकोश से launch_cvd फ़्लैग की डिफ़ॉल्ट वैल्यू सेट की जा सकती हैं. सभी
कॉन्फ़िगरेशन विकल्पों की पूरी सूची देखने के लिए, देखें
cf_flags_validator.cpp.
यहां, JSON कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके,
launch_cvd फ़्लैग के विकल्पों
की डिफ़ॉल्ट वैल्यू को बदलने का एक उदाहरण दिया गया है. साथ ही, इसमें बताया गया है कि Cuttlefish लॉन्चर को,
कस्टम कॉन्फ़िगरेशन लॉन्च करने के लिए कैसे चालू किया जा सकता है.
कस्टम वैल्यू के साथ,
device/google/cuttlefish/shared/config/config_big_phone.json, नाम की JSON कॉन्फ़िगरेशन फ़ाइल बनाएं.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }Cuttlefish लॉन्चर को
big_phoneकॉन्फ़िगरेशन लॉन्च करने के लिए, पक्का करें कि उसके पासdevice/google/cuttlefish/shared/config/config_big_phone.jsonफ़ाइल का ऐक्सेस हो. इसके लिए, यह तरीका अपनाएं: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", }device/google/cuttlefish/shared/device.mkमें यह कमांड चलाकर, Cuttlefish लॉन्चर में, बनने वाले बिल्ड आर्टफ़ैक्ट का एलान जोड़ें.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)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.txtdevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtमें यह जानकारी डालकर, डिवाइस टाइप कोbig_phoneकॉन्फ़िगरेशन के साथ लेबल करें:config=big_phone