Halaman ini menjelaskan cara membuat perangkat Cuttlefish yang disesuaikan. Cuttlefish
menyertakan jenis perangkat standar dalam berbagai faktor bentuk seperti yang tercantum dalam
AndroidProducts.mk
. Selain opsi penyesuaian perangkat umum
yang dijelaskan dalam
Menambahkan perangkat baru, Anda dapat membuat
penyesuaian khusus Cuttlefish seperti preset konfigurasi
papan perangkat virtual (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), kernel bawaan,
bootloader bawaan, properti vendor, konfigurasi sistem, dukungan virtualisasi
bertingkat, dan opsi tampilan. Untuk mengetahui 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 sepuluh kali ukuran perangkat
Cuttlefish biasa.
Mewarisi dari target yang ada
Untuk mewarisi dari target yang ada:
- Buat direktori
device/google/cuttlefish/vsoc_x86_64/big_phone
. - Buat file
aosp_cf.mk
di 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 makan siang
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_phone
Menentukan 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
layar. File ini tidak harus berada dalam hierarki 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.json
Menjalankan launch_cvd (lama)
Properti konfigurasi tertentu tidak tersedia dalam format konfigurasi JSON hierarkis. Untuk konfigurasi tersebut, Anda dapat menetapkan nilai default tanda launch_cvd
dari kamus JSON satu tingkat. Untuk mengetahui daftar lengkap semua opsi konfigurasi, lihat cf_flags_validator.cpp
.
Berikut ini contoh cara mengganti nilai default
opsi tanda 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 tersebut memiliki akses ke filedevice/google/cuttlefish/shared/config/config_big_phone.json
dengan melakukan hal berikut:Deklarasikan artefak JSON sebagai artefak build dengan menambahkan baris
prebuilt_etc_host
dalam 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.txt
dan kaitkan konfigurasibig_phone
ke 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.txt
Beri label jenis perangkat dengan konfigurasi
big_phone
dengan mengisidevice/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
dengan hal berikut:config=big_phone