Ahtapot karma cihaz oluşturma

Bu sayfada, Cuttlefish hibrit cihazının (CHD) nasıl oluşturulacağı açıklanmaktadır.

CHD, cihazın HAL'lerinde Cuttlefish sistem görüntüsü yerine fiziksel bir cihazın sistem görüntüsünü çalıştıran hibrit bir sanal Cuttlefish cihazıdır. Bu durum şu avantajları sunar:

  • Erken geliştirme ve test: CHD'ler, fiziksel donanım kullanıma sunulmadan önce yeni nesil sistem yazılımının erken geliştirilmesine ve test edilmesine olanak tanır.

  • Ölçeklenebilirlik: CH'ler, geliştirme ve test kapasitesinin daha kolay genişletilmesini sağlar.

CHD görüntüsü oluşturma

CHD görüntüsü oluşturmak için aşağıdaki adımları uygulayın:

  1. make dist kullanarak satıcı hedefi ve fiziksel cihaz için hedef dosyaları oluşturun. Aşağıdaki seçeneklerden birini kullanarak satıcı hedef dosyalarını oluşturun:

    • Mevcut bir tam Cuttlefish hedefi
    • Yalnızca Cuttlefish satıcı dosyalarını oluşturan bir Cuttlefish hedefi. Daha fazla bilgi için Cuttlefish satıcı hedefi oluşturma başlıklı makaleyi inceleyin.
  2. İki hedef dosyayı bir CHD hedef dosyasında birleştirin ve build_cf_hybrid_device.py komut dosyasını çalıştırarak CHD hedef dosyasından CHD görüntüleri oluşturun. Bu komut dosyası, merge_target_files.py kullanarak iki hedef dosyayı tek bir CHD hedef dosyasında birleştirir ve img_from_target_files kullanarak CHD hedef dosyasından CHD görüntüleri oluşturur.

    python3 tools/treble/cuttlefish/build_cf_hybrid_device.py \
      --framework_target_files_zip <physical_device_target_files.zip> \
      --vendor_target_files_zip <cuttlefish_device_target_files.zip> \
      --otatools_zip <cuttlefish_otatools.zip> \
      --target chd \
      --output_dir <output_directory>
    

Cuttlefish tedarikçi hedefi oluşturma

Yalnızca satıcıya yönelik bir Cuttlefish hedefi oluşturmak için aşağıdaki adımları uygulayın:

aosp_cf_vendor.mk kullanarak aosp_cf_arm64_phone_vendor hedefi tanımlayabilirsiniz. Bu hedefi, CHD resmi için satıcı hedef dosyası olarak kullanabilirsiniz.

  1. Tam yapılar oluşturan Cuttlefish hedefini devralın.

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. Hedef adını tanımlayın.

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. Tam yapıtlar içindeki gereksiz derlemeleri devre dışı bırakın.

    PRODUCT_BUILD_SYSTEM_IMAGE := false
    PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false
    PRODUCT_BUILD_PRODUCT_IMAGE := false
    PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false
    PRODUCT_BUILD_SUPER_PARTITION := false
    TARGET_SKIP_OTA_PACKAGE := true