Halaman ini menjelaskan cara membuat perangkat Cuttlefish yang disesuaikan. Sotong
menyertakan jenis perangkat yang telah ditetapkan 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 board perangkat virtual (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), bawaan kernel, bawaan 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
fiktif 10 kali ukuran perangkat Cuttlefish biasa.
Mewarisi dari target yang sudah 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
tampilan. 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
Jalankan 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 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 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 tersebut 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