На этой странице описано, как создать гибридное устройство «Каракатица» (ГКУ).
CHD — это гибридное виртуальное устройство Cuttlefish, которое запускает образ системы физического устройства вместо образа системы Cuttlefish на HAL-модулях устройства. Это дает следующие преимущества:
Ранняя разработка и тестирование: CHD-модули позволяют проводить раннюю разработку и тестирование программного обеспечения систем следующего поколения до того, как станет доступно физическое оборудование.
Масштабируемость: CHD-системы упрощают расширение возможностей разработки и тестирования.
Создать образ CHD
Для создания изображения CHD выполните следующие шаги:
Создайте целевые файлы для целевого устройства поставщика и физического устройства с помощью
make dist. Для создания целевых файлов поставщика используйте один из следующих вариантов:- Существующая цель "Кальмар" в полном объеме
- Цель Cuttlefish, которая собирает только файлы поставщика Cuttlefish. Для получения дополнительной информации см. раздел «Создание цели поставщика Cuttlefish» .
Объедините два целевых файла в один целевой файл CHD и сгенерируйте изображения CHD из этого целевого файла, запустив скрипт
build_cf_hybrid_device.py. Этот скрипт объединяет два целевых файла в один целевой файл CHD с помощьюmerge_target_files.pyи генерирует изображения CHD из этого целевого файла с помощью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>
Создать целевой объект поставщика каракатиц
Для создания целевого объекта Cuttlefish, предназначенного только для конкретного поставщика, выполните следующие шаги:
Вы можете использовать файл aosp_cf_vendor.mk для определения целевого объекта aosp_cf_arm64_phone_vendor , который можно использовать в качестве файла целевого объекта поставщика для образа CHD.
Унаследуйте цель "Каракатица", которая позволяет создавать полноценные артефакты.
$(call inherit-product, device/google/cuttlefish/vsoc_arm64/phone/aosp_cf.mk)Укажите имя цели.
PRODUCT_NAME := aosp_cf_arm64_phone_vendorОтключите ненужные сборки из полных артефактов.
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