Auf dieser Seite wird beschrieben, wie Sie ein benutzerdefiniertes Cuttlefish-Gerät erstellen. Cuttlefish umfasst vordefinierte Gerätetypen in verschiedenen Formfaktoren, wie in AndroidProducts.mk aufgeführt. Zusätzlich zu den allgemeinen Optionen zur Geräteanpassung, die unter Neues Gerät hinzufügen beschrieben werden, können Sie Cuttlefish-spezifische Anpassungen vornehmen, z. B. Voreinstellungen für die Konfiguration des virtuellen Geräteboards (vsoc_x86_64, vsoc_arm64, vsoc_riscv64), Kernel-Prebuilts, Bootloader-Prebuilts, Anbietereigenschaften, Systemkonfigurationen, Unterstützung für verschachtelte Virtualisierung und Anzeigeoptionen. Eine vollständige Liste der anpassbaren Build-Zeit-Parameter finden Sie unter device/google/cuttlefish/vsoc_x86_64/phone/aosp_cf.mk.
In den folgenden Schritten wird beschrieben, wie Sie ein fiktives x86-64-big_phone-Gerät erstellen, das zehnmal so groß ist wie ein normales Cuttlefish-Gerät.
Von einem vorhandenen Ziel übernehmen
So übernehmen Sie Einstellungen von einem vorhandenen Ziel:
- Erstellen Sie ein device/google/cuttlefish/vsoc_x86_64/big_phone-Verzeichnis.
- Erstellen Sie in diesem Verzeichnis eine Datei aosp_cf.mk.
$(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)
Mittagsziel hinzufügen
Fügen Sie das Ziel lunch in die Datei device/google/cuttlefish/AndroidProducts.mk ein:
PRODUCT_MAKEFILES := \
  ...
  big_phone:$(LOCAL_DIR)/vsoc_x86_64/big_phone/aosp_cf.mk
  ...
lunch big_phoneJSON-Konfiguration definieren
Erstellen Sie zum Starten des Cuttlefish-Geräts eine JSON-Konfigurationsdatei mit dem Namen big_phone.json mit einer hierarchischen Struktur, die die Geräteeigenschaften darstellt. In der JSON-Konfigurationsdatei können Sie beispielsweise Optionen wie den für die VM zugewiesenen RAM und die Displaykonfiguration angeben. Diese Datei muss sich nicht im AOSP-Baum befinden.
Weitere Informationen zum JSON-Format für Konfigurationen finden Sie unter Kanonische Konfigurationen.
{
  "instances":
      [
        {
          "vm": {
            "memory_mb": 40960,
          },
          "graphics": {
            "displays": [
              {
                "width": 7200,
                "height": 12800,
                "dpi": 320
              }
            ]
          }
        }
      ]
}
So starten Sie die Konfiguration:
cvd create --config_file=big_phone.jsonlaunch_cvd ausführen (alte Version)
Bestimmte Konfigurationseigenschaften sind im hierarchischen JSON-Konfigurationsformat nicht verfügbar. Für solche Konfigurationen können Sie launch_cvd-Flag-Standardwerte aus einem JSON-Wörterbuch auf einer Ebene festlegen. Eine vollständige Liste aller Konfigurationsoptionen finden Sie unter cf_flags_validator.cpp.
Im Folgenden wird ein Beispiel dafür beschrieben, wie Sie die Standardwerte der launch_cvd-Flag-Optionen mit einer JSON-Konfigurationsdatei überschreiben und den Cuttlefish-Launcher so konfigurieren, dass er die benutzerdefinierte Konfiguration startet.
- Erstellen Sie eine JSON-Konfigurationsdatei, - device/google/cuttlefish/shared/config/config_big_phone.json, mit benutzerdefinierten Werten.- { "x_res": 7200, "y_res": 12800, "dpi": 320, "memory_mb": 40960, "ddr_mem_mb": 49150, }
- Damit der Cuttlefish-Launcher die - big_phone-Konfiguration starten kann, muss er Zugriff auf die Datei- device/google/cuttlefish/shared/config/config_big_phone.jsonhaben. Gehen Sie dazu so vor:- Deklarieren Sie das JSON-Artefakt als Build-Artefakt, indem Sie den - prebuilt_etc_host-Abschnitt in der Datei- device/google/cuttlefish/shared/config/Android.bphinzufügen.- prebuilt_etc_host { name: "cvd_config_big_phone.json", src: "config_big_phone.json", sub_dir: "cvd_config", }
- Fügen Sie die resultierende Build-Artefaktdeklaration in den Cuttlefish-Launcher ein, indem Sie Folgendes in - device/google/cuttlefish/shared/device.mkausführen.- $(call soong_config_append,cvd,launch_configs,cvd_config_big_phone)
- Erstellen Sie eine - android_info.txt-Datei und verknüpfen Sie die- big_phone-Konfiguration mit der Datei, indem Sie- device/google/cuttlefish/vsoc_x86_64/big_phone/aosp_cf.mkdie folgende Zeile hinzufügen:- TARGET_BOARD_INFO_FILE := device/google/cuttlefish/vsoc_x86_64/<var>big_phone</var>/android-info.txt
- Weisen Sie dem Gerätetyp mit der - big_phone-Konfiguration ein Label zu, indem Sie- device/google/cuttlefish/vsoc_x86_64/big_phone/android-info.txtmit Folgendem füllen:- config=big_phone