Репак прошивки xm

mkdir fw
cd fw 
unzip ../309E5_F37_20201012.bin
rm imagetypes
for f in *.img ;
do
  ls -la $f >> imagetypes ;
  dumpimage -l $f >> imagetypes ;
done;
cat imagetypes

Тут запомнить нужно Load Address: 0x00X00000, Entry Point: 0x00XX0000

Дальше распаковка uImage

for f in *.img ; do  dumpimage  -o $f.extracted $f ; done;
file *.extracted

Смотрим типы фс. Squashfs filesystem – squashfs, Linux Compressed ROM File System data – cramfs

unsquashfs -d user-x.cramfs.img.fs user-x.cramfs.img.extracted
cramfsck -x custom-x.cramfs.img.fs custom-x.cramfs.img.extracted

Пакуем обратно

pushd user-x.cramfs.img.fs/
mksquashfs . ../user-x.cramfs.img.extracted.new  -comp xz
popd
mkimage -A arm -O linux -T ramdisk -n "linux" -e 0x00770000 -a 0x00300000 -d user-x.cramfs.img.extracted.new user-x.cramfs.img

Cramfs

pushd custom-x.cramfs.img.fs
mkcramfs -n data . ../custom-x.cramfs.img.extracted.new
popd
mkimage -A arm -O linux -T ramdisk -n "linux" -e 0x007B0000 -a 0x00770000 -d custom-x.cramfs.img.extracted.new custom-x.cramfs.img

В InstallDesc убрать подпись и контрольную сумму. И в бин для закачки

zip ../`date +"%y%m%d%H%M"`_new.bin *.img InstallDesc

Если размер img получился больше раздела – в u-boot.env нужно править mtdparts=.

Если заменять тип образа – нужно исправить romfs-x.cramfs.img.fs/etc/init.d/rcS

Изображение по умолчанию
sa
Статьи: 12

Ответить