本頁說明如何建立 Cuttlefish 混合型裝置 (CHD)。
CHD 是混合式虛擬 Cuttlefish 裝置,會在裝置的 HAL 上執行實體裝置的系統映像檔,而非 Cuttlefish 系統映像檔。這項機制有以下好處:
早期開發和測試:在實體硬體推出前,即可使用 CHD 進行新一代系統軟體的早期開發和測試。
擴充性:CHD 可輕鬆擴充開發和測試容量。
建立 CHD 映像檔
如要建立 CHD 映像檔,請按照下列步驟操作:
使用
make dist,為供應商目標和實體裝置產生目標檔案。使用下列任一選項產生供應商目標檔案:- 現有的完整 Cuttlefish 目標
- 只建構 Cuttlefish 供應商檔案的 Cuttlefish 目標。詳情請參閱「建立 Cuttlefish 供應商目標」。
將這兩個目標檔案合併為 CHD 目標檔案,然後執行
build_cf_hybrid_device.py指令碼,從 CHD 目標檔案產生 CHD 映像檔。這個指令碼會使用merge_target_files.py將兩個目標檔案合併為一個 CHD 目標檔案,並使用img_from_target_files從 CHD 目標檔案產生 CHD 映像檔。python3 tools/treble/cuttlefish/build_cf_hybrid_device.py \ --framework_target_files_zip <physical_device_target_files.zip> \ --vendor_target_files_zip <cuttlefish_device_target_files.zip> \ --otatools_zip <cuttlefish_otatools.zip> \ --target chd \ --output_dir <output_directory>
建立 Cuttlefish 供應商目標
如要建立僅限供應商的 Cuttlefish 目標,請按照下列步驟操作:
您可以使用 aosp_cf_vendor.mk 定義 aosp_cf_arm64_phone_vendor 目標,並將其做為 CHD 圖片的供應商目標檔案。
繼承會建構完整構件的 Cuttlefish 目標。
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)定義目標名稱。
PRODUCT_NAME := aosp_cf_arm64_phone_vendor從完整構件中停用不必要的建構作業。
PRODUCT_BUILD_SYSTEM_IMAGE := false PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false PRODUCT_BUILD_PRODUCT_IMAGE := false PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false PRODUCT_BUILD_SUPER_PARTITION := false TARGET_SKIP_OTA_PACKAGE := true