Модуль автоматического обновления ПО
Описание модуля автоматического обновления ПО
Модуль автоматического обновления предназначен для организации автоматического и ручного обновления версий внутреннего ПО по протоколу HTTP с указанного URL.
По умолчанию, если в переменных окружения не указано значение переменной autoupdateURL - модуль автоматического обновления работает по URL производителя!!!
autoupdateURL=http://example.com/update_list.txt
autoupdateURL - по этому URL должен находится файл
Этапы процедуры обновления
Выполняется проверка переменной среды
autoupdate_cond , состояние «0» - отвечает опции автоматическое обновление, «1» - обновление с подтверждением, «2» - авто-обновление выключено. Если эта переменная установлена в «0» или «1» то инициируется проверка необходимости обновления.- Считывание файла содержащего список всех доступных для обновления версий, сортированных по дате от старшей к новейшей (последняя/новая запись в конце).
Сравнивание даты из самой новой (последней) записи, с датой сборки текущего образа, которая определяется посредством функции
stb.RDir(«ImageDate») которая возвращает значение переменной среды Image_Date, в случае если дата сборки текущего образа новее, авто-обновление не инициируется.- Если дата указанная в файле списка обновлений новее чем дата сборки образа прошитого в приставку, выполняется дополнительная проверка даты создания образа лежащего по адресу указанному в текстовом файле обновлений.
Если дополнительная проверка показывает что дата обновления новее чем дата текущего образа, то выполняется проверка типа образа для обновления. Автоматическое обновление на альфа-версии не запускается. Автоматическое обновление на бета-версии запускается только в том случае если опция в настройка внутреннего портала «Обновление на бета-версии» установлена в значение «обновляться», эта опция устанавливает переменную среды
«betaupdate_cond» . Состояние «1» соответствует значению «обновляться», «0» - «не обновляться». По умолчанию установлено значение «не обновляться».- Если версия типа «release» или «beta» и установлена опция «обновление на бета-версии» и её дата новее чем дата создания текущего образа, то инициируется автоматическое обновление.
Синтаксис файла
[ {"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"] ] ],
Привести к виду: убрать -
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"] ] ],
Установить переменные
При сборке образа ПО в
autoupdate_cond=2 betaupdate_cond=0