توضّح هذه الصفحة كيفية إنشاء جهاز Cuttlefish مخصّص. يشمل تطبيق حبَّار
أنواع الأجهزة المحددة مسبقًا بأشكال مختلفة كما هو موضّح في
AndroidProducts.mk
. بالإضافة إلى الخيارات العامة لتخصيص الأجهزة الموضّحة في إضافة جهاز جديد، يمكنك أيضًا إجراء عمليات تخصيص خاصة بأداة Cuttlefish، مثل الإعدادات المسبقة لإعداد لوحة الأجهزة الافتراضية (vsoc_x88_64 وvoc_arm64 وvsoc_riscv64) وتقنيات kernel مسبقة الإعداد وبرامج تحميل برامج التحميل وخيارات الموّردين وإعدادات النظام والعرض الافتراضي المُدمج. للحصول على قائمة كاملة بملفه
مَعلمات وقت الإنشاء التي يمكن تخصيصها، راجِع
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)
إضافة هدف غداء
إدراج هدف 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 create --config_file=big_phone.json
تشغيل launch_cvd (قديم)
لا تتوفّر بعض سمات الإعدادات في تنسيق الإعدادات التدرّجية بتنسيق JSON
. بالنسبة إلى هذه الإعدادات، يمكنك ضبط قيم launch_cvd
flag
التلقائية من قاموس 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, }
ليشغِّل مشغّل حبَّار إعدادات
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