本頁說明如何建立自訂 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 設定檔中指定選項,例如分配給 VM 的 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 構件為建構構件。prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
在
device/google/cuttlefish/shared/device.mk
中執行下列指令,將產生的建構成果宣告加入 Cuttlefish 啟動器。$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
建立
android_info.txt
檔案,並在device/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk
中新增下列程式碼,將big_phone
設定與檔案建立連結: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