wok diff syslinux/stuff/iso2exe/iso2exe.sh @ rev 17496
syslinux/iso2exe: check ISO md5 (again)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Jan 05 12:38:18 2015 +0100 (2015-01-05) |
parents | aa46cf9cc35a |
children | 00bb1e4137c6 |
line diff
1.1 --- a/syslinux/stuff/iso2exe/iso2exe.sh Sat Jan 03 21:41:48 2015 +0100 1.2 +++ b/syslinux/stuff/iso2exe/iso2exe.sh Mon Jan 05 12:38:18 2015 +0100 1.3 @@ -37,11 +37,6 @@ 1.4 mkdir -p $TMP/bin $TMP/dev 1.5 cp -a /dev/?d?* /dev/tty /dev/tty0 $TMP/dev 1.6 $0 --get init > $TMP/init.exe 1.7 - if [ $(stat -c %s $1) -gt 32768 ]; then 1.8 - echo "Compute ISO image md5 ..." 1.9 - sed -i "s/^ISOMD5.*/ISOMD5=$(ddq if=$1 bs=32k skip=1 | \ 1.10 - md5sum | cut -c-32)/" $TMP/init.exe 1.11 - fi 1.12 # mount -o loop,ro $1 $TMP 1.13 # oldslitaz="$(ls $TMP/boot/isolinux/splash.lss 2> /dev/null)" 1.14 # umount -d $TMP 1.15 @@ -242,9 +237,21 @@ 1.16 add_fdbootstrap $1 1.17 printf "%d free bytes in %04X..%04X\n" $(($OFS-$HOLE)) $HOLE $OFS 1.18 store 26 ${RANDOM:-0} $1 1.19 - echo -n "Adding checksum..." 1.20 + if [ $(stat -c %s $1) -gt 32768 ]; then 1.21 + echo "Adding ISO image md5 ..." 1.22 + echo -en "$(ddq if=$1 bs=32k skip=1 | md5sum | cut -c-32 | sed \ 1.23 + 's/\(..\)/\\x\1/g')" | ddq bs=16 seek=2047 conv=notrunc of=$1 1.24 + fi 1.25 + echo -n "Adding boot checksum..." 1.26 store 64 $(od -v -j 66 -N 32702 -t u2 -w2 -An $1 | \ 1.27 awk '{ i+= $0 } END { print -(i % 65536) }') $1 1.28 + if [ $(stat -c %s $1) -gt 32768 ]; then 1.29 + n=$(($(get 2 $1) - 1 + ($(get 4 $1) - 1)*512)) 1.30 + n=$(($(od -v -N $n -t u2 -w2 -An $1 | \ 1.31 + awk '{ i+= $0 } END { print (i % 65536) }') \ 1.32 + + $(get $(($n+1)) $1 1))) 1.33 + store 18 $(( (-$n -1) % 65536 )) $1 1.34 + fi 1.35 echo " done." 1.36 } 1.37