توضح هذه الصفحة كيفية إنشاء جهاز Cuttlefish مخصص. يشتمل Cuttlefish على أنواع أجهزة محددة مسبقًا بأشكال مختلفة كما هو موضح في AndroidProducts.mk
. بالإضافة إلى خيارات تخصيص الجهاز العامة الموضحة في إضافة جهاز جديد ، يمكنك إجراء تخصيصات خاصة بـ Cuttlefish مثل الإعدادات المسبقة لتكوين لوحة الجهاز الظاهري (vsoc_x88_64، vsoc_arm64، vsoc_riscv64)، والإنشاءات المسبقة لـ kernel، والإنشاءات المسبقة لمحمل الإقلاع، وخصائص البائع، وتكوينات النظام، والمتداخلة دعم المحاكاة الافتراضية وخيارات العرض. للحصول على قائمة كاملة بمعلمات وقت الإنشاء التي يمكن تخصيصها، راجع 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)
أضف هدف الغداء
أدخل هدف 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، يمكنك تحديد خيارات مثل ذاكرة الوصول العشوائي المخصصة للجهاز الافتراضي وتكوين العرض. لا يجب أن يكون هذا الملف موجودًا في شجرة AOSP. للحصول على تفاصيل حول تنسيق JSON للتكوينات، راجع التكوينات الأساسية .
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
لبدء التكوين، قم بتشغيل:
cvd start --config_file=big_phone.json
تشغيل Launch_cvd (قديم)
لا تتوفر بعض خصائص التكوين في تنسيق تكوين JSON الهرمي. بالنسبة لمثل هذه التكوينات، يمكنك تعيين القيم الافتراضية لعلامة 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
عن طريق القيام بما يلي:قم بتعريف قطعة JSON باعتبارها قطعة أثرية بناء عن طريق إضافة مقطع
prebuilt_etc_host
في ملفdevice/google/cuttlefish/shared/config/Android.bp
.prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
أضف إعلان الإنشاء الناتج إلى مشغل Cuttlefish عن طريق تشغيل ما يلي في
device/google/cuttlefish/shared/device.mk
.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
قم بإنشاء ملف
android_info.txt
واربط تكوينbig_phone
بالملف عن طريق إضافة السطر التالي إلىdevice/google/cuttlefish/vsoc_x86_64/ big_phone /aosp_cf.mk
:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
قم بتسمية نوع الجهاز بتكوين
big_phone
عن طريق ملءdevice/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt
بما يلي:config=big_phone