Mürekkep balığı: Özel bir cihaz oluşturma

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.

  1. Ö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,
    }
    
  2. Cuttlefish başlatıcısının big_phone yapılandırmasını başlatması için aşağıdakileri yaparak device/google/cuttlefish/shared/config/config_big_phone.json dosyasına erişebildiğinden emin olun:

    1. device/google/cuttlefish/shared/config/Android.bp dosyasına prebuilt_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",
      }
      
    2. 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)
      
    3. 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 ekleyerek big_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
      
    4. 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