इस पेज पर, अपनी पसंद के मुताबिक 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_phone
JSON कॉन्फ़िगरेशन तय करना
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.json
Run 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.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", }
बिल्ड आर्टफ़ैक्ट के बारे में जानकारी देने वाले नतीजे को 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.txt
big_phone
कॉन्फ़िगरेशन का इस्तेमाल करके, डिवाइस टाइप को लेबल करें. इसके लिए,device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
में यह जानकारी भरें:config=big_phone