Для восстановления “окирпиченных” камер или живых, но с чужой прошивкой, до рабочего состояния необходим дамп. Дальше есть два варианта. Если камера не совсем “кирпич”, а её загрузчик жив и в него можно попасть, то можно залить дамп средствами загрузчика. Если же всё плохо и никаких признаков жизни камера не подаёт, то спасёт только программатор.
Для процессоров HiSilicon есть ещё один вариант – прошивка утилитой HiTool через UART. Но для этого процессор надо ввести в аварийный режим, а это операция нетривиальная. Про работу с HiTool тоже планирую написать статейку, а пока можно задавать вопросы на эту тему в группах проекта OpenIPC. Там обитают ребята, которые мне эту тему подсказали и разбираются в вопросе гораздо лучше.
Как только в руки снова попадёт подобный зверёк, дополню статью и уберу этот транспарант, а пока прошу относиться к изложенной информации с некоторой степенью недоверия 🙂
Инструменты
Материалы
- Дамп (в идеале) или прошивка
Софт
Подготовка
В деле восстановления IP-камер самое главное – это бутлоадер, он же бут, он же загрузчик. Если получается залить во флеш правильный бут, то это 99% успеха. Дальше всё штатно.
Если есть нужный дамп, то тоже всё просто. Берём программатор и заливаем дамп. Дальше правим уникальные параметры в буте и всё работает.
Дамп просто так не достать, но прошивка чаще всего находится в общем доступе и, в случае с камерами Dahua, этого может быть достаточно, хотя бывают и исключения.
Прошивка чаще всего выкладывается в заархивированном виде. Качаем и распаковываем, чтобы получить доступ к бинарнику. Далее, уже этот бинарник, распаковываем архиватором 7Zip. Он ругнётся, но это не страшно. Заходим в папку с распакованным содержимым и ищем там два файла: dhboot.bin и dhboot-min.bin. Если есть они оба, то всё прекрасно.
Например, берём прошивку камеры DH-IPC-K42AP, распаковываем и видим, что в ней оба этих файла есть. Уже хорошо.
Открываем файлы в шестнадцатеричном редакторе, например HxD и смотрим. Первые 64 байта – это заголовок. Он содержит служебную информацию и, в том числе, адрес, по которому следует прошивать содержимое. Поэтому, первым делом, нужно это заголовок отрезать, а затем залить то, что осталось по указанному адресу.
Для dhboot-min адрес прошивки: 0x00000000, а для dhboot – 0x00340000.


Удаляем заголовок и сохраняем файлы, получая готовые для прошивки бинарники.
Резервная копия
Перед тем, как шить, нужно позаботиться о возвращении к исходному состоянию, поэтому полезно сделать резервную копию, то бишь – снять дамп. Подробнее о том, как снять дамп и залить его обратно рассказано в статье Работа с памятью в загрузчике.
Если дамп с этой камеры или камеры аналогичной модели уже есть или есть уверенность, что восстановление не понадобится, то можно и пропустить этот важный шаг.
Прошивка
Прошивка через UART
Собственно, в вышеобозначенной статье Работа с памятью в загрузчике есть инфа и об этом. В даном случае надо прошить два бинарника по определённым адресам адресам. Какие конкретно команды использовать – зависит от типа памяти – NOR или NAND.
Прошивка программатором
Лично для меня прошивка программатором – это крайняя мера, когда по-другому никак не получается. Причина в том, что это требует выпаивания чипа памяти, а это не очень умею. Иногда, можно и без выпаивания, но надо цеплять прищепку или зажимы, а это тонкая операция.
Если без программатора никак, то берём CH341A, цепляем зажимы, запускаем AsProgrammer и шьём дамп, если он есть. Если нет, то надо подготовить дамп, собрав его из двух частей загрузчика в редакторе.
Изменение параметров
После прошивки дампа или загрузчика тем или иным способом надо подкорректировать значения переменных. В первую очередь HWID – это идентификатор конкретной модели камеры, BSN – серийный номер и ethaddr – MAC-адрес.
программатор есть и паять совсем не проблема, а вот найти дамп и собрать это для меня сложнее. HDW1230SP-0360B не могу найти. Мб они совместимые какие с другими моделями?
Уже всё есть и статья пишется. Ничего паять не надо – всё через UART. Осталось только перепроверить.
З.Ы. Ксттаи, можешь побыть бета-тестером. Скину все материалы и мануал. Если всё получится, значит статью можно публиковать 🙂 И так на 90% уверен, что метод рабочий, т.к. рождён совместными усилиями с камрадом @ABATAPA, но перепроверить не помешает.