Sotong: Buat perangkat khusus

Halaman ini menjelaskan cara membuat perangkat Sotong yang disesuaikan. Cuttlefish menyertakan jenis perangkat yang telah ditentukan sebelumnya dalam berbagai faktor bentuk seperti yang tercantum di AndroidProducts.mk . Selain opsi penyesuaian perangkat umum yang dijelaskan dalam Menambahkan perangkat baru , Anda dapat membuat penyesuaian khusus Sotong seperti prasetel konfigurasi papan perangkat virtual (vsoc_x88_64, vsoc_arm64, vsoc_riscv64), bawaan kernel, bawaan bootloader, properti vendor, konfigurasi sistem, bersarang dukungan virtualisasi, dan opsi tampilan. Untuk daftar lengkap parameter waktu pembuatan yang dapat disesuaikan, lihat device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk .

Langkah-langkah berikut menjelaskan cara membuat perangkat big_phone fiksi x86-64 yang ukurannya sepuluh kali lipat dari perangkat Cuttlefish biasa.

Mewarisi dari target yang ada

Untuk mewarisi dari target yang ada:

  • Buat direktori device/google/cuttlefish/vsoc_x86_64/ big_phone .
  • Buat file aosp_cf.mk di direktori itu.
$(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)

Tambahkan target makan siang

Masukkan target lunch ke dalam file device/google/cuttlefish/AndroidProducts.mk :

PRODUCT_MAKEFILES := \
  ...
  big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
  ...
lunch big_phone

Tentukan konfigurasi JSON

Untuk meluncurkan perangkat Cuttlefish, buat file konfigurasi JSON bernama big_phone .json dengan struktur hierarki yang mewakili properti perangkat. Misalnya, dalam file konfigurasi JSON, Anda dapat menentukan opsi seperti RAM yang dialokasikan untuk VM dan konfigurasi tampilan. File ini tidak harus berada di pohon AOSP. Untuk detail tentang format JSON untuk konfigurasi, lihat Konfigurasi kanonik .

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

Untuk meluncurkan konfigurasi, jalankan:

cvd start --config_file=big_phone.json

Jalankan launch_cvd (warisan)

Properti konfigurasi tertentu tidak tersedia dalam format konfigurasi JSON hierarki. Untuk konfigurasi seperti itu, Anda dapat mengatur nilai default flag launch_cvd dari kamus JSON tingkat tunggal. Untuk daftar lengkap semua opsi konfigurasi, lihat cf_flags_validator.cpp .

Berikut ini penjelasan contoh cara mengganti nilai default opsi tanda launch_cvd menggunakan file konfigurasi JSON dan mengaktifkan peluncur Cuttlefish untuk meluncurkan konfigurasi khusus.

  1. Buat file konfigurasi JSON, device/google/cuttlefish/shared/config/config_ big_phone .json , dengan nilai khusus.

    {
      "x_res": 7200,
      "y_res": 12800,
      "dpi": 320,
      "memory_mb": 40960,
      "ddr_mem_mb": 49150,
    }
    
  2. Agar peluncur Sotong dapat meluncurkan konfigurasi big_phone , pastikan ia memiliki akses ke file device/google/cuttlefish/shared/config/config_ big_phone .json dengan melakukan hal berikut:

    1. Deklarasikan artefak JSON sebagai artefak build dengan menambahkan stanza prebuilt_etc_host di file device/google/cuttlefish/shared/config/Android.bp .

      prebuilt_etc_host {
          name: "cvd_config_big_phone.json",
          src: "config_big_phone.json",
          sub_dir: "cvd_config",
      }
      
    2. Tambahkan deklarasi artefak build yang dihasilkan ke peluncur Cuttlefish dengan menjalankan perintah berikut di device/google/cuttlefish/shared/device.mk .

      $(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
      
    3. Buat file android_info.txt dan ikat konfigurasi big_phone ke file tersebut dengan menambahkan baris berikut ke device/google/cuttlefish/vsoc_x86_64/ big_phone /aosp_cf.mk :

      TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
      
    4. Beri label jenis perangkat dengan konfigurasi big_phone dengan mengisi device/google/cuttlefish/vsoc_x86_64/ big_phone /android-info.txt dengan yang berikut:

      config=big_phone