หน้านี้อธิบายวิธีสร้างอุปกรณ์ 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
 ทั่วไป 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 ลงในไฟล์
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
จากพจนานุกรม JSON ระดับเดียว ดูรายการตัวเลือกการกำหนดค่าทั้งหมดได้ที่
cf_flags_validator.cpp
ต่อไปนี้คือตัวอย่างวิธีลบล้างค่าเริ่มต้นของ
launch_cvd ตัวเลือกแฟล็ก
โดยใช้ไฟล์การกำหนดค่า 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_phoneconfig ให้ตรวจสอบว่าตัวเรียกใช้มีสิทธิ์เข้าถึงไฟล์- device/google/cuttlefish/shared/config/config_big_phone.jsonโดยทำดังนี้- ประกาศอาร์ติแฟกต์ JSON เป็นอาร์ติแฟกต์การสร้างโดยการเพิ่ม - prebuilt_etc_hoststanza ในไฟล์- 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 launcher โดยเรียกใช้คำสั่งต่อไปนี้ใน - 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_phoneconfig โดยป้อนข้อมูล- device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtด้วยข้อมูลต่อไปนี้- config=big_phone