← Усі статті

Як побудований USB-пакет прошивки телевізора

Файл прошивки для оновлення з USB виглядає як єдиний непрозорий блок, але всередині нього — стос контейнерів: зовнішня оболонка, скрипт або таблиця й образи розділів, часто стиснуті. Знання шарів підкаже, що можна читати, змінювати й збирати назад.

Частина розділу: Посібник із прошивок і дампів.

Навіщо зазирати всередину

  • Щоб знайти рядки версії, моделі й SoC, перш ніж прошивати файл не в той ТВ.
  • Щоб побачити, які розділи пакет оновлює, а які залишає без змін.
  • Щоб адаптувати пакет до іншої панелі чи пульта, дивіться сторінку можливостей.

Шари

  1. Зовнішній контейнер. Залежно від виробника це може бути звичайний архів (tar, zip), фірмовий формат (програма розпізнає LG EPK, Philips UPG і Android OTA) або сирий бінарний файл із заголовком.
  2. Скрипт або таблиця. Пакети на MStar починаються з текстового скрипта (команди на кшталт filepartload), який указує завантажувачу, яка частина файла в яку область флеш-пам’яті йде. Інші родини використовують таблицю в заголовку.
  3. Образи розділів. Типовий вміст — ядро, DTB, initramfs (cpio) та образи файлових систем, як-от squashfs, cramfs, ext4, UBI/UBIFS або JFFS2, а також розріджені образи Android і boot.img.
  4. Стиснення. gzip, xz, lzma, bzip2, zstd і lz4 — поширені обгортки навколо цих образів, і вони можуть бути вкладеними.

Покрокове читання невідомого файла

  1. Запишіть розмір і хеш (MD5 або SHA-256), щоб згодом можна було зрозуміти, чи змінився файл.
  2. Погляньте на байти заголовка та читабельні рядки: версії, назви моделей, назви SoC, рядки скрипта.
  3. Скануйте сигнатури. Сама лише магічна послідовність мало що доводить, тому хороший сканер ще й перевіряє структуру знайденого (розміри, заголовки), щоб уникнути хибних спрацьовувань.
  4. Перевірте ентропію. Висока рівна ентропія означає стиснуті або зашифровані дані; дуже низька — порожнє вирівнювання; змішані області зазвичай означають реальний вміст файлової системи.
  5. Розпаковуйте шар за шаром з обмеженням глибини вкладеності в чисту папку.

Якщо образ має високу ентропію й не має впізнаваної сигнатури, він, імовірно, зашифрований або використовує фірмове стиснення. Не вважайте це пошкодженням і не намагайтеся прошивати його назад після правки в hex-редакторі: перевірка підпису чи контрольної суми в завантажувачі може його відхилити або, що гірше, прийняти зіпсований файл. НЕ ПЕРЕВІРЕНО Які родини перевіряють підписи, залежить від моделі; дивіться документацію виробника.

Типові помилки

  • Прошивати файл, обраний лише за діагоналлю екрана. Порівнюйте ідентифікатори плати й панелі в рядках.
  • Редагувати образ на місці й залишати старе поле контрольної суми чи розміру.
  • Розпаковувати двічі в одну й ту саму папку, через що старі файли змішуються з новими.
  • Вважати, що «розпакувалося без помилок» означає «можна запакувати назад ідентично». Рівні стиснення й порядок файлів змінюють результат.

Як це робиться у FW Tool

  • Вкладка «Прошивка» показує зведення: розмір, MD5 і SHA-256, заголовок, цікаві рядки.
  • Вона шукає перелічені вище сигнатури й перевіряє їх; також розбирає скрипти MStar і розрізає файл за розділами.
  • Карта ентропії позначає стиснуті або зашифровані області та вирівнювання (галочка, увімкнена за замовчуванням).
  • Рекурсивне розпакування має параметр глибини вкладеності (від 0 до 8, за замовчуванням 3). Для деяких файлових систем потрібні зовнішні інструменти, як-от 7-Zip або unsquashfs, якщо вони встановлені.
  • Для пакетів на основі tar програма може зібрати пакет назад після заміни файлів.
  • Вкладка «Адаптація» зчитує підтримуваний пакет, показує знайдені налаштування панелі й пульта та збирає змінений пакет. Дивіться також розкладку LVDS і розрядність.

Перш ніж торкатися пакета, зніміть дамп працюючого пристрою, якщо можете: дивіться порівняння дампів і хешів.

Запитання й відповіді

Чи можна розпакувати кожен файл прошивки?

Ні. Зашифровані або підписані контейнери показують високу ентропію й не мають придатної структури. Програма повідомляє, що їй вдалося визначити; вона не може розшифрувати те, до чого не має ключа.

Яку глибину використовувати?

Почніть зі значення за замовчуванням і збільшуйте його, лише якщо в результаті все ще лишаються архіви. Більша глибина означає більше місця на диску й часу.

Чи безпечно прошивати розпаковані дані?

Розпаковані файли призначені для огляду. Прошивайте лише повний пакет, який ви зібрали назад або отримали цілим, на пристрої, де є дамп, до якого можна повернутися.

Практичний чек-лист перед прошивкою

  • Ідентифікатори моделі, плати й панелі у файлі збігаються з ТВ, який ви ремонтуєте.
  • Розмір файла й хеш збігаються з тим, що вказує джерело, якщо воно їх вказує. Перерване посередині завантаження — часта причина невдалих оновлень.
  • USB-накопичувач відформатовано так, як вимагає виробник (зазвичай FAT32), і на ньому лежить лише файл оновлення в очікуваній папці або з очікуваною назвою. НЕ ПЕРЕВІРЕНО Назви файлів і правила щодо папок відрізняються залежно від платформи; дивіться інструкцію виробника.
  • У вас є дамп поточної пам’яті, щоб невдале оновлення можна було скасувати.
  • Мережева напруга стабільна, і ТВ не вимкнуть під час оновлення.

Пакет, який на ПК виглядає добре, на ТВ усе одно може не спрацювати з причин, яких ПК не бачить, наприклад через перевірку версії в завантажувачі. Розглядайте аналіз як спосіб зменшити ризик, а не усунути його.

Завантажити демо


Спробувати FW Tool (демо)