หน้านี้อธิบายวิธีสร้างอุปกรณ์ปลาหมึกแบบกำหนดเอง Cuttlefish มีประเภทอุปกรณ์ที่กำหนดไว้ล่วงหน้าในรูปแบบต่างๆ ตามที่ระบุไว้ใน AndroidProducts.mk
นอกเหนือจากตัวเลือกการปรับแต่งอุปกรณ์ทั่วไปที่อธิบายไว้ใน การเพิ่มอุปกรณ์ใหม่ คุณยังสามารถปรับแต่งเฉพาะ Cuttlefish ได้ เช่น การกำหนดค่าล่วงหน้าของบอร์ดอุปกรณ์เสมือน (vsoc_x88_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 ที่จัดสรรสำหรับ VM และการกำหนดค่าการแสดงผล ไฟล์นี้ไม่จำเป็นต้องอยู่ในแผนผัง AOSP สำหรับรายละเอียดเกี่ยวกับรูปแบบ JSON สำหรับการกำหนดค่า โปรดดู การกำหนดค่า Canonical
{
"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 Launcher เปิดใช้งานการกำหนดค่า
big_phone
ตรวจสอบให้แน่ใจว่ามีสิทธิ์เข้าถึงdevice/google/cuttlefish/shared/config/config_ big_phone .json
โดยดำเนินการดังต่อไปนี้:ประกาศส่วน JSON เป็นส่วนสร้างโดยการเพิ่ม
prebuilt_etc_host
stanza ในไฟล์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", }
เพิ่มการประกาศ build artifact ที่เป็นผลลัพธ์ลงในตัวเรียกใช้งาน 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