Bu sayfada, özelleştirilmiş bir Mürekkep balığı cihazının nasıl oluşturulacağı açıklanmaktadır. Mürekkep balığı, AndroidProducts.mk
içinde listelendiği gibi farklı form faktörlerinde önceden tanımlanmış cihaz türleri içerir. Yeni cihaz ekleme bölümünde açıklanan genel cihaz özelleştirme seçeneklerine ek olarak, sanal cihaz kartı yapılandırma hazır ayarları (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), önceden derlenmiş çekirdekler, önyükleyici önceden derlenmişler, satıcı özellikleri, sistem yapılandırmaları, iç içe sanallaştırma, sanallaştırma ve sanallaştırma gibi Cuttlefish'e özel özelleştirmeler yapabilirsiniz. Özelleştirilebilen derleme süresi 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 sıradan bir Kesme balığı cihazının on katı boyutunda hayali bir x86-64
big_phone
cihazının nasıl oluşturulacağı açıklanmaktadır.
Mevcut bir hedeften devral
Mevcut bir hedeften devralmak için:
- Bir
device/google/cuttlefish/vsoc_x86_64/big_phone
dizin oluşturun. - 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 ekle
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ımlayın
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 sanal makine için ayrılan RAM ve görüntü yapılandırması gibi seçenekleri belirleyebilirsiniz. Bu dosyanın AOSP ağacında olması gerekmez.
Yapılandırmaların JSON biçimiyle ilgili ayrıntılar için Standart yapılandırmalar bölümüne bakın.
{
"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 (eski) işlevini ç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 tek düzeyli bir JSON sözlüğünden launch_cvd
işareti varsayılan değerlerini ayarlayabilirsiniz. Tüm yapılandırma seçeneklerinin tam listesi için cf_flags_validator.cpp
adresini ziyaret edin.
Aşağıda, JSON yapılandırma dosyası kullanılarak launch_cvd
işaret seçeneklerinin varsayılan değerlerinin nasıl geçersiz kılınacağı ve Cuttlefish başlatıcısının özel yapılandırmayı başlatması için nasıl etkinleştirileceği açıklanmaktadır.
Özel değerlerle bir JSON yapılandırma dosyası (
device/google/cuttlefish/shared/config/config_big_phone.json
) oluşturun.{ "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
Cuttlefish başlatıcısının
big_phone
yapılandırmasını başlatması için aşağıdakileri yaparakdevice/google/cuttlefish/shared/config/config_big_phone.json
dosyasına erişebildiğinden emin olun:device/google/cuttlefish/shared/config/Android.bp
dosyasınaprebuilt_etc_host
dizesini ekleyerek JSON yapısını bir derleme yapı olarak tanımlayın.prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
Elde edilen derleme yapı bildirimini
device/google/cuttlefish/shared/device.mk
'te aşağıdakileri çalıştırarak Cuttlefish başlatıcısına ekleyin.$(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
Bir
android_info.txt
dosyası oluşturun ve aşağıdaki satırıdevice/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mk
dosyasına ekleyerekbig_phone
yapılandırmasını dosyaya bağlayın:TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txt
değerini aşağıdakilerle doldurarak cihaz türünübig_phone
yapılandırmasıyla etiketleyin:config=big_phone