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