এই পৃষ্ঠাটি বর্ণনা করে কিভাবে একটি কাস্টমাইজড কাটলফিশ ডিভাইস তৈরি করতে হয়। Cuttlefish এ AndroidProducts.mk এ তালিকাভুক্ত বিভিন্ন ফর্ম ফ্যাক্টরের পূর্বনির্ধারিত ডিভাইসের ধরন অন্তর্ভুক্ত করে। একটি নতুন ডিভাইস যোগ করার ক্ষেত্রে বর্ণিত সাধারণ ডিভাইস কাস্টমাইজেশন বিকল্পগুলি ছাড়াও, আপনি ভার্চুয়াল ডিভাইস বোর্ড কনফিগারেশন প্রিসেট (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), কার্নেল প্রিবিল্টস, বুটলোডার প্রিবিল্ট, ডিসপ্লে সাপোর্ট এবং কনফিগারেশন প্রপার্টি, ডিসপ্লে সাপোর্ট, ভিরচুয়াল সিস্টেমের মতো কাটলফিশ-নির্দিষ্ট কাস্টমাইজেশন করতে পারেন। বিকল্প কাস্টমাইজ করা যেতে পারে এমন বিল্ড টাইম প্যারামিটারের সম্পূর্ণ তালিকার জন্য, device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk দেখুন।
 নিম্নলিখিত ধাপগুলি বর্ণনা করে কিভাবে একটি কাল্পনিক 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 ডিভাইসটি চালু করতে, একটি JSON কনফিগারেশন ফাইল তৈরি করুন যার নাম big_phone .json একটি শ্রেণীবদ্ধ কাঠামো যা ডিভাইসের বৈশিষ্ট্যগুলিকে উপস্থাপন করে। উদাহরণস্বরূপ, JSON কনফিগারেশন ফাইলে, আপনি VM-এর জন্য বরাদ্দ করা RAM এবং প্রদর্শন কনফিগারেশনের মতো বিকল্পগুলি নির্দিষ্ট করতে পারেন। এই ফাইলটি AOSP গাছে থাকতে হবে না। কনফিগারেশনের জন্য JSON ফর্ম্যাটের বিশদ বিবরণের জন্য, ক্যানোনিকাল কনফিগারেশন দেখুন।
{
  "instances":
      [
        {
          "vm": {
            "memory_mb": 40960,
          },
          "graphics": {
            "displays": [
              {
                "width": 7200,
                "height": 12800,
                "dpi": 320
              }
            ]
          }
        }
      ]
}
কনফিগারেশন চালু করতে, চালান:
cvd create --config_file=big_phone.jsonলঞ্চ_সিভিডি চালান (উত্তরাধিকার)
 নির্দিষ্ট কনফিগারেশন বৈশিষ্ট্য অনুক্রমিক JSON কনফিগারেশন বিন্যাসে উপলব্ধ নয়। এই ধরনের কনফিগারেশনের জন্য, আপনি একটি একক-স্তরের JSON অভিধান থেকে launch_cvd পতাকা ডিফল্ট মান সেট করতে পারেন। সমস্ত কনফিগারেশন বিকল্পের সম্পূর্ণ তালিকার জন্য, cf_flags_validator.cpp দেখুন।
 JSON কনফিগারেশন ফাইল ব্যবহার করে launch_cvd পতাকা বিকল্পগুলির ডিফল্ট মানগুলিকে কীভাবে ওভাররাইড করতে হয় এবং কাস্টম কনফিগারেশন চালু করতে কাটলফিশ লঞ্চারকে সক্রিয় করতে হয় তার একটি উদাহরণ নিম্নলিখিতটি বর্ণনা করে।
- একটি JSON কনফিগারেশন ফাইল তৈরি করুন, - device/google/cuttlefish/shared/config/config_ big_phone .json, কাস্টম মান সহ।- { "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
- কটলফিশ লঞ্চারের জন্য - 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এ নিম্নলিখিতটি চালিয়ে কাটলফিশ লঞ্চারে ফলস্বরূপ বিল্ড আর্টিফ্যাক্ট ঘোষণা যোগ করুন।- $(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.txt
- নিম্নলিখিতগুলির সাথে - device/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txtপপুলেট করে- big_phoneকনফিগারেশনের সাথে ডিভাইসের ধরনটিকে লেবেল করুন:- config=big_phone