In questa pagina viene descritto come creare un dispositivo Seppia 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 nella sezione Aggiunta di un nuovo dispositivo, puoi effettuare personalizzazioni specifiche per Cuttlefish, ad esempio preset di configurazione della scheda dei dispositivi virtuali (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), kernel predefiniti, bootloader predefiniti, proprietà di visualizzazione dei fornitori, configurazioni di sistema, opzioni di virtualizzazione nidificate e supporto. Per un elenco completo dei
parametri del tempo di build che possono essere personalizzati, vedi
device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk
.
I passaggi seguenti spiegano come creare un dispositivo x86-64
big_phone
fittizio dieci volte superiore a quello di un normale dispositivo Seppia.
Eredita 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.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 il target lunch
nel
device/google/cuttlefish/AndroidProducts.mk
file:
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 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
dell'esposizione. Questo file non deve trovarsi nella struttura AOSP.
Per maggiori 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, esegui:
cvd create --config_file=big_phone.json
Esegui 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 livello. Per un elenco completo di tutte le opzioni di configurazione, vedi cf_flags_validator.cpp
.
Di seguito è riportato un esempio di come ignorare i valori predefiniti delle opzioni del flag launch_cvd
utilizzando un file di configurazione JSON e consentire al programma di avvio Cuttlefish di 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, }
Per consentire all'utilità di avvio di Cuttlefish di avviare la configurazione
big_phone
, assicurati che abbia accesso al filedevice/google/cuttlefish/shared/config/config_big_phone.json
seguendo questi passaggi:Dichiara l'artefatto JSON come artefatto della build aggiungendo la stanza
prebuilt_etc_host
nel 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'elemento risultante della compilazione al programma di avvio di 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
compilandodevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
con quanto segue:config=big_phone