Mürekkepbalığı: Özel bir cihaz oluşturun

Bu sayfada özelleştirilmiş bir Mürekkep Balığı cihazının nasıl oluşturulacağı açıklanmaktadır. Mürekkepbalığı, AndroidProducts.mk 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, sanal cihaz kartı yapılandırma ön ayarları (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), önceden oluşturulmuş çekirdek, önyükleyici önceden oluşturulmuş, satıcı özellikleri, sistem yapılandırmaları, iç içe geçmiş gibi Cuttlefish'e özgü özelleştirmeler yapabilirsiniz. sanallaştırma desteği ve görüntüleme seçenekleri. Özelleştirilebilecek derleme süresi parametrelerinin tam listesi için bkz device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk .

Aşağıdaki adımlarda sıradan bir Mürekkepbalığı aygıtının on katı büyüklüğünde kurgusal bir x86-64 big_phone aygıtı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 dizini 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 ekleyin

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

Mürekkepbalığı aygıtını başlatmak için, aygıt özelliklerini temsil eden hiyerarşik yapıya sahip big_phone .json adlı bir JSON yapılandırma dosyası oluşturun. Örneğin JSON yapılandırma dosyasında VM için ayrılan RAM ve ekran yapılandırması gibi seçenekleri belirtebilirsiniz. Bu dosyanın AOSP ağacında olması gerekmez. Yapılandırmalara ilişkin JSON biçimiyle ilgili ayrıntılar için bkz. Kanonik yapılandırmalar .

{
  "instances":
      [
        {
          "vm": {
            "memory_mb": 40960,
          },
          "graphics": {
            "displays": [
              {
                "width": 7200,
                "height": 12800,
                "dpi": 320
              }
            ]
          }
        }
      ]
}

Yapılandırmayı başlatmak için şunu çalıştırın:

cvd start --config_file=big_phone.json

launch_cvd'yi çalıştırın (eski)

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 bayrağının varsayılan değerlerini tek düzeyli bir JSON sözlüğünden ayarlayabilirsiniz. Tüm yapılandırma seçeneklerinin tam listesi için bkz. cf_flags_validator.cpp .

Aşağıda, bir JSON yapılandırma dosyası kullanılarak launch_cvd bayrak seçeneklerinin varsayılan değerlerinin nasıl geçersiz kılınacağına ve Mürekkepbalığı başlatıcısının özel yapılandırmayı başlatmasını nasıl etkinleştireceğine ilişkin bir örnek açıklanmaktadır.

  1. Özel değerlere sahip 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,
    }
    
  2. Mürekkepbalığı 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 kıtasını ekleyerek JSON yapıtını bir yapı yapıtı olarak bildirin.

      prebuilt_etc_host {
          name: "cvd_config_big_phone.json",
          src: "config_big_phone.json",
          sub_dir: "cvd_config",
      }
      
    2. Sonuçta elde edilen yapı yapıt bildirimini, aşağıdakileri device/google/cuttlefish/shared/device.mk dosyasında çalıştırarak Mürekkepbalığı 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 aşağıdakilerle doldurarak cihaz türünü big_phone yapılandırmasıyla etiketleyin:

      config=big_phone