Esta página descreve como criar um dispositivo híbrido do Cuttlefish (CHD).
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 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.
Escalonabilidade: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:
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:- Um destino completo do Cuttlefish
- Um destino do Cuttlefish que cria apenas arquivos de fornecedor do Cuttlefish. Para mais informações, consulte Criar um destino de fornecedor do Cuttlefish.
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.pyscript. Esse script combina os dois arquivos de destino em um arquivo de destino de CHD usandomerge_target_files.pye gera as imagens de CHD do arquivo de destino de CHD usandoimg_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 do Cuttlefish
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.
Para criar um destino somente do fornecedor do Cuttlefish, siga estas etapas:
Herde o destino do Cuttlefish que cria artefatos completos:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Defina o nome do destino:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorDesative 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
Escolher um ambiente de host para iniciar um CHD
Para configurar um ambiente de host escalonável para iniciar e gerenciar CHDs baseados em ARM64, escolha uma configuração com base no seu fluxo de trabalho:
Bare metal do Google Cloud C4A (recomendado): as instâncias bare metal do Google Cloud C4A, como
c4a-standard-96-metalouc4a-highmem-96-metal, oferecem aceleração de hardware KVM ARM64 nativa com tecnologia dos processadores Google Axion. Essa configuração oferece execução de alta performance e altamente escalonável para CHDs ARM64 na nuvem sem sobrecarga de virtualização aninhada. Além disso, a orquestração de nuvem do OmniLab ATS se integra aoc4a-metalpara automatizar a alocação de dispositivos, a orquestração de testes e o gerenciamento de infraestrutura.Configuração manual do host ou local (alternativa): se você estiver executando em hardware ARM local ou de laboratório personalizado ou configurando manualmente um ambiente de host sem o OmniLab ATS, consulte Executar o Cuttlefish em um servidor local.