این صفحه نحوه ایجاد یک دستگاه Cuttlefish سفارشی را شرح می دهد. Cuttlefish شامل انواع دستگاه های از پیش تعریف شده در فاکتورهای شکلی مختلف است که در AndroidProducts.mk
فهرست شده است. علاوه بر گزینههای سفارشیسازی کلی دستگاه که در «افزودن دستگاه جدید» توضیح داده شده است، میتوانید سفارشیسازیهای مخصوص Cuttlefish مانند تنظیمات پیشتنظیم برد دستگاه مجازی (vsoc_x88_64، vsoc_arm64، vsoc_riscv64)، پیشساختههای هسته، پیشساختههای بوتلودر، ویژگیهای فروشنده، ویژگیهای nesfig سیستم را انجام دهید. پشتیبانی مجازی سازی و گزینه های نمایش برای فهرست کامل پارامترهای زمان ساخت که میتوانند سفارشی شوند، device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
ببینید.
مراحل زیر نحوه ایجاد یک دستگاه تخیلی big_phone
x86-64 را ده برابر اندازه یک دستگاه 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)
یک هدف ناهار اضافه کنید
هدف lunch
را در فایل device/google/cuttlefish/AndroidProducts.mk
قرار دهید:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phone
پیکربندی JSON را تعریف کنید
برای راه اندازی دستگاه Cuttlefish، یک فایل پیکربندی JSON به نام big_phone .json
با ساختار سلسله مراتبی که ویژگی های دستگاه را نشان می دهد ایجاد کنید. به عنوان مثال، در فایل پیکربندی JSON، می توانید گزینه هایی مانند RAM اختصاص داده شده برای VM و پیکربندی نمایشگر را مشخص کنید. این فایل نباید در درخت AOSP باشد. برای جزئیات بیشتر در مورد قالب JSON برای پیکربندی ها، به تنظیمات Canonical مراجعه کنید.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
برای راه اندازی پیکربندی، اجرا کنید:
cvd create --config_file=big_phone.json
launch_cvd را اجرا کنید (قدیمی)
برخی از ویژگی های پیکربندی در قالب پیکربندی سلسله مراتبی JSON در دسترس نیستند. برای چنین پیکربندیهایی، میتوانید مقادیر پیشفرض flag launch_cvd
از یک فرهنگ لغت JSON تک سطحی تنظیم کنید. برای فهرست کامل همه گزینههای پیکربندی، به cf_flags_validator.cpp
مراجعه کنید.
در زیر نمونهای از نحوه نادیده گرفتن مقادیر پیشفرض گزینههای پرچم launch_cvd
با استفاده از یک فایل پیکربندی JSON و فعال کردن لانچر Cuttlefish برای راهاندازی پیکربندی سفارشی توضیح داده میشود.
یک فایل پیکربندی 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, }
برای اینکه لانچر Cuttlefish پیکربندی
big_phone
را راه اندازی کند، با انجام کارهای زیر مطمئن شوید که به فایلdevice/google/cuttlefish/shared/config/config_ big_phone .json
دسترسی دارد:با افزودن مصراع
prebuilt_etc_host
در فایلdevice/google/cuttlefish/shared/config/Android.bp
، آرتیفکت 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
ایجاد کنید و با افزودن خط زیر به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