本頁說明如何建立 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 供應商目標
您可以使用 aosp_cf_vendor.mk 定義 aosp_cf_arm64_phone_vendor 目標,並將其做為 CHD 圖片的供應商目標檔案。
如要建立僅限供應商的 Cuttlefish 目標,請按照下列步驟操作:
繼承會建構完整構件的 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
選擇要啟動 CHD 的主機環境
如要設定可擴充的主機環境,以便啟動及管理以 ARM64 為基礎的 CHD,請根據您的工作流程選擇設定:
Google Cloud C4A 裸機 (建議): Google Cloud C4A 裸機執行個體 (例如
c4a-standard-96-metal或c4a-highmem-96-metal) 提供由 Google Axion 處理器驅動的原生 ARM64 KVM 硬體加速功能。這項設定可在雲端為 ARM64 CHD 提供高效能、高度可擴充的執行作業,且不會產生巢狀虛擬化負擔。此外,OmniLab ATS Cloud Orchestration 會與c4a-metal整合,自動分配裝置、協調測試,以及管理基礎架構。手動設定主機或地端部署 (替代做法):如果您在自訂本機或實驗室 ARM 硬體上執行,或手動設定主機環境 (不使用 OmniLab ATS),請參閱「在地端部署伺服器上執行 Cuttlefish」。