Cuttlefish 하이브리드 기기 만들기

이 페이지에서는 Cuttlefish 하이브리드 기기 (CHD)를 만드는 방법을 설명합니다.

CHD는 하이브리드 가상 Cuttlefish 기기로, 기기의 HAL에서 Cuttlefish 시스템 이미지 대신 실제 기기의 시스템 이미지를 실행합니다. 이렇게 하면 다음과 같은 장점이 있습니다.

  • 초기 개발 및 테스트: CHD를 사용하면 실제 하드웨어를 사용할 수 있기 전에 차세대 시스템 소프트웨어를 초기 개발하고 테스트할 수 있습니다.

  • 확장성: CHD를 사용하면 개발 및 테스트 용량을 더 쉽게 확장할 수 있습니다.

CHD 이미지 만들기

CHD 이미지를 만들려면 다음 단계를 따르세요.

  1. make dist를 사용하여 공급업체 타겟과 실제 기기의 타겟 파일을 생성합니다. 다음 옵션 중 하나를 사용하여 공급업체 타겟 파일을 생성합니다.

  2. 두 타겟 파일을 하나의 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 이미지의 공급업체 타겟 파일로 사용할 수 있습니다.

  1. 전체 아티팩트를 빌드하는 Cuttlefish 타겟을 상속합니다.

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. 타겟 이름을 정의합니다.

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. 전체 아티팩트에서 불필요한 빌드를 사용 중지합니다.

    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