Esta página descreve como criar um dispositivo Cuttlefish personalizado. O Cuttlefish
inclui tipos de dispositivos predefinidos em diferentes formatos, conforme listado em
AndroidProducts.mk. Além das opções gerais de personalização de dispositivos
descritas em
Adicionar um novo dispositivo, você pode fazer personalizações
específicas do Cuttlefish, como predefinições de configuração da placa do dispositivo virtual (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), pré-builds do kernel, pré-builds do bootloader, propriedades do fornecedor, configurações do sistema, suporte à
virtualização aninhada e opções de exibição. Para uma lista completa dos
parâmetros de tempo de build que podem ser personalizados, consulte
device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk.
As etapas a seguir descrevem como criar um dispositivo x86-64 big_phone fictício dez vezes maior que um dispositivo Cuttlefish comum.
Herdar de um destino atual
Para herdar de um destino atual:
- Crie um
device/google/cuttlefish/vsoc_x86_64/big_phonediretório. - Crie um arquivo
aosp_cf.mknesse diretório.
$(call inherit-product, device/google/cuttlefish/vsoc_x86_64_phone.mk)
PRODUCT_NAME: big_phone
PRODUCT_DEVICE: vsoc_x86_64
PRODUCT_MANUFACTURER := My Company
PRODUCT_MODEL: My Company very large phone
PRODUCT_VENDOR_PROPERTIES += \
ro.soc.manufacturer=$(PRODUCT_MANUFACTURER) \
ro.soc.model=$(PRODUCT_DEVICE)
Adicionar um destino de inicialização
Insira o destino lunch no arquivo device/google/cuttlefish/AndroidProducts.mk:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phoneDefinir a configuração JSON
Para iniciar o dispositivo Cuttlefish, crie um arquivo de configuração JSON chamado
big_phone.json com uma estrutura hierárquica que representa
as propriedades do dispositivo. Por exemplo, no arquivo de configuração JSON, você pode especificar opções como a RAM alocada para a VM e a configuração de exibição. Esse arquivo não precisa estar na árvore do AOSP.
Para detalhes sobre o formato JSON para configurações, consulte
Configurações canônicas.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Para iniciar a configuração, execute:
cvd create --config_file=big_phone.jsonExecutar launch_cvd (legado)
Algumas propriedades de configuração não estão disponíveis no formato de configuração JSON hierárquico. Para essas configurações, é possível definir valores padrão de flag launch_cvd de um dicionário JSON de nível único. Para uma lista completa de todas as
opções de configuração, consulte
cf_flags_validator.cpp.
A seguir, descrevemos um exemplo de como substituir os valores padrão das
launch_cvd opções de flag
usando um arquivo de configuração JSON e ativar o inicializador do Cuttlefish para iniciar a
configuração personalizada.
Crie um arquivo de configuração JSON,
device/google/cuttlefish/shared/config/config_big_phone.json, com valores personalizados.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }Para que o inicializador do Cuttlefish inicie a configuração
big_phone, verifique se ele tem acesso aodevice/google/cuttlefish/shared/config/config_big_phone.jsonarquivo fazendo o seguinte:Declare o artefato JSON como um artefato de build adicionando a seção
prebuilt_etc_hostno arquivodevice/google/cuttlefish/shared/config/Android.bp.prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }Adicione a declaração de artefato de build resultante ao inicializador do Cuttlefish executando o seguinte em
device/google/cuttlefish/shared/device.mk.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)Crie um arquivo
android_info.txte vincule a configuraçãobig_phoneao arquivo adicionando a seguinte linha adevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txtMarque o tipo de dispositivo com a configuração
big_phonepreenchendodevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtcom o seguinte:config=big_phone