หน้านี้อธิบายวิธีสร้างอุปกรณ์ Cuttlefish ที่ปรับแต่งเอง Cuttlefish
มีประเภทอุปกรณ์ที่กำหนดไว้ล่วงหน้าในฟอร์มแฟกเตอร์ต่างๆ ตามที่ระบุไว้ใน
AndroidProducts.mk นอกเหนือจากตัวเลือกการปรับแต่งอุปกรณ์ทั่วไป
ที่อธิบายไว้ใน
การเพิ่มอุปกรณ์ใหม่แล้ว คุณยังสามารถปรับแต่ง
Cuttlefish ได้โดยเฉพาะ เช่น ค่าที่ตั้งไว้ล่วงหน้าสำหรับการกำหนดค่าบอร์ดอุปกรณ์เสมือน (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), เคอร์เนลที่สร้างไว้ล่วงหน้า,
บูตโหลดเดอร์ที่สร้างไว้ล่วงหน้า, คุณสมบัติของผู้ให้บริการ, การกำหนดค่าระบบ, การรองรับการจำลองเสมือนแบบซ้อน และตัวเลือกการแสดงผล หากต้องการดูรายการพารามิเตอร์เวลาบิลด์ทั้งหมดที่ปรับแต่งได้ โปรดดู
device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
ขั้นตอนต่อไปนี้จะอธิบายวิธีสร้างอุปกรณ์ big_phone x86-64 ที่สมมติขึ้นมาซึ่งมีขนาดใหญ่กว่าอุปกรณ์ Cuttlefish ทั่วไป 10 เท่า
รับค่าจากเป้าหมายที่มีอยู่
วิธีรับค่าจากเป้าหมายที่มีอยู่
- สร้าง
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 ที่จัดสรรไว้สำหรับ VM และการกำหนดค่าการแสดงผล ไฟล์นี้ไม่จำเป็นต้องอยู่ในโครงสร้าง AOSP
โปรดดูรายละเอียดเกี่ยวกับรูปแบบ JSON สำหรับการกำหนดค่าที่
หัวข้อการกำหนดค่า Canonical
{
"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.bpprebuilt_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.mkTARGET_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.txtconfig=big_phone