Questa pagina descrive come creare un dispositivo Cuttlefish personalizzato. Cuttlefish
include tipi di dispositivi predefiniti in diversi fattori di forma, come elencato in
AndroidProducts.mk. Oltre alle opzioni generali di personalizzazione del dispositivo descritte in Aggiunta di un nuovo dispositivo, puoi apportare personalizzazioni specifiche di Cuttlefish, come i preset di configurazione della scheda del dispositivo virtuale (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), i prebuilt del kernel, i prebuilt del bootloader, le proprietà del fornitore, le configurazioni di sistema, il supporto della virtualizzazione nidificata e le opzioni di visualizzazione. Per un elenco completo dei
parametri del tempo di compilazione che possono essere personalizzati, consulta
device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk.
I seguenti passaggi descrivono come creare un dispositivo x86-64
big_phone fittizio dieci volte più grande di un normale
dispositivo Cuttlefish.
Ereditare da un target esistente
Per ereditare da un target esistente:
- Crea una directory
device/google/cuttlefish/vsoc_x86_64/big_phone. - Crea un file
aosp_cf.mkin questa 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)
Aggiungere un obiettivo per il pranzo
Inserisci il target lunch nel file
device/google/cuttlefish/AndroidProducts.mk:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phoneDefinisci la configurazione JSON
Per avviare il dispositivo Cuttlefish, crea un file di configurazione JSON denominato
big_phone.json con una struttura gerarchica che rappresenti
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 nella struttura AOSP.
Per i dettagli sul formato JSON per le configurazioni, vedi
Configurazioni canoniche.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Per avviare la configurazione, esegui:
cvd create --config_file=big_phone.jsonEsegui launch_cvd (legacy)
Alcune proprietà di configurazione non sono disponibili nel formato di configurazione JSON gerarchico. Per queste configurazioni, puoi impostare i valori predefiniti del flag launch_cvd da un dizionario JSON a un solo livello. Per un elenco completo di tutte le opzioni di configurazione, consulta cf_flags_validator.cpp.
Di seguito viene descritto un esempio di come eseguire l'override dei valori predefiniti delle
opzioni del flag launch_cvd
utilizzando un file di configurazione JSON e attivare l'avvio di 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 avvii la configurazione
big_phone, assicurati che abbia accesso al filedevice/google/cuttlefish/shared/config/config_big_phone.jsonnel seguente modo:Dichiara l'artefatto JSON come artefatto di build aggiungendo la sezione
prebuilt_etc_hostnel filedevice/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 al launcher Cuttlefish eseguendo il seguente comando in
device/google/cuttlefish/shared/device.mk.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)Crea un file
android_info.txte collega la configurazionebig_phoneal 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.txtEtichetta il tipo di dispositivo con la configurazione
big_phonecompilandodevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtcon quanto segue:config=big_phone