Criar um dispositivo híbrido Cuttlefish

Esta página descreve como criar um dispositivo híbrido Cuttlefish (CHD, na sigla em inglês).

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

  • Desenvolvimento e testes antecipados:os CHDs permitem o desenvolvimento e o teste antecipados de software de sistema de última geração antes que o hardware físico esteja disponível.

  • Escalonabilidade:os CHDs facilitam a expansão da capacidade de desenvolvimento e teste.

Criar uma imagem CHD

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

É possível 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 CHD.

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

  1. Herde o destino do 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