Компонент PackageManager
API определен в заголовочных файлах, расположенных в директории sysroot-*-kos/include/component/package_manager/
из состава KasperskyOS SDK.
Сценарий использования компонента PackageManager описан в статье "Сценарий использования компонента PackageManager".
Интерфейс package_manager_proxy.h
API определен в заголовочном файле sysroot-*-kos/include/component/package_manager/kos_ipc/package_manager_proxy.h
из состава KasperskyOS SDK.
Интерфейс содержит функцию CreatePackageManager()
для получения указателя на экземпляр интерфейса IPackageManager
, необходимого для работы с компонентом PackageManager. Через входной параметр cfg
эта функция принимает параметры конфигурации в виде структуры PackageManagerConfig
. Все поля этой структуры опциональны для заполнения.
Функции package_manager_proxy.h
Функция |
Сведения о функции |
---|---|
|
Назначение Получение указателя на экземпляр интерфейса Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс IPackageManager
API определен в заголовочном файле sysroot-*-kos/include/component/package_manager/i_package_manager.h
из состава KasperskyOS SDK.
Интерфейс IPackageManager
позволяет получить указатель на интерфейс IPackageController
. Этот интерфейс предназначен для установки KPA-пакетов в решение на базе KasperskyOS, а также получения сведений о них.
Функции i_package_manager.h
Функция |
Сведения о функции |
---|---|
|
Назначение Получение указателя на экземпляр интерфейса Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс IPackageController
API определен в заголовочном файле sysroot-*-kos/include/component/package_manager/i_package_control.h
из состава KasperskyOS SDK.
API позволяет:
- устанавливать KPA-пакет в решение на базе KasperskyOS и удалять KPA-пакет;
- получать сведения об установленном KPA-пакете: уникальный идентификатор, данные из манифеста KPA-пакета, статус KPA-пакета (установлен или удален).
Сведения о функциях API приведены в таблице ниже.
Установка KPA-пакета
Чтобы установить KPA-пакет, нужно вызвать функцию InstallPackage()
. Через входной параметр pkgInfo
эта функция принимает данные для проверки сертификатов устанавливаемого KPA-пакета в виде структуры InstallPackageInfo
. Все поля этой структуры являются опциональными для заполнения.
Если параметр signatureVerify
установлен в значение true
(проверять сертификаты устанавливаемого KPA-пакета), а имена файлов не указаны, то при установке KPA-пакета будут использованы значения по умолчанию: <имя_пакета>.kcat
для файла внешней подписи KPA-пакета и <имя_пакета>.kidx
для индексного файла KPA-пакета.
Удаление KPA-пакета
Чтобы удалить KPA-пакет, нужно вызвать функцию UninstallPackage()
.
Получение сведений об установленных KPA-пакетах
Чтобы получить уникальные идентификаторы установленных KPA-пакетов, нужно вызвать функцию ListInstalledPackages()
. Через выходной параметр pkgUIDs
функция возвращает список уникальных идентификаторов установленных пакетов.
Чтобы получить данные о манифесте KPA-пакета, нужно вызвать функцию GetManifest()
. Через выходной параметр manifest
функция возвращает указатель на экземпляр интерфейса IPackageManifest
, используя который можно получить доступ к значениям ключей манифеста KPA-пакета. Подробнее см. "Интерфейс IPackageManifest".
Уведомления о статусах KPA-пакетов в решении на базе KasperskyOS
Компонент PackageManager реализует механизм уведомлений о статусах KPA-пакетов в решении на базе KasperskyOS, позволяя отслеживать изменения в их состоянии. Для получения уведомлений нужно создать очередь уведомлений используя функцию CreateEventQueue()
.
Чтобы извлекать уведомления из этой очереди, нужно использовать функцию GetEvents()
. Через выходной параметр pkgEvent
s функция возвращает статус KPA-пакетов (с момента создания очереди) в виде структуры PackageEvent
.
Чтобы удалить очередь уведомлений, нужно вызвать функцию DestroyEventQueue()
.
Функции i_package_control.h
Функция |
Сведения о функции |
---|---|
|
Назначение Устанавливает KPA-пакет. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Удаляет KPA-пакет. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает уникальные идентификаторы установленных KPA-пакетов. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает указатель на экземпляр интерфейса Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает хеш-сумму файла компонента KPA-пакета из базы данных компонента PackageManager. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает содержимое компонента KPA-пакета. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Создает очередь уведомлений о статусах KPA-пакетов. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Удаляет очередь уведомлений о статусах KPA-пакетов. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает из очереди уведомлений статусы KPA-пакетов. Параметры
Возвращаемые значения В случае успеха возвращает |
Пример использования:
client.cpp
Интерфейс IPackageManifest
API определен в заголовочном файле sysroot-*-kos/include/component/package_manager/i_package_manifest.h
из состава KasperskyOS SDK.
API позволяет получать значения ключей манифеста KPA-пакета. Подробнее о доступных ключах манифеста KPA-пакета см. "Манифест KPA-пакета"
Сведения о функциях API приведены в таблице ниже.
Получение идентификатора программы
Чтобы получить идентификатор программы, установленной из KPA-пакета, нужно вызвать функцию GetPackageID()
.
Получение сведений о компонентах KPA-пакета
Чтобы получить сведения о компонентах KPA-пакета, нужно вызвать функцию GetApplicationsInfo()
. Через выходной параметр applications
функция возвращает сведения о компонентах KPA-пакета в виде вектора структур ApplicationInfo
.
Элемент структуры extensions
описывает объект формата JSON. ManifestType
является псевдонимом типа nlohmann:json
.
Получение конфигураций запуска программы
Чтобы получить сведения о конфигурациях запуска программы, установленной из KPA-пакета, нужно вызвать функцию GetRunConfigurationsInfo()
. Через выходной параметр runConfigurations
функция возвращает сведения о конфигурациях запуска программы в виде вектора структур RunConfigurationInfo
.
Получение сведений о программе
Чтобы получить сведения о программе, установленной из KPA-пакета, нужно вызвать функцию GetPackageInfo()
. Через выходной параметр packageInfo
функция возвращает сведения о конфигурациях запуска в виде структуры PackageInfo
.
Получение сведений об изолированном хранилище программы
Чтобы получить сведения об изолированном хранилище программы, нужно вызвать функцию GetPrivateStorageInfo()
. Через выходной параметр packageInfo
функция возвращает сведения о конфигурациях запуска в виде структуры PrivateStorage
.
Получение сведений об объектах произвольного формата
Чтобы получить сведения об объектах произвольного формата, которые добавлены разработчиком KPA-пакета (ключ extensions
из манифеста KPA-пакета), нужно вызвать функцию Get()
.
Функции i_package_manifest.h
Функция |
Сведения о функции |
---|---|
|
Назначение Получает уникальный идентификатор программы, установленной из KPA-пакета. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает сведения о компонентах KPA-пакета. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает сведения о конфигурациях запуска программы, установленной из KPA-пакета. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает сведения о программе, установленной из KPA-пакета. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает сведения об изолированно хранилище программы. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Получает сведения об объектах произвольного формата, который добавлены в манифест разработчиком KPA-пакета. Параметры Нет. Возвращаемые значения Возвращает указатель на объект типа |
Пример использования:
client.cpp