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 :
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
- Cible Cuttlefish qui ne compile que les fichiers du fournisseur Cuttlefish. Pour en savoir plus, consultez 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 script
build_cf_hybrid_device.py. 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 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 :
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