Сценарий использования компонента PackageManager
Компонент PackageManager предоставляет API для управления KPA-пакетами в решениях, построенных на базе KasperskyOS.
API компонента PackageManager представляет собой надстройку над IPC, которая позволяет упростить процесс разработки программ. PackageManager является отдельной системной программой, доступ к которой осуществляется через IPC, но при этом разработчикам предоставляется клиентская библиотека, которая скрывает необходимость использования IPC-вызовов напрямую.
Программный интерфейс компонента PackageManager описан в статье "Компонент PackageManager".
Добавление компонента PackageManager в решение на базе KasperskyOS
Здесь и далее клиентом называется программа, использующая API компонента PackageManager для управления KPA-пакетами.
Системная программа ExecutionManager поставляется в составе загрузочного образа KasperskyOS и запускается автоматически при запуске решения.
Типовой сценарий использования компонента PackageManager включает следующие шаги:
- Компоновка исполняемого файла клиента с клиентской прокси-библиотекой PackageManager, для чего необходимо в файле
CMakeLists.txtдля сборки клиента добавить следующую команду:target_link_libraries (<имя CMake-цели для сборки клиента> package_manager::package_manager_proxy)
- Добавление разрешений для необходимых событий в описание политики безопасности решения:
- Чтобы программа PackageManager могла управлять KPA-пакетами, политика безопасности решения должна разрешать следующие взаимодействия для класса процессов
package_manager.PkgMgrEntity:- Доступ ко всем службам программы
VFS. - Доступ к службам ядра
Sync,VMM,Thread,HAL,Handle,FS,Notice,CMиProfiler(их описания находятся в директорииsysroot-*-kos/include/kl/coreиз состава SDK).
- Доступ ко всем службам программы
- Чтобы клиент мог обращаться к программе PackageManager, политика безопасности решения должна разрешать следующие взаимодействия для класса клиентского процесса:
- Доступ к соответствующим службам программы PackageManager (их описания находятся в директории
sysroot-*-kos/include/kl/package_managerиз состава SDK).
- Доступ к соответствующим службам программы PackageManager (их описания находятся в директории
- Чтобы программа PackageManager могла управлять KPA-пакетами, политика безопасности решения должна разрешать следующие взаимодействия для класса процессов
- Использование API программы PackageManager в коде клиента.
Для этого необходимо использовать заголовочный файл
component/package_manager/kos_ipc/package_manager_proxy.h. Подробнее см. "Компонент PackageManager".