В Kaspersky IoT Secure Gateway 1000 SDK вы можете собрать KPA-пакет программы, который в дальнейшем сможете установить на устройство или на QEMU.
Для сборки KPA-пакета для установки в Kaspersky IoT Secure Gateway 1000 требуется выполнить ряд действий:
CMakeLists.txt программы.manifest.json.in, который используется при сборке программы.После выполнения требований, вы можете использовать команду kosctl build в директории проекта.
Для упрощения процедуры создания проекта программы и выполнения требований, вы можете использовать один из шаблонов инструмента kosctl для создания проекта, например:
kosctl new myhello --template helloworld -- app_id="myhello" app_name="My Hello World"
CMake команды для сборки KPA-пакета
Для сборки KPA-пакета требуется добавить следующие команды в файл CMakeLists.txt программы:
include (kisg/generate_application_kpa) – подключает зависимость для сборки KPA-пакета.include (kisg/strip_binary_macro) – подключает зависимость для удаления информации об отладке и таблицы символов. Не используйте для сборки программ с целью отладки.strip_binary_macro([имя_программы]) – функция для удаления информации об отладке и таблицы символов. Игнорируется при выполнении сборки с помощью команды kosctl build -b type=debug.generate_application_kpa() – функция для сборки KPA-пакета. Принимает следующие параметры:APP_BINARY – имя бинарного файла программы.APP_BUILD_NUMBER – номер сборки программы.APP_VERSION – версия программы.APP_ID – уникальный идентификатор программы.APP_NAME – отображаемое имя программы.RESOURCES – путь до файла манифеста.BINARY_DIR – путь до генерируемых бинарных файлов.SHARED_LIB_NAMES – имена динамических библиотек, которые требуется добавить в KPA-пакет. Этот параметр доступен только для программ с классом безопасности (eiid) vpn.Client. Указанные библиотеки предварительно требуется добавить в проект с помощью CMake-функции target_link_libraries(), а также добавить в список объектов components манифеста программы.SHARED_LIB_PATH – путь до динамических библиотек, указанных в параметре SHARED_LIB_NAMES.UI_RESOURCE_NAME – путь до ресурсов пользовательского интерфейса. Указывается относительно параметра RESOURCES. Необязательный параметр. Если параметр не указан, то программа будет собираться без пользовательского интерфейса.Манифест программы
Манифест программы представляет собой файл формата JSON и содержит информацию, которая необходима при установке и использовании программы. Например, файл манифеста содержит следующие сведения: