mirror of https://github.com/hak5/openwrt-owl.git
scripts/om-fwupgradecfg-gen.sh: Fix u-boot image md5sum check
The u-boot on Open Mesh devices checks the whole transfered image against a md5sum. This is stored inside the option filemd5sum inside the fwupgrade.cfg. The bootloader will not check it when this setting is missing and could therefore write invalid images to the flash. Signed-off-by: Sven Eckelmann <sven@open-mesh.com> SVN-Revision: 46925owl
parent
f582a93a6a
commit
5798dfb846
|
@ -48,6 +48,7 @@ ROOTFS_FLASH_ADDR=$(addr=$(($KERNEL_FLASH_ADDR + ($KERNEL_PART_SIZE * 1024))); p
|
||||||
ROOTFS_SIZE=$(stat -c%s "$ROOTFS_PATH")
|
ROOTFS_SIZE=$(stat -c%s "$ROOTFS_PATH")
|
||||||
ROOTFS_CHECK_BLOCKS=$((($ROOTFS_SIZE / $CHECK_BS) - $MD5_SKIP_BLOCKS))
|
ROOTFS_CHECK_BLOCKS=$((($ROOTFS_SIZE / $CHECK_BS) - $MD5_SKIP_BLOCKS))
|
||||||
ROOTFS_MD5=$(md5=$(dd if=$ROOTFS_PATH bs=$CHECK_BS count=$ROOTFS_CHECK_BLOCKS 2>&- | md5sum); echo ${md5%% *})
|
ROOTFS_MD5=$(md5=$(dd if=$ROOTFS_PATH bs=$CHECK_BS count=$ROOTFS_CHECK_BLOCKS 2>&- | md5sum); echo ${md5%% *})
|
||||||
|
ROOTFS_MD5_FULL=$(md5=$(md5sum $ROOTFS_PATH); echo ${md5%% *})
|
||||||
ROOTFS_CHECK_SIZE=$(printf '0x%x' $(($ROOTFS_CHECK_BLOCKS * $CHECK_BS)))
|
ROOTFS_CHECK_SIZE=$(printf '0x%x' $(($ROOTFS_CHECK_BLOCKS * $CHECK_BS)))
|
||||||
ROOTFS_PART_SIZE=$(($MAX_PART_SIZE - $KERNEL_PART_SIZE))
|
ROOTFS_PART_SIZE=$(($MAX_PART_SIZE - $KERNEL_PART_SIZE))
|
||||||
|
|
||||||
|
@ -55,6 +56,7 @@ cat << EOF > $CFG_OUT
|
||||||
[vmlinux]
|
[vmlinux]
|
||||||
filename=kernel
|
filename=kernel
|
||||||
md5sum=$KERNEL_MD5
|
md5sum=$KERNEL_MD5
|
||||||
|
filemd5sum=$KERNEL_MD5
|
||||||
flashaddr=$KERNEL_FLASH_ADDR
|
flashaddr=$KERNEL_FLASH_ADDR
|
||||||
checksize=0x0
|
checksize=0x0
|
||||||
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; saveenv
|
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; saveenv
|
||||||
|
@ -63,6 +65,7 @@ cmd_fail=reset
|
||||||
[rootfs]
|
[rootfs]
|
||||||
filename=rootfs
|
filename=rootfs
|
||||||
md5sum=$ROOTFS_MD5
|
md5sum=$ROOTFS_MD5
|
||||||
|
filemd5sum=$ROOTFS_MD5_FULL
|
||||||
flashaddr=$ROOTFS_FLASH_ADDR
|
flashaddr=$ROOTFS_FLASH_ADDR
|
||||||
checksize=$ROOTFS_CHECK_SIZE
|
checksize=$ROOTFS_CHECK_SIZE
|
||||||
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; setenv rootfs_size_1 $ROOTFS_PART_SIZE; saveenv
|
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; setenv rootfs_size_1 $ROOTFS_PART_SIZE; saveenv
|
||||||
|
|
Loading…
Reference in New Issue