Criar um dispositivo híbrido Cuttlefish

Esta página descreve como criar um dispositivo híbrido Cuttlefish (CHD).

Um CHD é um dispositivo virtual híbrido Cuttlefish que executa a imagem do sistema de um dispositivo físico em vez de uma imagem do sistema Cuttlefish nos HALs do dispositivo. Isso oferece as seguintes vantagens:

  • Desenvolvimento e testes iniciais:os CHDs permitem o desenvolvimento e os testes iniciais de softwares de sistema de próxima geração antes que o hardware físico esteja disponível.

  • Escalabilidade:os CHDs facilitam a expansão da capacidade de desenvolvimento e testes.

Criar uma imagem de CHD

Para criar uma imagem de CHD, siga estas etapas:

  1. Gere os arquivos de destino para o destino do fornecedor e o dispositivo físico usando make dist. Gere os arquivos de destino do fornecedor usando uma das seguintes opções:

  2. Combine os dois arquivos de destino em um arquivo de destino de CHD e gere as imagens de CHD do arquivo de destino de CHD executando o build_cf_hybrid_device.py script. Esse script combina os dois arquivos de destino em um arquivo de destino de CHD usando merge_target_files.py e gera as imagens de CHD do arquivo de destino de CHD usando 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>
    

Criar um destino de fornecedor Cuttlefish

Para criar um destino somente de fornecedor Cuttlefish, siga estas etapas:

Você pode usar aosp_cf_vendor.mk para definir o destino aosp_cf_arm64_phone_vendor, que pode ser usado como o arquivo de destino do fornecedor para uma imagem de CHD.

  1. Herde o destino Cuttlefish que cria artefatos completos.

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. Defina o nome do destino.

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. Desative builds desnecessários dos artefatos completos.

    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