Skip navigation

Описание модуля автоматического обновления ПО

Модуль автоматического обновления предназначен для организации автоматического и ручного обновления версий внутреннего ПО по протоколу HTTP с указанного URL.

По умолчанию, если в переменных окружения не указано значение переменной autoupdateURL - модуль автоматического обновления работает по URL производителя!!!

Пример переменной:
autoupdateURL=http://example.com/update_list.txt

autoupdateURL - по этому URL должен находится файл update_list.txt

Этапы процедуры обновления

  1. Выполняется проверка переменной среды autoupdate_cond , состояние «0» - отвечает опции автоматическое обновление, «1» - обновление с подтверждением, «2» - авто-обновление выключено. Если эта переменная установлена в «0» или «1» то инициируется проверка необходимости обновления.

  2. Считывание файла содержащего список всех доступных для обновления версий, сортированных по дате от старшей к новейшей (последняя/новая запись в конце).
  3. Сравнивание даты из самой новой (последней) записи, с датой сборки текущего образа, которая определяется посредством функции stb.RDir(«ImageDate») которая возвращает значение переменной среды Image_Date, в случае если дата сборки текущего образа новее, авто-обновление не инициируется.

  4. Если дата указанная в файле списка обновлений новее чем дата сборки образа прошитого в приставку, выполняется дополнительная проверка даты создания образа лежащего по адресу указанному в текстовом файле обновлений.
  5. Если дополнительная проверка показывает что дата обновления новее чем дата текущего образа, то выполняется проверка типа образа для обновления. Автоматическое обновление на альфа-версии не запускается. Автоматическое обновление на бета-версии запускается только в том случае если опция в настройка внутреннего портала «Обновление на бета-версии» установлена в значение «обновляться», эта опция устанавливает переменную среды «betaupdate_cond» . Состояние «1» соответствует значению «обновляться», «0» - «не обновляться». По умолчанию установлено значение «не обновляться».

  6. Если версия типа «release» или «beta» и установлена опция «обновление на бета-версии» и её дата новее чем дата создания текущего образа, то инициируется автоматическое обновление.

Синтаксис файла update_list.txt , пример:

[
{"name":"0.2.14-r3", "url":"http://example.com/250/imageupdate214r3", "type":"release", "date":"26 Nov 2012 23:22:19 GMT+0200", "descr":"Release"},
{"name":"0.2.14-r7", "url":"http://example.com/250/imageupdate214r7", "type":"release", "date":"30 Nov 2012 14:43:29 GMT+0200", "descr":"Release"}
]

где:

  • name - отображаемое имя (название версии), может содержать любой текст (20 символов);
  • url - url образа ПО;
  • type - отображаемый тип релиза (release, beta или alpha);
  • date - содержит дату создания образа, она должна быть установлена из поля Date из заголовка образа, в следующем формате dd Mon yyyy hh:mm:ss GMT+nnnn, например 10 Nov 2011 20:05:35 GMT+0200;
  • descr - отображаемый description - краткое описание версии (40 символов).

Отключения модуля Автообновления и элементов управления в пользовательском интерфейсе

services.html

/home/web/services.html

<tr>
    <td class="t20w pad10r tabs_center_title" id="autoUpdateHolder" align="right"></td>
    <td class="t18w" id="autoUpdateInputHolder"></td>
</tr>
<tr>
    <td class="t20w pad10r tabs_center_title" id="alphaUpdateHolder" align="right"></td>
    <td class="t18w" id="alphaUpdateInputHolder"></td>
</tr>

Привести к виду:

<tr style="display:none;">
    <td class="t20w pad10r tabs_center_title" id="autoUpdateHolder" align="right"></td>
    <td class="t18w" id="autoUpdateInputHolder"></td>
</tr>
<tr style="display:none;">
    <td class="t20w pad10r tabs_center_title" id="alphaUpdateHolder" align="right"></td>
    <td class="t18w" id="alphaUpdateInputHolder"></td>
</tr>

vars.js

/home/web/vars.js

settings_objArr = new RegExp("MAG200").test(gSTB.GetDeviceModelExt())?
[
 [
  ["languageAudiotrack"],["languageSubtitle"],["frontPanelSel"],["screenClockSel"],
  ["ssdelay_select"],["videoClockSel"],["autoupdateSel"],["alphaupdateSel"],
  ["update_button","update_button_s"]
 ]
]:
[
 [
  ["languageAudiotrack"],["languageSubtitle"],["frontPanelSel"],["screenClockSel"],
  ["ssdelay_select"],["videoClockSel"],["autoupdateSel"],["alphaupdateSel"],
  ["timeShiftSettings"],["update_button","update_button_s"]
 ],
 [
  ["tsOn"],["tsIco"],["tsPath"],["tsTime"],["tsEndType"],["tsExitType"],["tsLag"],["tsBack"]
 ]
],

Привести к виду: убрать - autoupdateSel , alphaupdateSel , update_button

settings_objArr = new RegExp("MAG200").test(gSTB.GetDeviceModelExt())?
[
 [
  ["languageAudiotrack"],["languageSubtitle"],["frontPanelSel"],["screenClockSel"],
  ["ssdelay_select"],["videoClockSel"],["update_button_s"]
 ]
]:
[
 [
  ["languageAudiotrack"],["languageSubtitle"],["frontPanelSel"],["screenClockSel"],
  ["ssdelay_select"],["videoClockSel"],["timeShiftSettings"],["update_button_s"]
 ],
 [
  ["tsOn"],["tsIco"],["tsPath"],["tsTime"],["tsEndType"],["tsExitType"],["tsLag"],["tsBack"]
 ]
],

Установить переменные

При сборке образа ПО в env.txt Пример env.txt :

autoupdate_cond=2
betaupdate_cond=0


Need Help

Дима – эксперт по работе с приставками серии MAG и автор этой статьи.

Была ли полезна эта статья?

Да Нет

Сожалеем.
Как можно улучшить эту статью?

Мы используем cookie-файлы, чтобы оптимизировать работу сайта и предоставить вам лучший интерфейс; а также для продвижения нашей продукции. Ознакомьтесь с нашей политикой Cookie, чтобы узнать, как именно мы используем cookie-файлы, и как вы можете это контролировать.
Если вы продолжите пользоваться сайтом или закроете это сообщение — это значит, что вы согласны с нашей Политикой конфиденциальности и разрешаете использование cookie-файлов, как описано в политике Cookie.