Отвязка от Ростелеком камеры DH-IPC-HDW2231RT

Видеонаблюдение

Большинство попадающих в руки, в последнее время, экземпляров производства Dahua имели не полностью заменённую, а лишь частично модифицированную оригинальную прошивку. Такие камеры определяются ConfigTool, но сбросить их админский пароль и войти в веб-морду не получается. С другой стороны, такая модифицированная прошивка заменяется оригинальной очень просто – путём выполнения нескольких команд в загрузчике.

С этой камерой всё оказалось иначе – прошивка полностью ростелекомовская, поэтому и шить придётся полностью.

Актуальная прошивка нашлась сразу на сайте производителя, но в ней отсутствует не обходимый бинарник dhboot-min.img, поэтому пришлось искать старую прошивку, в которой он есть и такая тоже нашлась. Дальше – дело техники!

Инструменты

Материалы

  • DH-IPC-HDW2231RT.zip – всё для прошивки в одном архиве.
  • commands.txt – шпаргалка.
  • DH_IPC-HX2XXX-Molec_MultiLang_PN_V2.820.0000000.65.R.250121.zip – актуальная прошивка.
  • DH_IPC-HX2XXX-Molec_MultiLang_PN_V2.820.0000000.37.R.210901.bin – прошивка с dhboot-min.img.

Утилиты

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

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

u-boot
IPL geaba80f
D-0a
128MB
BIST0_0001-OK
Load IPL_CUST from SPINAND
u16Pba: 0006
crc OK

IPL_CUST geaba80f
u16Pba: 0009
Load UBOOT from SPINAND
  decomp_size=0x000741e0


U-Boot 2015.01 (May 25 2021 - 15:27:57)

Version: I6g#######
I2C:   ready
DRAM:
WARNING: Caches not enabled
SPINAND_I:  SPINAND: _MDrv_SPINAND_GET_INFO: Found spinand INFO
(0xC8), (0x51),
SPINAND: board_nand_init: CIS contains part info
128 MiB
MMC:   MStar SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   MAC Address 00:30:1B:BA:02:DB
Status Error!
sstar_emac
Warning: sstar_emac using MAC address from net device

gpio debug MHal_GPIO_Pad_Set:599
gpio[12] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[13] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[52] is 0
gpio debug MHal_GPIO_Pad_Set:599
gpio[6] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[7] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[6] is 0
_[sdmmc_0] Err: #Cmd_8 (0x000001AA)=>(E: 0x0008)(S: 0x00000000)__(L:913)
_[sdmmc_0] Err: #Cmd_55 (0x00000000)=>(E: 0x0008)(S: 0x00000000)__(L:913)
_[sdmmc_0] Err: #Cmd_1 (0x00000000)=>(E: 0x0008)(S: 0x00000000)__(L:913)
Card did not respond to voltage select!
Invalid device index:part 0:1
help
?       - alias for 'help'
aes     - Control Mstar AES engine
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
chpart  - change active partition
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
dbg     - set debug message level. Default level is INFO
dcache  - enable or disable data cache
debug   - Disable uart rx via PAD_DDCA to use debug tool
dhcp    - boot image via network using DHCP/TFTP protocol
dstar   - script via SD/MMC
eeprom  - EEPROM sub-system
env     - environment handling commands
estar   - script via network
estart  - EMAC start
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatread - FAT fatread with FSTART
fatsize - determine a file's size
fwupdate- fwupdate command allows to flash vc camera firmware from file on mmc or from memory.
go      - start application at address 'addr'
gpio    - Config gpio port
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
initDbgLevel- Initial varaible 'dbgLevel'
loop    - infinite loop on address range
macaddr - setup EMAC MAC addr
md      - memory display
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mssdmmc - Mstar SD/MMC IP Verification System
mstar   - script via TFTP
mtdparts- define flash/nand partitions
mw      - memory write (fill)
mxp     - MXP function for Mstar MXP partition
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
readcis - Read cis block content
reset   - Perform RESET of the CPU
riu     - riu  - riu command

run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
secauth - Control Sstar security authenticate sequence
setenv  - set environment variables
sf      - SPI flash sub-system
sfbin   - for uploading sf image to a server(via network using TFTP protocol)
sigauth - Only verify digital signature without aes
srcfg   - sensor pin and mclk configuration.
tftpboot- boot image via network using TFTP protocol
ubi     - ubi commands
usb     - USB sub-system
usbboot - boot from USB device
ustar   - script via USB
version - print monitor, compiler and linker version
writecis- Search CIS in dram then write to spinand.
printenv
baudrate=115200
bootargs=mem=130840K console=ttyS0,115200 LX_MEM=0x7fc6000 mma_heap=mma_heap_name0,miu=0,sz=0x4000000 rootfstype=ramfs mtdparts=nand0:1536K(boot),512K(tech),5120K(kernel),16384K(app),-(config) hw_type=2011
bootcmd=nand read 0x22000000 0x200000 0x500000; bootm 0x22000000; setenv bootargs $(bootargs) bkp=1; nand read 0x22000000 0x700000 0x500000; bootm 0x22000000
bootdelay=0
ethact=sstar_emac
ethaddr=00:30:1b:ba:02:db
preboot=gpio output 12 1;gpio output 13 1;gpio output 52 0;gpio output 6 1;gpiooutput 7 1;gpio output 6 0; ; fwupdate mmc 0:1 firmware.bin --enable-legacy-fw --with-props
stderr=serial
stdin=serial
stdout=serial
usb_folder=images

Environment size: 690/131068 bytes

Подготовка

Разворачиваем нужный софт, вскрываем, подключаемся.

Вскрытие

Для того, чтобы добраться до UART, нужно открутить три винта, соединяющих полусферы корпуса и два винта крепления кронштейна платы.

TFTP-сервер

TFTP-сервер Tftpd64 нужно извлечь из архива и запустить. Речь идёт про портативную версию. Далее нужно положить распакованные файлы прошивки в ту же папку или в отдельную, но тогда эту отдельную папку надо указать в настройках Tftpd64. Нажатием на кнопку Show Dir можно открыть окно с содержимым текущей папки и убедиться, что файлы видны сервером.

Брандмауэр или антивирус с функцией брандмауэра должен быть отключён, либо в их настройках должен быть открыт UDP-порт 69.

UART-адаптер

Далее нужно подключить коннектор к контактным отверстиям UART-интерфейса. Ножки разъёма болтаются в отверстиях, поэтому надо либо их чуть подогнуть, либо наклонить сам коннектор, чтобы добиться надёжного соединения. Затем можно подключать адаптер к компьютеру. Исхожу из того, что драйверы уже установлены и номер порта известен.

Putty

При запуске Putty нужно выбрать тип соединения Serial, скорость 115200, прописать COM-порт, который система выделила UART-адаптеру и нажать кнопку Open.

Прошивка

Подать питание на камеру и сразу же нажать Enter. Отпустить можно тогда, когда запуск остановится и на экране появится приглашение ввода команд. Дальше нужно задать адреса камеры и компьютера с запущенным TFTP-сервером и можно шить части загрузчика.

Перед командой nand erase нужно быть на 100% уверенным, что команда tftpboot выполнена успешно и дамп передан. В противном случае получим кирпич.

setenv serverip 192.168.1.128
setenv ipaddr 192.168.1.10

mw.b 0x22000000 0xff 0x200000
tftpboot 0x22000000 dhboot-min.bin
nand erase 0x0 0x200000
nand write 0x22000000 0x0 0x200000

mw.b 0x22000000 0xff 0x100000
tftpboot 0x22000000 dhboot.bin
nand erase 0x340000 0x100000
nand write 0x22000000 0x340000 0x100000

reset

После перезапуска останавливаем загрузку клавишей * и инициализируем переменные. В этом примере ID и ethaddr, они же серийник и MAC-адрес, берём с шильдика на кабеле камеры. Теоретически серийник можно взять и из QR-кода на ИК-фильтре, как делал раньше, но облако и с ростелекомовским серийником работает.

После инициализации выполняем штатные команды обновления частей прошивки.

setenv serverip 192.168.1.128;setenv ipaddr 192.168.1.10
setenv ethaddr 6c:1c:71:a0:00:00
setenv ID 242106222000
setenv HWID IPC-HDW2231TP-AS-S2:01:02:05:75:3B:00:01:10:01:00:04:320:00:00:00:00:00:01:00:00:80
setenv devalias DH-IPC-HDW2231RT
save

run dp;run dk;run dr;run dw;run da

reset

Запуск

Запускаем утилиту ConfigTool и ждём пока в списке появится наш зверёк. Камера будет доступна по дефолтному адресу 192.168.1.108. Модель сравнительно свежая, поэтому веб-морда работает и в современных браузерах.

После прошивки камера находится в неинициализированном состоянии. Инициализировать её можно задав пароль через ConfigTool, с помощью кнопки Initiallize, либо в браузере, при первом входе.

Адрес камеры можно поменять тут же, в ConfigTool, кликнув по кнопке Batch Modify IP.

После инициализации и сброса нужно зайти в веб-морду и сделать полный сброс.

Результат

Поддерживается ONVIF и RTSP, поэтому никаких проблем с подключением к регистраторам и видеосерверам быть не должно. Ссылка RTSP:

  • rtsp://admin:password@192.168.1.11:554/cam/realmonitor?channel=1&subtype=0 – 1-й канал, 1-й поток;
  • rtsp://admin:password@192.168.1.11:554/cam/realmonitor?channel=1&subtype=1 – 1-й канал, 2-й поток.

Сначала почему-то VLC упорно не хотел открывать стандартную RTSP-ссылку, но успешно открывал ссылку, которую определила Линия, а потом и стандартная заработала. Что было – хз, но оставлю и этот вариант RTSP URL здесь:

  • rtsp://admin:password@192.168.1.108/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
  • rtsp://admin:password@192.168.1.108/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif

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