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