En esta página, se describe cómo crear un dispositivo híbrido Cuttlefish (CHD).
Un CHD es un dispositivo Cuttlefish virtual híbrido que ejecuta la imagen del sistema de un dispositivo físico en lugar de una imagen del sistema de Cuttlefish en los HAL del dispositivo. Esto ofrece las siguientes ventajas:
Desarrollo y pruebas anticipados: Los CHD permiten el desarrollo y las pruebas anticipados del software del sistema de próxima generación antes de que esté disponible el hardware físico.
Escalabilidad: Los CHD facilitan la expansión de la capacidad de desarrollo y pruebas.
Cómo crear una imagen CHD
Para crear una imagen CHD, sigue estos pasos:
Genera los archivos de destino para el destino del proveedor y el dispositivo físico con
make dist. Genera los archivos de destino del proveedor con una de las siguientes opciones:- Un destino de Cuttlefish completo existente
- Es un destino de Cuttlefish que solo compila archivos de proveedores de Cuttlefish. Para obtener más información, consulta Cómo crear un destino del proveedor de Cuttlefish.
Combina los dos archivos de destino en un archivo de destino CHD y genera las imágenes CHD a partir del archivo de destino CHD ejecutando la secuencia de comandos
build_cf_hybrid_device.py. Esta secuencia de comandos combina los dos archivos de destino en un archivo de destino CHD conmerge_target_files.pyy genera las imágenes CHD a partir del archivo de destino CHD conimg_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>
Crea un destino de proveedor de Cuttlefish
Puedes usar aosp_cf_vendor.mk para definir el destino aosp_cf_arm64_phone_vendor, que puedes usar como el archivo de destino del proveedor para una imagen CHD.
Para crear un destino solo para el proveedor de Cuttlefish, sigue estos pasos:
Hereda el destino de Cuttlefish que compila artefactos completos:
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Define el nombre del destino:
PRODUCT_NAME := aosp_cf_arm64_phone_vendorInhabilita las compilaciones innecesarias de los artefactos completos:
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