Esta página descreve como criar um dispositivo Cuttlefish personalizado. Choco
inclui tipos de dispositivos predefinidos em diferentes formatos, conforme listado em
AndroidProducts.mk
Além da personalização geral do dispositivo
descritas em
Ao adicionar um novo dispositivo, você pode fazer
Personalizações específicas do Cuttlefish, como a placa do dispositivo virtual
predefinições de configuração (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), kernel pré-criados,
carregadores de inicialização pré-criados, propriedades do fornecedor, configurações do sistema, recursos
virtualização 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 uma instância x86-64 fictícia
Dispositivo big_phone
10 vezes o tamanho de um dispositivo normal
Dispositivo Cuttlefish.
Herdar de um destino existente
Para herdar de um destino existente:
- Criar um
device/google/cuttlefish/vsoc_x86_64/big_phone
diretório. - Crie um arquivo
aosp_cf.mk
nesse 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 objetivo de almoç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_phone
Definir 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, é possível
especificar opções como a RAM alocada para a VM e o
configuração do Terraform. Esse arquivo não precisa estar na árvore 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 start --config_file=big_phone.json
Executar launch_cvd (legado)
Algumas propriedades de configuração não estão disponíveis no JSON hierárquico
de configuração do Terraform. Para essas configurações, defina a flag launch_cvd
valores padrão de um dicionário JSON de nível único. Para acessar uma lista completa
opções de configuração, consulte
cf_flags_validator.cpp
Veja a seguir um exemplo de como substituir os valores padrão do
Opções de sinalização launch_cvd
usando um arquivo de configuração JSON e ative o acesso rápido do Cuttlefish para iniciar o
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 a tela de início do Cuttlefish inicie a configuração
big_phone
, verifique se ela tem acesso aodevice/google/cuttlefish/shared/config/config_big_phone.json
fazendo o seguinte:Declare o artefato JSON como um artefato de compilação adicionando o estrofe
prebuilt_etc_host
na 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 Cuttlefish acesso rápido executando o seguinte no
device/google/cuttlefish/shared/device.mk
:$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
Crie um arquivo
android_info.txt
e vincule a configuração dobig_phone
ao adicionando a seguinte linha ao arquivodevice/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.txt
Preencha o campo para identificar o tipo de dispositivo com a configuração
big_phone
.device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
pelo seguinte:config=big_phone