Auf dieser Seite wird beschrieben, wie Sie ein Cuttlefish-Hybridgerät (CHD) erstellen.
Ein CHD ist ein hybrides virtuelles Cuttlefish-Gerät, auf dem das Systemimage eines physischen Geräts anstelle eines Cuttlefish-Systemimage auf den HALs des Geräts ausgeführt wird. Das bietet folgende Vorteile:
Frühe Entwicklung und Tests:Mit CHDs können Sie Systemsoftware der nächsten Generation frühzeitig entwickeln und testen, bevor die physische Hardware verfügbar ist.
Skalierbarkeit:CHDs erleichtern die Erweiterung der Entwicklungs- und Testkapazität.
CHD-Image erstellen
So erstellen Sie ein CHD-Image:
Generieren Sie die Zieldateien für das Anbieterziel und das physische Gerät mit
make dist. Generieren Sie die Zieldateien des Anbieters mit einer der folgenden Optionen:- Ein vorhandenes vollständiges Cuttlefish-Ziel
- Ein Cuttlefish-Ziel, das nur Cuttlefish-Anbieterdateien erstellt. Weitere Informationen finden Sie unter Cuttlefish-Anbieterziel erstellen.
Kombinieren Sie die beiden Zieldateien in einer CHD-Zieldatei und generieren Sie die CHD-Bilder aus der CHD-Zieldatei, indem Sie das Skript
build_cf_hybrid_device.pyausführen. In diesem Skript werden die beiden Zieldateien mitmerge_target_files.pyin einer CHD-Zieldatei zusammengeführt und die CHD-Images werden mitimg_from_target_filesaus der CHD-Zieldatei generiert.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-Anbieterziel erstellen
Mit aosp_cf_vendor.mk können Sie das aosp_cf_arm64_phone_vendor-Ziel definieren, das Sie als Zieldatei für ein CHD-Bild verwenden können.
So erstellen Sie ein reines Cuttlefish-Anbieterziel:
Übernehmen Sie das Cuttlefish-Ziel, mit dem vollständige Artefakte erstellt werden:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Zielname definieren:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorDeaktivieren Sie unnötige Builds aus den vollständigen Artefakten:
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