এই পৃষ্ঠাটি বর্ণনা করে কিভাবে একটি কাস্টমাইজড কাটলফিশ ডিভাইস তৈরি করতে হয়। 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