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_phone
dizin oluşturun.- Bu dizinde bir
aosp_cf.mk
dosyası 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_phone
JSON 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.json
launch_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_phone
yapılandırmasını başlatabilmesi için aşağıdakileri yaparakdevice/google/cuttlefish/shared/config/config_big_phone.json
dosyasına erişimi olduğundan emin olun:prebuilt_etc_host
dosyasındaprebuilt_etc_host
bölümünü ekleyerek JSON yapısını derleme yapısı olarak bildirin.device/google/cuttlefish/shared/config/Android.bp
prebuilt_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.mk
iç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.txt
dosyası oluşturun vebig_phone
yapılandırmasınıdevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk
dosyasına bağlamak içindevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk
dosyasına aşağıdaki satırı ekleyin:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
Aşağıdaki bilgileri
device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
ile doldurarak cihaz türünübig_phone
yapılandırmasıyla etiketleyin:config=big_phone