Bu sayfada, özelleştirilmiş bir Cuttlefish cihazının nasıl oluşturulacağı açıklanmaktadır. Cuttlefish, AndroidProducts.mk bölümünde listelendiği gibi farklı form faktörlerinde önceden tanımlanmış cihaz türlerini içerir. Yeni cihaz ekleme bölümünde açıklanan genel cihaz özelleştirme seçeneklerine ek olarak, Cuttlefish'e özel özelleştirmeler de yapabilirsiniz. Örneğin, sanal cihaz kartı yapılandırma hazır ayarları (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), önceden oluşturulmuş çekirdekler, önceden oluşturulmuş önyükleyiciler, tedarikçi özellikleri, sistem yapılandırmaları, iç içe sanallaştırma desteği ve ekran seçenekleri. Özelleştirilebilen derleme zamanı parametrelerinin tam listesi için device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk bölümüne bakın.
Aşağıdaki adımlarda, normal bir Cuttlefish cihazının on katı büyüklüğünde kurgusal bir x86-64
big_phone cihazın nasıl oluşturulacağı açıklanmaktadır.
Mevcut bir hedeften devralma
Mevcut bir hedeften devralmak için:
device/google/cuttlefish/vsoc_x86_64/big_phonedizin oluşturun.- Bu dizinde bir
aosp_cf.mkdosyası oluşturun.
$(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)
Öğle yemeği hedefi ekleme
lunch hedefini device/google/cuttlefish/AndroidProducts.mk dosyasına ekleyin:
PRODUCT_MAKEFILES := \
...
big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
...
lunch big_phoneJSON yapılandırmasını tanımlama
Cuttlefish cihazını başlatmak için cihaz özelliklerini temsil eden hiyerarşik bir yapıya sahip big_phone.json adlı bir JSON yapılandırma dosyası oluşturun. Örneğin, JSON yapılandırma dosyasında VM'ye ayrılan RAM ve ekran yapılandırması gibi seçenekleri belirtebilirsiniz. Bu dosyanın AOSP ağacında olması gerekmez.
Yapılandırmalar için JSON biçimi hakkında ayrıntılı bilgi edinmek istiyorsanız Canonical configurations (Standart yapılandırmalar) başlıklı makaleyi inceleyin.
{
"instances":
[
{
"vm": {
"memory_mb": 40960,
},
"graphics": {
"displays": [
{
"width": 7200,
"height": 12800,
"dpi": 320
}
]
}
}
]
}
Yapılandırmayı başlatmak için şu komutu çalıştırın:
cvd create --config_file=big_phone.jsonlaunch_cvd'yi (eski) çalıştırma
Belirli yapılandırma özellikleri, hiyerarşik JSON yapılandırma biçiminde kullanılamaz. Bu tür yapılandırmalar için launch_cvd işaretinin varsayılan değerlerini tek düzeyli bir JSON sözlüğünden ayarlayabilirsiniz. Tüm yapılandırma seçeneklerinin tam listesi için cf_flags_validator.cpp sayfasına bakın.
Aşağıda, JSON yapılandırma dosyası kullanarak launch_cvd işaret seçeneklerinin varsayılan değerlerinin nasıl geçersiz kılınacağı ve Cuttlefish başlatıcının özel yapılandırmayı başlatmasının nasıl sağlanacağı ile ilgili bir örnek açıklanmaktadır.
Özel değerler içeren bir JSON yapılandırma dosyası oluşturun,
device/google/cuttlefish/shared/config/config_big_phone.json,{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }Cuttlefish başlatıcının
big_phoneyapılandırmasını başlatabilmesi için aşağıdakileri yaparakdevice/google/cuttlefish/shared/config/config_big_phone.jsondosyasına erişimi olduğundan emin olun:prebuilt_etc_hostdosyasındaprebuilt_etc_hostbölümünü ekleyerek JSON yapısını derleme yapısı olarak bildirin.device/google/cuttlefish/shared/config/Android.bpprebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }Aşağıdaki kodu
device/google/cuttlefish/shared/device.mkiçinde çalıştırarak ortaya çıkan derleme yapısı bildirimini Cuttlefish başlatıcıya ekleyin.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)Bir
android_info.txtdosyası oluşturun vebig_phoneyapılandırmasınıdevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mkdosyasına bağlamak içindevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mkdosyasına aşağıdaki satırı ekleyin:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txtAşağıdaki bilgileri
device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtile doldurarak cihaz türünübig_phoneyapılandırmasıyla etiketleyin:config=big_phone