หน้านี้จะอธิบายวิธีสร้างอุปกรณ์ 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
ที่มีขนาดเป็น 10 เท่าของอุปกรณ์ 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 สําหรับการกําหนดค่าที่หัวข้อการกําหนดค่าตามแบบฉบับ
{
"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
Flag โดยใช้ไฟล์การกําหนดค่า JSON และเปิดใช้ Cuttlefish Launcher เพื่อเปิดการกําหนดค่าที่กําหนดเอง
สร้างไฟล์การกําหนดค่า 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 เป็นอาร์ติแฟกต์การสร้างโดยเพิ่ม stanza
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