Отвязка от Ростелеком камеры IPC322SR3-VSPF28-C

Отвязка от Ростелеком

Эта модель из той же линейки, что и IPC2322EBR5-P-C и IPC2122SR3-RUO, но если с первой всё нормально и залить на неё родную прошивку не составляет большого труда, то со второй всё сложнее. Даже купив оригинальную модель Uniview IPC2122SR3-PF40-C и сняв с неё дамп, положительного результата добиться не удалось. Причина в том, что у камер IPC2122SR3-RUO и Uniview IPC2122SR3-PF40-C одна платформа (память и процессор), но разные сенсоры. Прошивка встаёт, EZTools видит камеру и в веб-морду войти можно, но картинки нет. С горя залил на IPC2122SR3-RUO прошивку от Dahua IPC-HDW1230SP и, после нехитрой доработки напильником, пользовался. Минус только в том, что переключение день/ночь не работает и приходится менять режим по расписанию.

Камера IPC322SR3-VSPF28-C прошивается аналогично IPC2122SR3-RUO, но у неё есть слот для MicroSD, а в прошивке от Dahua он не поддерживается. Не всем этот слот нужен – облако то всё равно не пашет и камеру логичнее всего подключать к регистратору, но раз слот есть – должен работать!

С камерой IPC2122SR3-RUO ковырялся достаточно долго и как-то возникла здравая мысль, как ещё можно попробовать решить задачу, но у подопытной камеры оказалась дохлая флешка с повреждением в самом неудачном месте. Пришлось отложить.

И тут присылают на отвязку IPC322SR3-VSPF28-C! Не стал терять времени даром и начал мозговой штурм. В общей сложности на это ушли почти сутки – не спалось как раз…

Здравая мысль заключалась в том, что у Uniview, подобно HWID у Dahua, есть идентификаторы железа, которые загружаются в камеру посредством файла manuinfo.txt. Прошивки охватывают целую линейку камер с небольшими конструктивными отличиями и нужно просто прописать верный идентификатор вместо неверного. Засада заключается в том, что идентификаторы представляют собой набор букв и цифр и непонятно какой конкретной железке они соответствуют.

Первым делом спросил у DeepSeek и он даже довольно уверено ответил, но ответ оказался неправильным. Продолжил общение и DeepSeek указал на некоторые закономерности в наименованиях идентификаторов, что помогло в дальнейших поисках. А дальше было обновление Убунты до актуального релиза и погружение в работу с binwalk, причём половина времени ушла на то, чтобы заставить его самого работать. Как ни крути, а Винда мне ближе и роднее…

В одном их многочисленных модулей драйверов нашёл несколько разбросанных по дампу очень подозрительных групп цифр и букв, которые и оказались искомыми идентификаторами. Дальше – дело техники! Путём перебора нашёл нужный ID, который соответствовал установленному в камере сенсору ov2735. Ну всё – хватит лирики…

Инструменты

Материалы

Утилиты

  • TFTP-сервер Tftpd64 — TFTP-сервер для передачи файлов.
  • Putty — программа для работы через UART.
  • EZTools — поисковая утилита для камер Uniview.

Исходные данные

u-boot
U-Boot 2010.06 (Aug 10 2020 - 08:20:05)

Check Flash Memory Controller v100 ... Found
SPI Nand(cs 0) ID: 0xef 0xaa 0x21 Name:"W25N01GV"
Block:128KB Page:2KB Chip:128MB*1 OOB:64B ECC:8bit/512
ECC provided by Flash Memory Controller
SPI Nand total size: 128MB
MMC:
EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
No EMMC/MMC/SD device found !
*** Warning - bad CRC or NAND, using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
hi3516cv300-vc #
help
?       - alias for 'help'
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootss  - boot from snapshot image
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
ddr     - ddr training function
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fwupdate- fwupdate command allows to flash vc camera firmware from file on mmc or from memory.
getinfo - print hardware information
go      - start application at address 'addr'
help    - print command description/usage
hi_gpio - set hisilicon gpio states
loadb   - load binary file over serial line (kermit mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - mmcinfo -- display MMC info
mtest   - simple RAM read/write test
mw      - memory write (fill)
nand    - NAND sub-system
nboot   - boot from NAND device
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sf      - SPI flash sub-system
tftp    - tftp  - download or upload image via network using TFTP protocol
ugzip   - Compress gzipfile with hardware IP
version - print monitor version
printenv
bootargs=mem=64M console=ttyAMA0,115200 rootfstype=ramfs mtdparts=hinand:1024K(boot),1024K(tech),5120K(kernel),16384K(app),-(config) hw_type=1203 ubi.mtd=3,2048
bootcmd=hi_gpio $(hi_gpios); fwupdate mmc 0:1 firmware.bin --enable-legacy-fw --with-props; nand read 0x82000000 0x200000 0x500000; bootm 0x82000000; setenv bootargs $(bootargs) bkp=1; nand read 0x82000000 0x700000 0x500000; bootm 0x82000000
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
ipaddr=192.168.1.10
serverip=192.168.1.2
netmask=255.255.255.0
bootfile="uImage"
hi_gpios=0! 40 7! 0 72! 73!
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Aug 10 2020 - 08:20:05)

Environment size: 660/131068 bytes

Подготовка

Для прошивки понадобиться подключиться к разъёму UART. Камера вскрывается легко – достаточно открутить два удерживающих купол, винта. После этого можно подключаться к разъёму UART и приступать к прошивке. Куда и как подключаться видно на фото.

В архиве IPC322SR3-VSPF28-C есть всё, что нужно – tftp-сервер, файлы прошивки, конфигурационный файл и файл со шпаргалкой – списком команд. В файл manuinfo.txt нужно внести свои серийник и MAC-адрес. MAC-адрес берётся с наклейки камеры, а серийник – с неё же, но путём распознавания QR-кода.

Подключаем UART-адаптер к компьютеру, запускаем Putty, запускаем tftp, подключаем камеру к сети и можно приступать к прошивке. Подаём питание на камеру и останавливаем загрузку комбинацией клавиш Ctrl+B.

Бэкап

Делаем резервную копию прошивки на всякий случай, хотя сам делаю так только с новыми моделями камер, а со знакомыми – не вижу смысла. Если всё же решите делать, то обычно достаточно первых 32 Мб.

setenv serverip 192.168.1.128;setenv ipaddr 192.168.1.10;save

mw.b 0x82000000 0xff 0x1000000;nand read 0x82000000 0x0 0x1000000;tftp 0x82000000 rt-ipc322sr3-vspf28-c_dump0.bin 0x1000000

mw.b 0x82000000 0xff 0x1000000;nand read 0x82000000 0x1000000 0x1000000;tftp 0x82000000 rt-ipc322sr3-vspf28-c_dump1.bin 0x1000000
Перед манипуляциями с tftp-сервером отключайте Брандмауэр Windows или, если используете какой-то другой, то его, либо ставьте порт UDP 69 в исключения.

Прошивка

Процедура прошивки аналогична той, что производится с камерой IPC8232SWC-WE.

setenv serverip 192.168.1.128
setenv ipaddr 192.168.1.10
mw.b 0x82000000 0xff 0x100000
tftp 0x82000000 uboot.bin
nand erase 0x0 0x100000
nand write 0x82000000 0x0 0x100000

reset

Запуск нового загрузчика останавливаем нажатием комбинации Ctrl+B, конфигурируем его задавая адреса сервера и самой камеры и отдаём команду прошивки.

setenv serverip 192.168.1.128
setenv ipaddr 192.168.1.10
save
update all

После завершения всех этапов прошивки подгружаем конфигурацию из manuinfo.txt и перезагружаемся.

manuinfo manuinfo.txt
config ethaddr E4:F1:4C:1B:00:00
reset

Запускаем EZTools и ждём минуты 2-3 пока камера запустится появится в окне, чтобы увидеть, какой адрес она получит.

Подключение

Веб-интерфейс в каких-то современных браузерах работает сразу, в каких-то после плясок с бубном, но часто с ограничениями. В IE работает всегда, поэтому лучше им и пользоваться.

В файлах группы есть скрипт IE.vbs, поменяв адрес в котором можно легко и просто запускать IE без ковыряния в настройках Edge. Тем более, с каждой новой версией Edge в нём прячут IE всё глубже и глубже. Сейчас, например, убрали и кнопку и пункт меню и теперь просто так страницу в режим IE не переключить, а надо зайти в настройки и внести адрес в специальный список.

При первом подключении используется пользователь admin с паролем 123456, но сразу после ввода данных авторизации будет предложено задать новый сложный пароль и указать e-mail для восстановления пароля в случае его утери. Требования к паролю жёстче, чем у Hikvision и Dahua: от 9 до 32 символов, включая все элементы следующих трех категорий: цифры, буквы и специальные знаки.

Протоколы ONVIF и RTSP работают. RTSP URL для двух потоков выглядят вот так:

  • rtsp://admin:315920_Mx@192.168.1.242/media/video1
  • rtsp://admin:315920_Mx@192.168.1.242/media/video2

где 315920_Mx – удовлетворяющий требованиям пароль.

Как и у остальных отвязываемых камер Uniview не работает родное облако.

Оцените статью
( Пока оценок нет )
МихаТроник
Добавить комментарий

  1. Дмитрий

    Приветствую. Спасибо, как раз вовремя)
    Подскажите, а почему Вы не использовали программатор CH341A?
    Как правильно слить полный дамп камеры 128MB?

    Моя Ростелекомовская камера не работает от 12V. По технической части не подскажите?

    Ответить
    1. mixatronik автор

      Привет! Не совсем понял вопрос насчёт программатора. Слить дамп чем? Программатором или через UART? Через UART не получится, т.к. там команды нужной нет, если не ошибаюсь. Через Burn, наверное, можно. Надо попробовать. Либо программатором.
      Если от 12В не запускается, то это что=-то аппаратное – тут не подскажу. Если по PoE работает, то лучше купить PoE-инжектор и через него питать.

      Ответить