इस पेज पर, अपनी ज़रूरत के हिसाब से Cuttlefish डिवाइस बनाने का तरीका बताया गया है. Cuttlefish में, डिवाइस के अलग-अलग साइज़, डाइमेंशन या कॉन्फ़िगरेशन के हिसाब से, पहले से तय डिवाइस टाइप शामिल होते हैं. इनके बारे में AndroidProducts.mk
में बताया गया है. नया डिवाइस जोड़ना में बताए गए, डिवाइस को पसंद के मुताबिक बनाने के सामान्य विकल्पों के अलावा, Cuttlefish के हिसाब से भी डिवाइस को पसंद के मुताबिक बनाया जा सकता है. जैसे, वर्चुअल डिवाइस बोर्ड कॉन्फ़िगरेशन प्रीसेट (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), पहले से बने कर्नेल, पहले से बने बूटलोडर, वेंडर प्रॉपर्टी, सिस्टम कॉन्फ़िगरेशन, नेस्ट किए गए वर्चुअलाइज़ेशन के लिए सहायता, और डिसप्ले के विकल्प. अपनी पसंद के मुताबिक बनाए जा सकने वाले, बिल्ड टाइम पैरामीटर की पूरी सूची के लिए, device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
देखें.
यहां बताया गया है कि किसी सामान्य Cuttlefish डिवाइस के साइज़ से 10 गुना बड़ा 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 कॉन्फ़िगरेशन फ़ाइल में, विकल्पों की जानकारी दी जा सकती है. जैसे, VM के लिए तय की गई रैम और डिसप्ले कॉन्फ़िगरेशन. यह ज़रूरी नहीं है कि यह फ़ाइल AOSP ट्री में हो.
कॉन्फ़िगरेशन के लिए JSON फ़ॉर्मैट के बारे में जानकारी पाने के लिए, कैननिकल कॉन्फ़िगरेशन देखें.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
कॉन्फ़िगरेशन लॉन्च करने के लिए, यह चलाएं:
cvd create --config_file=big_phone.json
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
कॉन्फ़िगरेशन लॉन्च करने के लिए, पक्का करें कि उसके पास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
फ़ाइल बनाएं और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