Halaman ini menjelaskan cara membuat perangkat Cuttlefish yang disesuaikan. Cuttlefish
menyertakan jenis perangkat yang telah ditentukan dalam berbagai faktor bentuk seperti yang tercantum dalam
AndroidProducts.mk. Selain opsi penyesuaian perangkat umum
yang dijelaskan dalam
Menambahkan perangkat baru, Anda dapat melakukan
penyesuaian khusus Cuttlefish seperti preset konfigurasi papan perangkat virtual (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), prebuilt kernel,
prebuilt bootloader, properti vendor, konfigurasi sistem, dukungan virtualisasi
bertingkat, dan opsi tampilan. Untuk daftar lengkap parameter waktu build yang dapat disesuaikan, lihat
device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk.
Langkah-langkah berikut menjelaskan cara membuat perangkat big_phone x86-64 fiktif yang berukuran sepuluh kali ukuran perangkat Cuttlefish biasa.
Mewarisi dari target yang ada
Untuk mewarisi dari target yang ada:
- Buat
device/google/cuttlefish/vsoc_x86_64/big_phonedirektori. - Buat file
aosp_cf.mkdi direktori tersebut.
$(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)
Menambahkan target lunch
Sisipkan target lunch ke dalam file device/google/cuttlefish/AndroidProducts.mk:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phoneMenentukan konfigurasi JSON
Untuk meluncurkan perangkat Cuttlefish, buat file konfigurasi JSON bernama
big_phone.json dengan struktur hierarkis yang mewakili
properti perangkat. Misalnya, dalam file konfigurasi JSON, Anda dapat menentukan opsi seperti RAM yang dialokasikan untuk VM dan konfigurasi tampilan. File ini tidak harus berada di pohon AOSP.
Untuk mengetahui detail tentang format JSON untuk konfigurasi, lihat
Konfigurasi kanonis.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Untuk meluncurkan konfigurasi, jalankan:
cvd create --config_file=big_phone.jsonMenjalankan launch_cvd (warisan)
Properti konfigurasi tertentu tidak tersedia dalam format konfigurasi JSON hierarkis. Untuk konfigurasi tersebut, Anda dapat menetapkan nilai default flag launch_cvd dari kamus JSON satu tingkat. Untuk daftar lengkap semua
opsi konfigurasi, lihat
cf_flags_validator.cpp.
Berikut ini menjelaskan contoh cara mengganti nilai default opsi flag
launch_cvd
menggunakan file konfigurasi JSON dan mengaktifkan peluncur Cuttlefish untuk meluncurkan
konfigurasi kustom.
Buat file konfigurasi JSON,
device/google/cuttlefish/shared/config/config_big_phone.json, dengan nilai kustom.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }Agar peluncur Cuttlefish dapat meluncurkan konfigurasi
big_phone, pastikan peluncur memiliki akses kedevice/google/cuttlefish/shared/config/config_big_phone.jsonfile dengan melakukan hal berikut:Deklarasikan artefak JSON sebagai artefak build dengan menambahkan stanza
prebuilt_etc_hostdi 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", }Tambahkan deklarasi artefak build yang dihasilkan ke peluncur Cuttlefish dengan menjalankan perintah berikut di
device/google/cuttlefish/shared/device.mk.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)Buat file
android_info.txtdan ikat konfigurasibig_phoneke file dengan menambahkan baris berikut kedevice/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.txtBeri label jenis perangkat dengan konfigurasi
big_phonedengan mengisidevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtdengan kode berikut:config=big_phone