Créer un appareil hybride Cuttlefish

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 présente les avantages suivants :

  • Développement et tests précoces : les CHD permettent le développement et les tests précoces des 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 :

  1. 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 :

  2. 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 script build_cf_hybrid_device.py. Ce script combine les deux fichiers cibles dans un fichier cible CHD à l'aide de merge_target_files.py et génère les images CHD à partir du fichier cible CHD à l'aide de 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>
    

Créer une cible 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 aux fournisseurs, procédez comme suit :

  1. Héritez de la cible Cuttlefish qui crée des artefacts complets :

    $(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)
    
  2. Définissez le nom de la cible :

    PRODUCT_NAME := aosp_cf_arm64_phone_vendor
    
  3. Dé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