이 페이지에서는 Cuttlefish 하이브리드 기기 (CHD)를 만드는 방법을 설명합니다.
CHD는 하이브리드 가상 Cuttlefish 기기로, 기기의 HAL에서 Cuttlefish 시스템 이미지 대신 실제 기기의 시스템 이미지를 실행합니다. 이를 통한 이점은 다음과 같습니다.
조기 개발 및 테스트: CHD를 사용하면 실제 하드웨어를 사용하기 전에 차세대 시스템 소프트웨어를 조기에 개발하고 테스트할 수 있습니다.
확장성: CHD를 사용하면 개발 및 테스트 용량을 더 쉽게 확장할 수 있습니다.
CHD 이미지 만들기
CHD 이미지를 만들려면 다음 단계를 따르세요.
make dist를 사용하여 공급업체 타겟 및 실제 기기의 타겟 파일을 생성합니다. 다음 옵션 중 하나를 사용하여 공급업체 타겟 파일을 생성합니다.- 기존 전체 Cuttlefish 타겟
- Cuttlefish 공급업체 파일만 빌드하는 Cuttlefish 타겟 자세한 내용은 Cuttlefish 공급업체 타겟 만들기를 참고하세요.
두 타겟 파일을 CHD 타겟 파일로 결합하고 CHD 타겟 파일에서 CHD 이미지를 생성합니다.
build_cf_hybrid_device.py이 스크립트는 두 타겟 파일을 CHD 타겟 파일로 결합하고merge_target_files.pyCHD 타겟 파일에서 CHD 이미지를 생성합니다img_from_target_files.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를 사용하여 CHD 이미지의 공급업체 타겟
파일로 사용할 수 있는
aosp_cf_arm64_phone_vendor 타겟을 정의할 수 있습니다.
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 클라우드 오케스트레이션 은c4a-metal과 통합되어 기기 할당, 테스트 오케스트레이션, 인프라 관리를 자동화합니다.