Как прошить ТВ бокс на Android?
Smart TV приставки прошивают очень часто, таким образом увеличивая их быстродействие, стабильность работы, улучшая интерфейс, добавляя новые функции и т. п. В частности популярно перепрошивать приставку с Android на Android TV (ATV). Процедура прошивки может разнится в зависимости от устройств, поэтому мы разберемся с несколькими наиболее популярными моделями. Для других девайсов все можно сделать по аналогии, по крайней мере в большинстве случаев.
Ugoos x4
В нашем предыдущем обзоре серии Смарт приставок мы уже рассматривали прошивку Ugoos x4, а также обсудили многое другое. По нашему мнению, это один из самых интересных TV box на рынке из соотношения цены-качества. К тому же, процедура перепрошивки очень похожа на ту, что мы описывали в блоке о Билайн ТВ.
x96
Прошить Смарт приставку х96 можно точно таким же образом
Опишем кратко саму процедуру, акцентируя внимание только на особенностях
Как прошить ТВ бокс х96:
- Устанавливаем приложение для перепрошивки, чаще используют USB Burning Tool.
- Берем шнур USB с выходами с двух сторон, в народе – папа-папа.
- Зажимаем спичкой или зубочисткой кнопку Reset в разъеме AV и сразу подключаем кабель USB.
- Отпускаем кнопку после того, как произошло подключение, и приставка отобразилась в программе.
- Через меню выбираем прошивку, запускаем процедуру. Минут через 5 прошивка будет загружена.
Xiaomi Mi Box S
Многим интересно, как прошить TV box от Xiaomi, но на практике процедура мало чем отличается от стандартной
Единственное, на что следует обратить внимание – для определения приставки в программе прошивки нужно на пульте дистанционного управления зажать кнопку назад и Ок. Их следует держать до момента обнаружения
Однако это только половина дела, также еще нужен файл обновления приставки, который загружаем на флешку объемом до 32 Гб с Fat32 форматирование, подключаем к приставке и с помощью той же комбинации кнопок запускаем автообновление. По сути, это что-то среднее между обновлением через ПК и флешку. Более наглядно все описано в ролике ниже.
Mecool KM9 Pro
Прошивка приставок Mecool в своем начале осуществляется таким же образом, как и все остальные, но далее есть отличия.
Краткая инструкция по прошивке Mecool KM9 Pro:
Прошиваем приставку через USB Burning Tool стандартным образом
Только важно, чтобы все содержимое прошивки находилось в корне, также должна присутствовать папка C:/soft.
После завершения установки образа не отключаем ТВ бокс, но запускаем командную строку через меню Пуск или поиск (cmd).
Дважды вводим команды cd .. – после каждого раза нажимаем Enter, а затем sd soft и тоже жмем клавишу Ввода.
Вводим следующую серию команд: update bulkcmd fastboot, fastboot flashing unlock, fastboot flashing unlock_critical, fastboot oem reset.
Отключаем приставку и проверяем результат.
С помощью перечисленных способов можно прошить практически любую ТВ приставку: от спутникового ресивера до Smart TV бокса. Бывают исключения, но все описать в рамках одной статьи невозможно. Для большинства случаев описанных инструкций должно быть достаточно. А мы, как обычно, ждем от вас комментарии.
Как прошить приставки Билайн ТВ, МТС ТВ, Триколор ТВ и другие?
Для просмотра цифрового и спутникового телевидения нужны приставки. Так как у нас в стране самые популярные операторы Билайн ТВ, МТС ТВ, Триколор ТВ, мы рассмотрим замену операционной системы на их примере. Большинство других ресиверов тоже поддаются перепрошивке по аналогии с перечисленными ниже.
Билайн ТВ
Большинство приставок для Билайн ТВ шьются стандартным образом – через USB Burning Tool. Это и RASSE-001, и SWG2001B-A. Однако приставки ZTE ZXV10 B860H нельзя шить в UBT, в противном случае она работать не будет. В этом случае следует использовать Pulpstone Amlogic Update USB Tool как наиболее простой и корректный софт для обновления.
Универсальная инструкция по прошивке спутниковой приставки Билайн ТВ:
- Качаем Amlogic USB Burning Tool актуальной версии с 4pda или любого другого сайта.
- Скачиваем прошивку для своей приставки. Большое количество разных прошивок на быстродействие, доп. функции и т. п. можно найти в тематической ветке 4pda. Раздел прошивки.
- Разархивируем прошивку, если она идет в архиве (обычно так и есть).
- Запускаем приложение USB Burning Tool, нажимаем на вкладку «Файл» и щелкаем по выпадающему элементу «Выбрать прошивку».
- Указываем путь к файлу образа.
- Подключаем приставку по USB к компьютеру. Обычно для этого используется разъем OTG, но может и другой. Также следует проверить, что блок питания подключен. Берем зубочистку и нажимаем ею кнопку в AV отверстии. Некоторые модели требуют, чтобы сначала была нажата кнопка, а потом подключен USB.
- Сейчас в программе должна отобразиться приставка. Если ее нет, стоит задержать кнопку AV на пару секунд. После обнаружения можно отпускать.
- Как только прошивка завершится, нажимаем на кнопку «Стоп», отключаем приставку и проверяем результат.
МТС ТВ
Прошивка приставки МТС ТВ обычно производится через флешку. Способ довольно прост и работает для большинства разновидностей устройств
Как прошить приставку МТС ТВ:
- Скачиваем архивы с ПО для DUNE TV 251-S MTS и Huawei DS300a.
- Распаковываем полученные архивы и извлекаем файл 251-S 1601.082114062424_rel.fw для Dune или папку upgrade для Huawei.
- Копируем полученные файлы в корень на флешке, которая обязательно должна иметь файловую систему FAT32.
- Отключаем приставку от питания, подключаем к ней флешку и запускаем снова.
- Установка должна начаться автоматически, после завершения процедуры все должно заработать правильно.
Триколор ТВ
Удобнее всего обновлять ресивер Триколор ТВ через компьютер. Делается это немного по-другому, в отличие от Билайн ТВ, поэтому рассмотрим процедуру отдельно. Для этой задачи нам потребуется нульмодемный кабель. Он продается практически везде. Также на ПК должен быть COM-разъем или переходник COM-USB.
Инструкция по прошивке Триколор ТВ:
- Отключаем приставку от питания и антенны.
- Подключает нульмодемный кабель между компьютером и приставкой при помощи разъема RS232.
- Загружаем программу DRE Burner. Чаще всего ее можно скачать в том же месте, где и прошивку.
- Запускаем установленную программу и находим файл прошивки. Его можем взять как на официальном сайте, так и в других местах.
- Жмем по кнопке «Open File», указываем путь к файлу прошивки (скорее всего, ее заранее нужно будет извлечь из архива).
- Жмем по кнопке «Upload» и запускаем ресивер. Должна автоматически начаться процедура установки.
- Как только процесс дойдет до 100%, можно разъединять устройства.
Некоторые версии сторонних прошивок даже позволяют разблокировать недоступные вам платные каналы, соответственно, без оплаты. Делать это или нет, решать вам, но риски лежат так же само полностью на владельце приставки.
Оборудование
Тут можно только сказать, чего делать не стоит: не надо брать дешевые инструменты и расходники. Из моего любимого — припой, который плавится при совершенно неожиданных температурах, проводящий флюс (!) и одноразовые пинцеты.
Подробнее хочется рассказать о дешевом флюсе. Как пример — ТТ, также известный как розовый гель. Он хорош, но он не отмывается и проводит ток на высоких частотах. Это не проблема в советском радио или даже современном блоке питания, но вот на платах компьютеров с гигагерцами частоты он категорически противопоказан.
Снятие компаунда — это вопрос температуры. Я обычно грею феном на ~250 градусов, но есть одна проблемка. И состоит она в том, что под компаундом компоненты могут быть припаяны низкотемпературным припоем, вроде сплавов Розе или Вуда. Да, компаунд ты снимешь, но вместе с ним сойдет половина платы. А хитрая флешка может не завестись без кучи рассыпухи, которую обратно уже не собрать.
Что делать, если плата покрыта лаком? Можно попробовать свести его ацетоном, но он может повредить текстолит. Делай так, только если тебе терять нечего. Для остальных случаев — просто снимать скальпелем в нужных местах, а остальное не трогать.
При пайке ориентируйся на график термопрофиля в конце даташита на микросхему. Он там размещается не просто так, и на моей памяти действительно были случаи, когда микросхема умирала от перегрева при извлечении. Как известно, люди делятся на тех, кто не смотрит графики в документации, и тех, кто уже смотрит.
К заводскому припою часто имеет смысл примешать менее тугоплавкий сплав Розе или ПОС63, ну или сплав Вуда, если все совсем плохо. Это значительно понизит температуру пайки и увеличит шансы не сжечь микруху.
Осмотр платы устройства
Если вскрытие не показало, что пациент умер от вскрытия, я сначала осматриваю плату в поисках пинов отладочных интерфейсов — обычно это JTAG или UART. Главная проблема не в том, что нужные контакты могут быть в очень неожиданных местах, а в том, что обычно они отключены. Конечно, даже в 2021 году все еще хватает уникумов, которые отправляют в прод устройства с включенным UART, но количество таковых стремительно падает.
Если тебе не повезло — вариантов немного: или плакать в подушку, или искать чип памяти на борту и читать его непосредственно.
И вот с этим тебя ожидает уйма интересного! Думал, нужно просто вытащить восьминогую микруху в DIP-корпусе, похожую на старый чип с BIOS? Как бы не так! Сейчас есть минимум четыре относительно широко применяемых вида памяти, и некоторые из них могут быть похожи друг на друга так, что не различишь.
Подготовка к чтению прошивки
После выпайки ни в коем случае нельзя устраивать микросхеме температурные испытания: пусть полежит и остынет сама, а не в спирте — так шансы сохранить работоспособность куда выше. Дальше нужно проверить, все ли лапки чипа находятся в одной плоскости и не образовались ли от припоя перемычки между ножками. Их нужно убрать, чтобы не спалить программатор, не имеющий защиты от такого, и сам чип тоже.
С BGA нужно убрать старый припой и нанести новые шарики. Когда чип очищен и подготовлен к чтению, не вздумай пихать его в программатор с прижимом прямо в чип — велик шанс просто раздавить его!
Корпуса микросхем
Как видишь, с корпусами у памяти все плохо: помимо показанных на картинке вариантов, можно запросто вспомнить еще с десяток, и не факт, что производитель не решил использовать нечто эксклюзивное, у чего может вообще не быть названия.
Корпуса микросхем
Маркировка
Допустим, тебе повезло найти чип с памятью. Первым делом нам нужно прочитать его маркировку.
Если маркировка есть — немал шанс встретить ее именно в таком формате, как показан на картинке выше. Первые две буквы — код вендора, потом тип памяти в чипе, потом внутренний номер серии — и дальше уже четкой логики не прослеживается.
Так как единого стандарта нет и не предвидится, производители вольны писать на своих чипах, что считают нужным. Это порой приводит к коллизиям, вроде того, что представлено на той же картинке: два чипа разных производителей, оба 29-й серии, но один NOR, а другой — NAND. Короче, не угадаешь, и такие чипы приходится пробивать в поисковиках, чтобы выяснить хоть что‑то.
Типовой дизайн
Устройства одного сегмента проектируются очень похожими — это вполне очевидно. Например, все бытовые роутеры изнутри выглядят почти одинаково. Та же ситуация на рынке устройств SCADA, у которых свои каноны, но они прослеживаются везде без особых изменений.
Я расскажу о пяти категориях устройств, с которыми тебе, возможно, придется иметь дело:
- ПК;
- сетевое оборудование бытового сегмента (роутеры, свитчи, точки доступа);
- оборудование для ответственных применений (на заводах);
- IoT — интернет вещей;
- смартфоны.
Само собой, мир крутится не только вокруг смартфонов да компьютеров, но с ними у тебя шанс встретиться куда больше, чем с каким‑нибудь контроллером для управления ракетными двигателями. Поэтому давай рассмотрим типовое устройство только этих пяти категорий девайсов.
ПК
Устройство обычных ПК подразумевает модульность, то есть почти все детали можно легко вынуть. Из‑за этого на матплате из элементов памяти есть только флешка с BIOS/UEFI. При этом BIOS обычно сидит на микросхемах 24-й серии — I2C EEPROM, а в новых моделях стоит 25-я серия SPI NOR flash с UEFI.
Если же установлен взрослый интеловский процессор с поддержкой ME — на плате можно найти вторую такую же флешку, но с прошивкой для ME. Это делается в целях безопасности: находящуюся на физически отдельной микросхеме прошивку заразить или подменить сложнее.
Бытовые роутеры
С роутерами потребительского класса все довольно просто: тут ставят память SPI NOR 25-й серии, если требуется не больше 8 Мбайт, или NAND-память объемом побольше. Изредка можно найти eMMC, но мне такое пока не попадалось.
Устройства для ответственного применения
Тут все немного сложнее. Стандарты требуют странных вещей, поэтому с большим шансом устройства этой категории будут состоять из нескольких плат, соединенных переходными интерфейсами. Будет много разных запоминающих устройств, чтобы просто пройти сертификацию.
Логи обычно пишутся в EEPROM или FRAM 24-й серии, загрузчик лежит на NOR 25-й серии, а все встроенное ПО кладут на NOR 26-й, 29-й серии. NAND используют редко, а если используют — сразу большими массивами с резервированием.
IoT
Сейчас понятие IoT слишком растяжимое: по сути, туда можно записать вообще все умное домашнее и даже не очень домашнее. Из‑за этого память там может быть любая: хоть EEPROM, хоть eMMC — это когда NAND с хост‑контроллером упакованы в один чип.
Смартфоны
В смартфонах обычно все самое передовое: тут тебе и eMMC, и eUFS, и даже NVMe SSD, как у Apple. При этом, как ни крути, все эти чипы выглядят плюс‑минус одинаково, так что ты их ни с чем не спутаешь.
USB boot
Пришло время подключить Sync3 к PC по miniUSB кабелю.
Затем начинаем будить плату пакетами по CAN(с этим отлично справится даже любой elm).
Замыкаем два обведенных контакта и подаем питание 12V.
Смотрим лог() и видим:
Отлично, SoC увиделся по USB и ожидает загрузки в него кода…
Тут следует сделать небольшую ремарку. USB boot в Omap5432 это не совсем то же самое, что и загрузка с eMMC или SD карты.
Мы не можем просто отформатировать USB флешку определенным образом и загрузиться с нее, как это делается в PC.
Вместо этого по USB мы должны передать в Soc наш исполняемый код(загрузчик), а вот уже в этом загрузчике реализовать доступ к eMMC.
Однако помнит все, ну или по крайней мере многое
Как ни странно ссылки на исходники были живые.
Нас интересует в первую очередь утилита UsbBoot(Omapboot).
Тянем исходники и пробуем собрать.
Для сборки под Omap нужен тулчейн под Armv7. Можно взять тот, который в статье из wiki,
но для этого придется выкачать весь android’овский репозиторий.
Поэтому мы поступим проще и возьмем собранный тулчейн отсюда.
Отлично, теперь у нас есть что загружать в SoC. Загружаем…
После загрузки и получения ответа по USB от нашего свежесобранного загрузчика,
мы можем подключиться к Omap’у утилитой fastboot (да, да, той самой что для android) и попробовать выполнить пару команд.
Подведем промежуточный итог
- Мы научились менять порядок загрузки с USB.
- Мы научились запускать свой собственный загрузчик.
- У нас есть рабочий канал USB для взаимодействия между PC и процессором Sync’a.
Пришло время научится прошивать eMMC Sync’a своими образами, передаваемыми по USB с PC.
Чтение прошивки
Помни, что память NOR flash идет с завода без битых ячеек, а у NAND есть допустимый процент брака, так что, если в NAND видны битые ячейки, не спеши расстраиваться.
Программатор перед чтением нужно правильно настроить. В частности, надо заставить его читать все, включая системные страницы в начале и конце памяти — они бывают крайне важны!
Разработчики чипа настоятельно рекомендуют разработчикам устройства использовать свои чипы в соответствии с некоторыми правилами. Но вторые вольны не подчиняться первым, так что системные страницы порой оказываются хранилищем ключей шифрования или каких‑то других данных. В общем, читай все — лишним точно не будет.
Вот теперь у тебя есть образ, который можно грузить в IDA и ковыряться дальше, но это уже тема для отдельной статьи.
Статья написана по мотивам доклада Демида Узенькова — специалиста компании ИНФОРИОН. Выступление состоялось на конференции RuCTFE 2020. За помощь в подготовке публикации редакция благодарит команду «Хакердом».
Reformat
Пакет реформата предназначен для заводской(чистой) установки ОС Sync3.
Он состоит из 2х частей:
- MLO — Загрузчик
- QNX-IFS-REFORMAT — Образ ОС, выполняющий заводскую установку Sync3.
Именно эти файлы нам и нужно записать на eMMC. Осталось понять где именно в eMMC
они должны размещаться.
Для этого посмотрим оригинальный скрипт установки реформата.
Видим там такую строчку
Ага, значит есть некая утилита update_boot, которая в Sync выполняет всю установку.
Что ж будем ковырять ее…
Первым делом :
С параметрами стало более менее понятно, дело за малым — понять что именно эта софтина делает.
Берем гидру и засовываем наш туда.
Процесс декомпиляции выходит за рамки этой статьи. Кому интересно, вот ссылка репозиторий с говнопсевдокодом, полученным в результате декомпиляции.
В итоге получаем вот такую вот картину разметки eMMC для Sync3.
Sync3 eMMC layout
block | offset | name |
---|---|---|
0x0000 | MBR | |
0x0002 | 0x0000400 (1024) | boot bank info |
0x0100 | 0x0020000 (131072) | MLO |
0x0184 | 0x0030800 (198656) | IFS first bank |
0x7cd2 | 0x0F9A400 (16360448) | IFS second bank |
Что нужно знать о прошивке?
Устанавливать альтернативное программное обеспечение имеет смысл в ситуациях, когда приставка подтормаживает, выдает ошибки, неправильно работает, не удается воспользоваться некоторыми функциями или подключить к другому провайдеру. Однако новая операционная система полезна и тем, что может вносить какие-то изменения, например, улучшать интерфейс, изменять тип управления, добавлять новые функции, вроде поиска фильмов по всем приложениям. Не будем гадать, зачем еще вам может пригодиться другая версия прошивки, но причин действительно много.
Нюансы, которые стоит учесть при прошивке:
- Обновление часто называют прошивкой. В некоторой степени так и есть, но мы рассматривать обновление не будем, там все более-менее понятно.
- В результате перепрошивки будут удалены все пользовательские настройки ресивера или приставки. Заблаговременно нужно сохранить все необходимое на съемный накопитель, чтобы была возможность восстановить данные.
- После установки прошивки от стороннего разработчика многие производители отменяют гарантию. В случае обращения в гарантийный ремонт, придется оплачивать работы самостоятельно.
- Во время выполнения процедуры нельзя отключать приставку от питания. Это может лишить возможности запустить приставку в целом.
Память
Прежде чем я расскажу, что и как делать с памятью, давай сначала разберемся, какая она вообще бывает и как ее отличить от других компонентов на плате.
По опыту процессор (на скриншоте выше по центру) обычно квадратной формы и исполняется в BGA, а память прямоугольная и делается в SOP-корпусах.
Часто в ультрапортативных вычислительно мощных устройствах (смартфонах, например) используется бутерброд из процессора и памяти — так меньше размеры и задержки при работе. Форм‑фактор, конечно, BGA — просто потому, что ничего другого в крохотный корпус запихнуть нельзя.
ROM — постоянную память — отличить довольно легко. Предположим, чип с ней ты уже нашел. Теперь давай разберемся, какая она бывает.
Нас интересует EEPROM (Electrically Erasable Programmable Read-Only Memory), FRAM (сегнетоэлектрическая память) и NOR/NAND flash — они тебе уже и так знакомы. Из них ты мог не слышать только о FRAM — ее начали применять около пяти лет назад, так что она еще не особо популярна.
EEPROM
Среди особенностей этой памяти — побайтовые чтение и запись. Такая память самая долговечная: по расчетам, она может сохранять информацию в течение примерно двухсот лет! Но за надежность приходится платить — главным образом объемом, с котором у этого вида памяти все плохо: типичный объем такого чипа измеряется в килобайтах. Из‑за низкого объема для хранения прошивок этот тип памяти почти не применяется. Ну а раз заговорили о минусах — стоит и о низкой скорости сказать.
Устройство ячейки памяти EEPROM
Ресурс ячейки — около миллиона циклов перезаписи. По сравнению с современными ячейками NAND, у которых этот показатель находится в пределах нескольких десятков тысяч циклов, EEPROM-память просто нереально надежная.
FRAM
FRAM — это совсем новый тип энергонезависимой памяти. Промышленно его применять стали всего несколько лет назад, так что шанс встретить именно FRAM в каком‑нибудь умном холодильнике небольшой, но скоро все может поменяться. Пока что основная проблема в цене, которая несколько выше, чем у других типов памяти.
Устройство FRAM-ячейки. Похоже на DRAM, правда?
От EEPROM отличается фундаментально другим принципом запоминания информации: хранится не заряд на затворе, а знак поляризации сегнетоэлектрика. При приложении напряжения она меняется на противоположную, что позволяет читать такую память и писать в нее.
Из‑за нового принципа работы такая память значительно быстрее, чем EEPROM, но ее долговечность осталась практически неизменной.
NOR/NAND Flash
NOR/NAND-флеш‑память — это просто EEPROM, собранный в массив. NOR от NAND отличается только способом упаковки в массив, но это небольшое различие ведет к достаточно сильным отличиям в такой памяти.
NOR быстрее и надежнее, чем NAND, но стоит дороже из‑за меньшей плотности компоновки. NAND же, напротив, дешевый как мусор, но имеет проблемы с надежностью.
NOR- и NAND-память используется в SSD и всяких флешках. Из‑за низкой надежности NAND-памяти такие накопители в обязательном порядке имеют большой пул запасных ячеек, недоступных для обычного использования, и умный контроллер, который всем этим хозяйством рулит. Держать такой оверхед в ширпотребных умных мультиварках непростительно дорого, так что применяется обычно NOR, а NAND остается для пользовательских накопителей, где проблемы надежности можно переложить на пользователя, который не делает бэкапы. Хотя нет — даже в дешевых роутерах он все чаще применяется благодаря программным механизмам защиты целостности.
Сводная таблица NOR NAND FRAM EEPROM
NOR был бы идеален, если бы не его цена, так что рыночек порешал — и теперь у нас всех используется NAND почти везде. Даже во встраиваемой технике уже почти научились с ним безопасно работать — контрольные суммы, ECC-коды и резервные блоки. Красота!
Расшифровка имени
Теперь, когда нашли нужный чип и прочитали маркировку, ее нужно декодировать. Кстати, маркировка далеко не всегда читается целиком: часть может быть случайно или намеренно скрыта, а то и вовсе подделана, как любят устраивать китайцы со своими деталями на Али.
Особо крупные производители могут предоставлять на своих сайтах декодеры имени микросхемы, но почти никто так не делает.
Похвальный пример — производитель Micron, который дал на сайте внятную инструкцию и форму для получения даташита на свои микросхемы.
Если же декодера нет, придется выкручиваться. Можно попробовать разобраться по схеме на скриншоте ниже, но, естественно, безо всяких гарантий успеха. Возможно, даже лучше сразу идти к японцам — они очень любят неадекватно запутанные названия без известной логики. Она, конечно, есть, но пока что никто ее не смог понять.