sobota 22. listopadu 2025

Build plnohodnotného Busyboxu pro kameru Reolink P330M

Kamera Reolink P330M má uvnitř přístupné piny sériové linky, konzole je chráněná heslem bc2020. Procesor je ARMv7 (NA51089), 128MB SPI Flash (4bit, 8 MHz) a 512 MB RAM.


Použil jsem busybox-1_36_1 (https://github.com/mirror/busybox/archive/refs/tags/1_36_1.zip)

export ARCH=arm

export CROSS_COMPILE=arm-linux-gnueabihf-

Pak už klasicky, v mém případě bylo potřeba vypnout podporu TC (traffic control, Networking Utilities ---> tc)

make defconfig

make menuconfig

make -j 6


Ještě k exkrakci dat z paměti:

Linuxové jádro nám vypíše toto:

11 fixed-partitions partitions found on MTD device spi_nand.0
Creating 11 MTD partitions on "spi_nand.0":
0x000000000000-0x000000040000 : "loader"
0x000000040000-0x000000080000 : "fdt"
0x000000080000-0x000000180000 : "uboot"
0x000000180000-0x000000580000 : "kernel"
0x000000580000-0x000001480000 : "rootfs"
0x000001480000-0x000001f80000 : "app"
0x000001f80000-0x000002380000 : "para"
0x000002380000-0x000002400000 : "sp"
0x000002400000-0x000002480000 : "ext_para"
0x000002480000-0x000004000000 : "download"
0x000000000000-0x000004000000 : "all"

Takže nám stačí uložit "all" tedy /dev/mtd10, která obsahuje všechno.
Na začátku je loader, pak device tree, ten můžeme exportovat a převést na kód takto:

dd if=mtd10_dump.bin of=dt.bin bs=262144 skip=1 count=1
dtc -I dtb -O dts -o device_tree.dts dt.bin

To samé můžeme udělat s U-Bootem (výraz si zjednodušíme zadáním přímo hodnot v hexa :-)):
dd if=mtd10_dump.bin of=uboot.bin bs=512k skip=$((0x80000/512/1024)) count=$(((0x180000-0x80000)/512/1024))

dd if=mtd10_dump.bin of=sp.bin bs=512K skip=71 count=1

V oddílu sp jsem našel prvátní klíč:
echo "-----BEGIN RSA PRIVATE KEY-----" >  private.key
grep -a '<PrivateKeyRsaPem>' sp.bin | sed 's/<PrivateKeyRsaPem>//g; s/<\/PrivateKeyRsaPem>//g' >> private.key
echo "-----END RSA PRIVATE KEY-----" >> private.key

openssl rsa -in private.key -check

Funguje. :-)

https://serhack.me/articles/operating-system-reolink-rlc-810-a/

Žádné komentáře:

Okomentovat