Cette page explique comment créer un appareil hybride Cuttlefish (CHD).
Un CHD est un appareil Cuttlefish virtuel hybride qui exécute l'image système d'un appareil physique au lieu d'une image système Cuttlefish sur les HAL de l'appareil. Cela offre les avantages suivants :
Développement et tests précoces : les CHD permettent de développer et de tester en amont les logiciels système de nouvelle génération avant que le matériel physique ne soit disponible.
Évolutivité : les CHD facilitent l'expansion de la capacité de développement et de test.
Créer une image CHD
Pour créer une image CHD, procédez comme suit :
Générez les fichiers cibles pour la cible du fournisseur et l'appareil physique à l'aide de
make dist. Générez les fichiers cibles du fournisseur à l'aide de l'une des options suivantes :- Une cible Cuttlefish complète existante
- Une cible Cuttlefish qui ne crée que des fichiers de fournisseur Cuttlefish. Pour en savoir plus, consultez la section Créer une cible de fournisseur Cuttlefish.
Combinez les deux fichiers cibles dans un fichier cible CHD et générez les images CHD à partir du fichier cible CHD en exécutant le
build_cf_hybrid_device.pyscript. Ce script combine les deux fichiers cibles dans un fichier cible CHD à l'aide demerge_target_files.pyet génère les images CHD à partir du fichier cible CHD à l'aide deimg_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>
Créer une cible de fournisseur Cuttlefish
Vous pouvez utiliser aosp_cf_vendor.mk pour définir la cible
aosp_cf_arm64_phone_vendor, que vous pouvez utiliser comme fichier cible du fournisseur
pour une image CHD.
Pour créer une cible Cuttlefish réservée au fournisseur, procédez comme suit :
Héritez de la cible Cuttlefish qui crée des artefacts complets :
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Définissez le nom de la cible :
PRODUCT_NAME := aosp_cf_arm64_phone_vendorDésactivez les builds inutiles à partir des artefacts complets :
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
Choisir un environnement hôte pour lancer un CHD
Pour configurer un environnement hôte évolutif permettant de lancer et de gérer des CHD basés sur ARM64, choisissez une configuration en fonction de votre workflow :
Bare Metal Google Cloud C4A (recommandé) les instances Bare Metal Google Cloud C4A, telles que
c4a-standard-96-metalouc4a-highmem-96-metal, fournissent une accélération matérielle KVM ARM64 native alimentée par des processeurs Google Axion. Cette configuration offre une exécution hautement performante et évolutive pour les CHD ARM64 dans le cloud sans frais de virtualisation imbriquée. De plus, l'orchestration cloud OmniLab ATS s'intègre àc4a-metalpour automatiser l'allocation des appareils, l'orchestration des tests et la gestion de l'infrastructure.Configuration manuelle de l'hôte ou sur site (alternative) : si vous exécutez du matériel ARM local ou de laboratoire personnalisé, ou si vous configurez manuellement un environnement hôte sans OmniLab ATS, consultez Exécuter Cuttlefish sur un serveur sur site.