Questa pagina descrive come creare un dispositivo Cuttlefish personalizzato. Cuttlefish include tipi di dispositivi predefiniti in diversi fattori di forma elencati in AndroidProducts.mk
. Oltre alle opzioni generali di personalizzazione del dispositivo descritte in Aggiunta di un nuovo dispositivo , è possibile effettuare personalizzazioni specifiche di Cuttlefish come preimpostazioni di configurazione della scheda del dispositivo virtuale (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), kernel predefiniti, bootloader predefiniti, proprietà del fornitore, configurazioni di sistema, impostazioni nidificate supporto per la virtualizzazione e opzioni di visualizzazione. Per un elenco completo dei parametri del tempo di creazione che possono essere personalizzati, vedere device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
.
I passaggi seguenti descrivono come creare un dispositivo big_phone
x86-64 fittizio dieci volte più grande di un normale dispositivo Cuttlefish.
Eredita da una destinazione esistente
Per ereditare da una destinazione esistente:
- Crea una directory
device/google/cuttlefish/vsoc_x86_64/ big_phone
. - Crea un file
aosp_cf.mk
in quella directory.
$(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)
Aggiungi un obiettivo per il pranzo
Inserisci la destinazione lunch
nel file device/google/cuttlefish/AndroidProducts.mk
:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phone
Definire la configurazione JSON
Per avviare il dispositivo Cuttlefish, crea un file di configurazione JSON denominato big_phone .json
con una struttura gerarchica che rappresenta le proprietà del dispositivo. Ad esempio, nel file di configurazione JSON, puoi specificare opzioni come la RAM allocata per la VM e la configurazione del display. Questo file non deve trovarsi nell'albero AOSP. Per dettagli sul formato JSON per le configurazioni, consulta Configurazioni canoniche .
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Per avviare la configurazione, eseguire:
cvd start --config_file=big_phone.json
Esegui launch_cvd (legacy)
Alcune proprietà di configurazione non sono disponibili nel formato di configurazione JSON gerarchico. Per tali configurazioni, puoi impostare i valori predefiniti del flag launch_cvd
da un dizionario JSON a livello singolo. Per un elenco completo di tutte le opzioni di configurazione, vedere cf_flags_validator.cpp
.
Di seguito viene descritto un esempio di come sovrascrivere i valori predefiniti delle opzioni del flag launch_cvd
utilizzando un file di configurazione JSON e abilitare il launcher Cuttlefish per avviare la configurazione personalizzata.
Crea un file di configurazione JSON,
device/google/cuttlefish/shared/config/config_ big_phone .json
, con valori personalizzati.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
Affinché il launcher Cuttlefish possa avviare la configurazione
big_phone
, assicurati che abbia accesso aldevice/google/cuttlefish/shared/config/config_ big_phone .json
procedendo come segue:Dichiara l'artefatto JSON come artefatto di build aggiungendo la stanza
prebuilt_etc_host
neldevice/google/cuttlefish/shared/config/Android.bp
.prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
Aggiungi la dichiarazione dell'artefatto di build risultante nel launcher Cuttlefish eseguendo quanto segue in
device/google/cuttlefish/shared/device.mk
.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
Crea un file
android_info.txt
e collega la configurazionebig_phone
al file aggiungendo la seguente riga 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.txt
Etichetta il tipo di dispositivo con la configurazione
big_phone
popolandodevice/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt
con quanto segue:config=big_phone