MDM API

MDM API

This project shows the use of the MDM API, including locking the device and locking several separate functions of the device, as well as getting the location of the device.

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.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

Снимки экранов

screenshots

This document in English

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.