कटलफ़िश हाइब्रिड डिवाइस बनाना

इस पेज पर, Cuttlefish हाइब्रिड डिवाइस (सीएचडी) बनाने का तरीका बताया गया है.

सीएचडी, हाइब्रिड वर्चुअल कटलफ़िश डिवाइस होता है. यह डिवाइस के एचएएल पर, कटलफ़िश सिस्टम इमेज के बजाय किसी फ़िज़िकल डिवाइस की सिस्टम इमेज चलाता है. इससे ये फ़ायदे मिलते हैं:

  • शुरुआती डेवलपमेंट और टेस्टिंग: सीएचडी की मदद से, अगली जनरेशन के सिस्टम सॉफ़्टवेयर को फ़िज़िकल हार्डवेयर के उपलब्ध होने से पहले ही डेवलप और टेस्ट किया जा सकता है.

  • स्केलेबिलिटी: सीएचडी की मदद से, डेवलपमेंट और टेस्टिंग की क्षमता को आसानी से बढ़ाया जा सकता है.

CHD इमेज बनाना

सीएचडी इमेज बनाने के लिए, यह तरीका अपनाएं:

  1. make dist का इस्तेमाल करके, वेंडर टारगेट और फ़िज़िकल डिवाइस के लिए टारगेट फ़ाइलें जनरेट करें. इनमें से किसी एक विकल्प का इस्तेमाल करके, वेंडर टारगेट फ़ाइलें जनरेट करें:

    • मौजूदा Cuttlefish टारगेट
    • Cuttlefish का ऐसा टारगेट जो सिर्फ़ Cuttlefish वेंडर फ़ाइलें बनाता है. ज़्यादा जानकारी के लिए, Cuttlefish वेंडर टारगेट बनाना लेख पढ़ें.
  2. दोनों टारगेट फ़ाइलों को एक CHD टारगेट फ़ाइल में जोड़ें. इसके बाद, build_cf_hybrid_device.py स्क्रिप्ट चलाकर, CHD टारगेट फ़ाइल से CHD इमेज जनरेट करें. यह स्क्रिप्ट, merge_target_files.py का इस्तेमाल करके, दो टारगेट फ़ाइलों को एक CHD टारगेट फ़ाइल में जोड़ती है. साथ ही, img_from_target_files का इस्तेमाल करके, CHD टारगेट फ़ाइल से CHD इमेज जनरेट करती है.

    python3 tools/treble/cuttlefish/build_cf_hybrid_device.py \
      --framework_target_files_zip <physical_device_target_files.zip> \
      --vendor_target_files_zip <cuttlefish_device_target_files.zip> \
      --otatools_zip <cuttlefish_otatools.zip> \
      --target chd \
      --output_dir <output_directory>
    

Cuttlefish वेंडर टारगेट बनाना

Cuttlefish में सिर्फ़ वेंडर के लिए उपलब्ध टारगेट बनाने के लिए, यह तरीका अपनाएं:

aosp_cf_vendor.mk का इस्तेमाल करके, aosp_cf_arm64_phone_vendor टारगेट तय किया जा सकता है. इसका इस्तेमाल, सीएचडी इमेज के लिए वेंडर टारगेट फ़ाइल के तौर पर किया जा सकता है.

  1. Cuttlefish टारगेट को इनहेरिट करें, जो पूरे आर्टफ़ैक्ट बनाता है.

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. टारगेट का नाम तय करें.

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. पूरे आर्टफ़ैक्ट से ग़ैर-ज़रूरी बिल्ड बंद करें.

    PRODUCT_BUILD_SYSTEM_IMAGE := false
    PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false
    PRODUCT_BUILD_PRODUCT_IMAGE := false
    PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false
    PRODUCT_BUILD_SUPER_PARTITION := false
    TARGET_SKIP_OTA_PACKAGE := true