本页介绍了如何创建自定义 Cuttlefish 设备。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 设备,请创建一个名为 big_phone.json
的 JSON 配置文件,具有表示设备属性的分层结构。例如,在 JSON 配置文件中,您可以指定选项,例如为虚拟机分配的 RAM 和显示配置。此文件不必位于 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 配置格式。对于此类配置,您可以设置单级 JSON 字典中的 launch_cvd
标志默认值。如需查看所有配置选项的完整列表,请参阅 cf_flags_validator.cpp
。
以下示例说明了如何使用 JSON 配置文件替换 launch_cvd
标志选项的默认值,并让 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
文件,具体操作步骤如下:通过在
device/google/cuttlefish/shared/config/Android.bp
文件中添加prebuilt_etc_host
节,将 JSON 工件声明为 build 工件。prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
在
device/google/cuttlefish/shared/device.mk
中运行以下命令,将生成的 build 工件声明添加到 Cuttlefish 启动器。$(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
通过在
device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
中填充以下代码,为设备类型添加big_phone
配置标签:config=big_phone