Модуль автоматического обновления
Модуль автоматического обновления предназначен для организации автоматического и ручного обновления версий основного ПО STB по протоколу HTTP с указанного URL.
Начиная с версии ПО 0.2.18 все кастомизации встроенного портала необходимо производить в исходных кодах. После проведения кастомизаций необходимо выполнить сборку и минимизацию исходного кода портала. После сборки и минимизации файлы портала можно поместить в корневую файловую системы для последующей сборки образа внутреннего ПО. Исходный код портала (portal-dev-*.tgz находится в каталоге с текущим релизом на http://soft.infomir.com)
По умолчанию, если в переменных окружения не указано значение переменной autoupdateURL - модуль автоматического обновления работает по URL производителя!!!
autoupdateURL=http://example.com/update_list.txt
autoupdateURL - наименование переменной окружения, которая определяет адрес (URL) расположения файла
update_list.txt
- http://example.com/ - пример пути к директории (на Web-сервере), где расположен файл update_list.txt
Этапы процедуры обновления
Выполняется проверка переменной среды
autoupdate_cond , состояние «0» - отвечает опции автоматическое обновление, «1» - обновление с подтверждением, «2» - авто-обновление выключено. Если эта переменная установлена в «0» или «1», то инициируется проверка необходимости обновления.- Считывание файла содержащего список всех доступных для обновления версий, сортированных по дате от старшей к новейшей (последняя/новая запись в конце).
Сравнение даты самой новой (последней) записи с датой сборки текущего образа, которая определяется посредством функции
stb.RDir(«ImageDate») , возвращающей значение переменной средыImage_Date. В случае, если дата сборки текущего образа новее, автообновление не запускается.
- Если дата, указанная в файле списка обновлений, новее, чем дата сборки образа, прошитого в приставку, выполняется дополнительная проверка даты создания образа, который находится по адресу, указанному в файле обновлений update_list.txt.
Если дополнительная проверка показывает, что дата обновления новее, чем дата сборки текущего образа, то выполняется проверка типа образа для обновления. Автоматическое обновление на альфа-версии не запускается. Автоматическое обновление на бета-версии запускается только в том случае, если опция в настройках встроенного портала «Обновление на бета-версии» установлена в значение «обновляться», эта опция устанавливает переменную среды
«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 символов);