Membuat perangkat hybrid Cuttlefish

Halaman ini menjelaskan cara membuat perangkat hybrid Cuttlefish (CHD).

CHD adalah perangkat Cuttlefish virtual hybrid, yang menjalankan image sistem perangkat fisik, bukan image sistem Cuttlefish di HAL perangkat. Hal ini menawarkan keuntungan sebagai berikut:

  • Pengembangan dan pengujian awal: CHD memungkinkan pengembangan dan pengujian awal software sistem generasi berikutnya sebelum hardware fisik tersedia.

  • Skalabilitas: CHD memfasilitasi perluasan kapasitas pengembangan dan pengujian yang lebih mudah.

Membuat image CHD

Untuk membuat image CHD, ikuti langkah-langkah berikut:

  1. Buat file target untuk target vendor dan perangkat fisik menggunakan make dist. Buat file target vendor menggunakan salah satu opsi berikut:

    • Target Cuttlefish lengkap yang ada
    • Target Cuttlefish yang hanya membuat file vendor Cuttlefish. Untuk mengetahui informasi selengkapnya, lihat Membuat target vendor Cuttlefish.
  2. Gabungkan kedua file target ke dalam file target CHD dan buat image CHD dari file target CHD dengan menjalankan skrip.build_cf_hybrid_device.py Skrip ini menggabungkan kedua file target ke dalam file target CHD menggunakan merge_target_files.py dan membuat image CHD dari file target CHD menggunakan img_from_target_files.

    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>
    

Membuat target vendor Cuttlefish

Anda dapat menggunakan aosp_cf_vendor.mk untuk menentukan target aosp_cf_arm64_phone_vendor, yang dapat Anda gunakan sebagai file target vendor untuk image CHD.

Untuk membuat target khusus vendor Cuttlefish, ikuti langkah-langkah berikut:

  1. Warisi target Cuttlefish yang membuat artefak lengkap:

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. Tentukan nama target:

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. Nonaktifkan build yang tidak diperlukan dari artefak lengkap:

    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
    

Memilih lingkungan host untuk meluncurkan CHD

Untuk menyiapkan lingkungan host yang skalabel untuk meluncurkan dan mengelola CHD berbasis ARM64, pilih penyiapan berdasarkan alur kerja Anda:

  • Google Cloud C4A bare metal (direkomendasikan): Instance bare metal Google Cloud C4A, seperti c4a-standard-96-metal atau c4a-highmem-96-metal, menyediakan akselerasi hardware KVM ARM64 native yang didukung oleh prosesor Google Axion. Penyiapan ini memberikan eksekusi berperforma tinggi dan sangat skalabel untuk CHD ARM64 di cloud tanpa overhead virtualisasi bertingkat. Selain itu, Orkestrasi Cloud OmniLab ATS terintegrasi dengan c4a-metal untuk mengotomatiskan alokasi perangkat, orkestrasi pengujian, dan pengelolaan infrastruktur.

  • Penyiapan host manual atau lokal (alternatif): Jika Anda menjalankan hardware ARM lokal atau lab kustom, atau mengonfigurasi lingkungan host secara manual tanpa OmniLab ATS, lihat Menjalankan Cuttlefish di server lokal.