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

  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 build_cf_hybrid_device.py script. 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 de fournisseur Cuttlefish

Pour créer une cible Cuttlefish réservée au fournisseur, procédez comme suit :

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.

  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