توضّح هذه الصفحة كيفية إنشاء جهاز Cuttlefish مخصّص. يتضمّن Cuttlefish أنواع أجهزة محدّدة مسبقًا بأشكال مختلفة كما هو موضّح في
AndroidProducts.mk
. بالإضافة إلى خيارات التخصيص العامة للأجهزة الموضّحة في إضافة جهاز جديد، يمكنك إجراء عمليات تخصيص خاصة بأداة Cuttlefish، مثل الإعدادات المُسبقة لضبط لوحة الأجهزة الافتراضية (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)
إضافة هدف لتناول الغداء
أدرِج هدف 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) المخصّصة للجهاز الافتراضي وإعدادات العرض. ليس من الضروري أن يكون هذا الملف في بنية AOSP.
لمعرفة تفاصيل حول تنسيق JSON للإعدادات، يُرجى الاطّلاع على
الإعدادات الأساسية.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
لتشغيل عملية الإعداد، نفِّذ ما يلي:
cvd create --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