توضّح هذه الصفحة كيفية إنشاء جهاز 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`
يُرجى إدراج هدف 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