Инструменты пользователя

Инструменты сайта


Боковая панель

stb_webkit:new_platform:image_build_for_mag3_4_5

Утилиты и инструкции для сборки образа ПО MAG3xx/4xx/5xx и выше

Требования к ОС

Все примеры используемые в данном руководстве приведены для Ubuntu Server 16.04.

Для 64-разрядной системы, необходимо дополнительно установить поддержку 32-разрядных библиотек. Например, для Ubuntu 14.04 - 16.04 необходимо установить пакет lib32z1 (32-bit shared libraries for AMD64).

Необходимые пакеты

mtd-utils Утилиты для управления устройствами с технологией памяти, такими как флэш-память, Disk-On-Chip или ROM
lib32z1 Поддержка 32-разрядных библиотек для x64 систем
gnupg1 Внимание! GPG2(gnupg2) - не поддерживатеся!
STB SDK https://soft.infomir.com/stbsdk/ - Утилиты для сборки ПО MAG

Утилиты

Утилиты оператора позволяют собирать образ ПО в трех вариантах:

  • PublicImage - образ подписанный стандартным публичным ключом STB_PUBLIC.
    Варианты обновления: По HTTP и (USB без Bootstrap из меню портала) только на «версии ПО завода изготовителя», («версии ПО завода изготовителя» - версии ПО собранные непосредственно производителем и предоставляемые для автоматического и ручного обновления по URL завода изготовителя). На другие версии обновляется только из меню System Recovery (multicast, USB). Заводской вариант образа ПО (imageupdate), подписанный стандартным публичным ключом STB_PUBLIC, выкладывается в каталоге с каждым текущим релизом, соответственно модели STB, по адресу: soft.infomir.com.ua
  • CustomImage - образ подписанный кастомным ключом для обновления ПО. Ключ создается оператором самостоятельно без обращения к производителю.
    Варианты обновления: По HTTP и «USB» только на образы ПО подписанные этим же ключом. На другие версии ПО (не подписанные «кастомным ключом»), обновляется только из меню System Recovery (multicast, USB, TFTP). Рекомендуется для операторов которые хотят реализовать безопасное обновление ПО через HTTP, но оставить вариант обновления на другие версии ПО из меню System Recovery.
  • OperatorImage - образ подписанный ключом оператора. При этом ключ оператора в обязательном порядке подписан на заводе изготовителе.
    Варианты обновления: Обновляется только на версии ПО подписанные этим же ключом оператора.

Перед подготовкой образа основного ПО настоятельно рекомендуем ознакомится со следующей документацией:STB API, Operator guide
Рекомендуется: Выполнять все команды с правами «суперпользователя». При работе с архивами использовать консольный архиватор tar.
Внимание!Командная оболочка указанная в скриптах может отличатся от системной!

Рекомендации

  • Обновление ПО из меню «Системные настройки» - переменная update_url. По умолчанию, обновление происходит по URL производителя на образ ПО подготовленный производителем. При сборке собственного образа рекомендуется изменить переменную на URL вашего образа.
  • "Mодуль автоматического обновления" из пункта «Настройки» основного меню. Переменные: autoupdate_cond, betaupdate_cond. По умолчанию, автоматическое обновление включено и инициирует обновление на версии ПО производителя. Обновление возможно так же и в ручном режиме. При сборке собственного образа рекомендуется отключить работу модуля автоматического обновления либо организовать собственную систему обновления, руководствуясь описанием и инструкциями.
  • Проверка переменных окружения при старте. С целью повышения безопасности и контроля несанкционированного изменения переменных, рекомендуется производить проверку необходимых/критичных переменных при загрузке ПО (например, таких как: portal1, portal2, update_url, autoupdate_cond и т.д.)

Подготовка образов. Общие полoжения

1. Подготовка профайла

Параметры сборки образа указываются в профайле img_make.profile.mag<model_number>

Пример профайла img_make.profile.mag520

Описание переменных профайла

Переменная Описание
MODELМодели STB. Внимание! Регистр написания наименования модели должен полностью совпадать с наменованием модели из System Recovery Utility > Device Information > Model или System Settings > Device Info > Model.
KERNEL_PATHРасположение итоговго образа файловой системы, содержащей ядро. По этому пути будт раположен итоговый образ ядра после сборки и подписи
ENV_VARIABLE_PATHПуть к файлу, в котором содержатся переменные бутлоадера и их значение. Пример, такого файла смотрите Пример файла env.txt, он показывает каким, образом можно установить переменные бутлоадера, в частности цвета шрифта и фона. Символ $ должен экранироваться.
USERFS_VERSIONНомер версии образа файловой системы «Userfs». Если номер текущего образа и обновляемого совпадает, то обновление не производиться.
USERFS_PATHРасположение образа файловой системы «Userfs». Образ подготавливается с помощью userfs_img_<type_model>.sh. Необходимые файлы должны находится в подкаталоге /userfs.
SECONDBOOT_PATHПуть ко второму образу загрузчика при необходимости его обновления
LOGOTYPE_PATHПуть к файлу логотипа загрузчика.
MAG200_OP_KEYID ключа для подписи ПО. По умолчанию STB_PUBLIC
KERNEL_FS_*Тип и разметка файловой системы ядра. Внимание! Не рекомендуется изменять значения установленные в профайле!
ROOTFS_FS_*Тип и разметка корневой файловой системы. Внимание! Не рекомендуется изменять значения установленные в профайле!
EXT4_ZIPУровень сжатия для образа EXT4
HASH_TYPEАлгоритм шифрования

Для правильной работы утилит оператора, переменная KERNEL_PATH в профайлах, должна иметь значение <path>/uImzlib_mag<model>.img. Переменные ENV_VARIABLE_PATH, USERFS_VERSION, USERFS_PATH, SECONDBOOT_PATH, LOGOTYPE_PATH могут быть закоментированы, в этом случае соответствующей секции не будет в образе. В переменной MAG200_OP_KEY должен быть установлен соответствующий идентификатор - (ID) ключа, которым будет подписан образ.

Например: export MAG200_OP_KEY=ID_key, где ID_KEY должен быть:

  • STB_PUBLIC - для сборки PublicImage. Публичный ключ входи в состав утилит;
  • ID кастомного ключа - для сборки CastomImage;
  • ID ключа оператора - для сборки OperatorImage.

2. Подготовка переменных Bootloader-a (Загрузчика)

Необходимые переменные Bootloader-a указываются в файле ./images/env.txt

Наиболее часто используемые переменные

Пример файла env.txt

3. Подготовка uImage, uImzlib_null.img, uImzlib.img. Подпись ядра

Используются файлы:

  • uImage_mag<model_number>.clean

где <model_number> - номер модели STB для которой собирается образ ПО.

uImage_mag<model_number>.clean необходимо взять из релиза ПО в соответствии с моделью STB для которой собирается образ.

Файлы:

  • uImage_mag<model_number>
  • uImzlib_null_mag<model_number>.img
  • uImzlib_mag<model_number>.img

- будут созданы в каталоге с утилитами после окончания работы скриптов.

3.1 Подпись ядра

Используется скрипт ./kernel_sign.sh. Скрипт интерактивный, при запуске без параметров выводится подсказка.

Пример:

# ./kernel_sign.sh
Usage:
    ./kernel_sign.sh <model_name> <path_to_kernel> <profile>
 
    The <model_name> should be the same as the Model Name of STB
    The Model Name can be viewed in System Recovery Utility > Device Information > Model
    or in System Settings > Device Info > Model
 
For example:
    ./kernel_sign.sh MAG520 ./mag520/images/uImage_mag450.clean img_make.profile.mag520
#

4. Сборка образа ПО (сборка imageupdate)

Используется скипт - img_make.sh. Скрипт интерактивный. При запуске без параметров выводится подсказка.

Пример:

root@test-srv:~/stb_fw/Operator_utilities_Broadcom_Hisilicon_Amlogic# ./img_make.sh
 
Usage:
    ./img_make.sh <version_number> "<description>" <path_to_rootfs> <model_name> <profile>
 
    The <version_number> must be a number (3 digits)
    The <description> should be escaped, Spaces are not allowed!
    The <model_name> should be the same as the Model Name of STB
    The Model Name can be viewed in System Recovery Utility > Device Information > Model
    or in System Settings > Device Info > Model
 
For example:
    ./img_make.sh 220 "Test_image" ../../520/rootfs-2.20.01/ MAG520 ./img_make.profile.mag520
 
root@test-srv:~/stb_fw/Operator_utilities_Broadcom_Hisilicon_Amlogic#

где:

version_number Номер версии образа, должно быть трехзначным числом. После успешного обновления переменная начального загрузчика Image_Version принимает это значение.
description Краткое описание !Внимание! «Пробелы» в описании не допускаются. Описание необходимо экранировать! После успешного обновления переменная начального загрузчика Image_Desc принимает это значение
path_to_rootfs путь к каталогу с корневой файловой системой. Корневую файловую систему rootfs-….tar.gz можно взять из релиза http://soft.infomir.com.ua в соответствии с моделью STB
model_name Модели STB. Внимание! Регистр написания наименования модели должен полностью совпадать с наменованием модели из System Recovery Utility > Device Information > Model или System Settings > Device Info > Model.
path_to_profile Путь к профайлу - ./img_make.profile.mag<model>

Замечания по работе с программой gpg

Для работы с ключами и создания цифровой подписи образов используется программа gpg - GnuPG.org GnuPG Wikipedia

Для переноса ключа, например, с одной машины на другую можно воспользоваться следующими командами:

  • для сохранения информации о ключе в файле
gpg -o opsecbin.KEY --export-secret-keys ID-ключа
  • для добавления этого ключа в gpg
gpg --import opsecbin.KEY
  • для просмотра текущих доступных ключей.
gpg --list-keys

PublicImage - подготовка, сборка

CustomImage - подготовка, сборка

OperatorImage

Инструкция по сборке и установке образа «OperatorImage» предоставляется после согласования процедуры подписи ключа оператора с коммерческим отделом

stb_webkit/new_platform/image_build_for_mag3_4_5.txt · Последнее изменение: 2021/09/06 14:18 (внешнее изменение)