Mdm Api Example
Приложение для демонстрации работы с MDM API под ОС Аврора.
Условия использования и участия
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.
- Подпроект ru.auroraos.MdmApiExample содержит исходный код UI-приложения.
- Файл ru.auroraos.MdmApiExample.pro описывает структуру подпроекта ru.auroraos.MdmApiExample для системы сборки qmake.
- Каталог icons содержит значки приложения для разных разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог cover содержит реализации обложек приложения.
- Каталог icons содержит дополнительные значки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Каталог components содержит общие компоненты QML, используемые на разных страницах.
- Файл MdmApiExample.qml предоставляет реализацию окна приложения.
- Каталог src содержит исходный код на C++.
- Файл main.cpp является точкой входа в приложение.
- Файлы base-handler.h и base-handler.cpp представляют собой исходный код класса BaseHandler — прокси-класса для использования DBus-сервиса ru.auroraos.MdmApiExample с различными DBus-путями.
- Файлы вида {modulename}-handler.h и {modulename}-handler.cpp представляют собой исходный код классов, реализующих BaseHandler и содержащих работу с определенным модулем Mdm Api и соответствующим путем DBus.
- Файлы gui-modules.h и gui-modules.cpp представляют собой исходный код для регистрации различных классов обработчиков для использования на разных страницах QML.
- translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.MdmApiExample.desktop определяет отображение и параметры запуска приложения.
- Подпроект ru.auroraos.MdmApiExampleDaemon содержит исходный код MDM-службы, использующей MDM API.
- Файл ru.auroraos.MdmApiExampleDaemon.pro описывает структуру подпроекта ru.auroraos.MdmApiExampleDaemon для системы сборки qmake.
- Каталог src содержит исходный код на C++.
- Файл main.cpp является точкой входа в MDM-службу.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.MdmApiExample.spec используется инструментом rpmbuild.
Модули ru.auroraos.MdmApiExampleDaemon и ru.auroraos.MdmApiExample:
| Имя модуля | Описание |
|---|---|
| Applications | Установка и удаление приложений |
| DeviceControl | Выключение и перезагрузка устройства |
| Files | Загрузить файл через сеть |
| Location | Настройки геолокации и получение информации о текущем местоположении |
| Networks | Управление подключением wifi |
| Policy | Работа с политиками безопасности на устройстве |
| Report | Создание зашифрованного системного отчёта |
| SSU | Управление репозиториями пакетов |
| SysInfo | Получение информации о системе |
| SystemEvent | Получение событий SDJD |
| SystemUpdate | Загрузка, установка и планирование обновлений системы |
| VPN | Управление подключением VPN |
Совместимость
Проект совместим с актуальными версиями ОС Аврора.
Схема архитектуры приложения
┌──────────────────┐
│ Aurora OS │
┌───────────────────┐ └────────▲─────────┘
│ RPM-package │ │
User ├───────────────────┴────────────────────────┼──────────────────────┐
│ │MDM API │
│ @ │ │ ┌────────────────┐ ┌──────────┴───────────┐ │
└─┬─┘ │ │ GUI │ DBus │ MdmApiExample │ │
│ ◄────┼───►│ MdmApiExample │◄─────────►│ systemd-service │ │
┌─┴─┐ │ └────────────────┘ └──────────▲───────────┘ │
│ │ │ │ │
└────────────────────────────────────────────┼──────────────────────┘
│
┌─────▼─────┐
│ TCP │
└─────▲─────┘
│
│
┌──────▼───────┐
│ MDM Server │
└──────────────┘
Заметки
Для корректной работы приложение должно иметь подпись MDM разработчика и его необходимо устанавливать через APM (Aurora package manager).
После установки средствами ОС будет создан и запущен systemd-сервис rm_task.ru.auroraos.MdmApiExample.task_MdmClient.service
на основании данных из секции [X-Task MdmClient] в файле ru.auroraos.MdmApiExample.desktop.
Установка и удаление ru.auroraos.MdmApiExample через d-bus api APM:
gdbus call -y -d ru.omp.APM -o /ru/omp/APM -m ru.omp.APM.Install <full-path-to>/ru.auroraos.MdmApiExample-*.rpm {}
gdbus call -y -d ru.omp.APM -o /ru/omp/APM -m ru.omp.APM.Remove ru.auroraos.MdmApiExample {}
Просмотр статуса systemd-сервиса mdm:
systemctl status rm_task.ru.auroraos.MdmApiExample.task_MdmClient.service
Снимки экранов
