Документация
ОС Аврора 5.0.1

Бесшовная настройка обновления программного обеспечения

Регистрацией и настройками SSU можно управлять с помощью API-интерфейсов Ssu и SsuProxy. Объект Ssu можно использовать для запроса данных из MDM, но он не будет иметь необходимых разрешений для изменения данных SSU. Для этого следует использовать SsuProxy, который перенаправляет запросы через D-Bus демону ssud, который разрешает вызовы от пользователей root и sailfish-mdm. Эти вызовы являются асинхронными и возвращают объекты QDBusPendingReply.

Эти API-интерфейсы можно импортировать в проект с помощью файла ssu pkgconfig. Например, в проекте, управляемом qmake:

 CONFIG += link_pkgconfig
 PKGCONFIG += ssucommon

Можно создать объект SsuProxy следующим образом:

 ssuProxy = new SsuProxy();

После использования его следует закрыть:

 ssuProxy->quit();

Команду утилиты 'ssu' можно использовать для большинства этих взаимодействий. Дополнительную информацию можно получить в документации о ssu или использовании команд.

Регистрация

Следующие методы имеют дело с регистрацией устройства в домене SSU:

  • registerDevice(string username, string password) — регистрирует устройство. Используемый домен должен быть указан в параметре username как user@domain.
  • unregisterDevice() — удаляет существующие регистрационные данные.
  • boolean isRegistered() — сообщает, было ли устройство успешно зарегистрировано.
  • string domain() — возвращает текущий домен.

Информация об устройстве

Эти методы сообщают системную информацию, хотя доступ к ней через Mdm:SysInfo проще, поскольку он читает файл конфигурации напрямую, а не выполняет вызов D-Bus.

  • string deviceModel() — модель устройства, например, p4903.
  • string deviceFamily() — семейство устройств.
  • string deviceUid() — уникальный идентификатор устройства. Либо IMEI, либо WLAN на основе mac, в зависимости от того, есть ли модем.
  • string deviceVariant() — вариант устройства, например, sony-nile.
  • string displayName(int type) — красивое имя для устройства, например, INOI R7. Тип может быть производителем, маркировкой или моделью. Дополнительную информацию можно получить в документации о ssu.

Управление репозиториями

Хотя эти методы позволяют вручную управлять каждым настроенным репозиторием по отдельности, обычно не рекомендуется делать это программно на уровне управления устройством. Вместо этого по возможности следует настраивать стандартные репозитории в доменах.

  • int deviceMode() — режим конфигурации репозитория, например, Release, RnD, Upgrade. Дополнительную информацию можно получить в документации о ssu.
  • setDeviceMode(int) — устанавливает режим конфигурации репозитория.
  • release(bool rnd) — настроенная версия выпуска (release или rnd).
  • setRelease(string release, bool rnd) — установить версию выпуска (release или rnd).
  • QList<SsuRepo> listRepos() — возвращает список настроенных репозиториев (о структуре можно узнать подробнее в документации ssu).
  • addRepo(string name, string url) — добавляет собственный репозиторий. URL-адрес может быть пустым для репозиториев, уже определённых в конфигурации ssu.
  • modifyRepo(int action, string repo) — изменяет репозиторий: 0 — удаляет, 1 — добавляет, 2 — отключает, 3 — включает.
  • updateRepos() — восстанавливает репозитории из config. Следует использовать, например, при смене доменов.
Управление доменами

Домены могут создаваться динамически, а их переменные — создаваться или изменяться. Некоторые домены могут быть предварительно определены в конфигурации поставщика в /usr/share/ssu/repos.d как часть базовой конфигурации устройства, и эти значения могут быть изменены. Однако эти значения будут перезаписаны более новой версией конфигурации поставщика.

  • listDomains() — возвращает список настроенных доменов SSU.
  • QVariantMap getDomainConfig(string domain) — возвращает собственные переменные, определённые для данного домена.
  • setDomainConfig(string domain, QVariantMap config) — перезаписывает полный набор переменных для данного домена, удаляя все существующие переменные, не определённые в новом наборе. Изменения предопределённых доменов сохранятся, если они не будут отменены новыми предопределёнными данными.

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

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