wok diff syslinux/stuff/iso2exe/iso2exe.sh @ rev 17562

syslinux/iso2exe: use iso size to compute md5sum
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Feb 07 15:39:46 2015 +0100 (2015-02-07)
parents 26654c1a7ca7
children 52c9cc2da3c6
line diff
     1.1 --- a/syslinux/stuff/iso2exe/iso2exe.sh	Mon Jan 05 12:38:18 2015 +0100
     1.2 +++ b/syslinux/stuff/iso2exe/iso2exe.sh	Sat Feb 07 15:39:46 2015 +0100
     1.3 @@ -205,7 +205,8 @@
     1.4  	*)	cat > /dev/null
     1.5  	esac
     1.6  	
     1.7 -	[ ! -s "$1" ] && echo "usage: $0 image.iso [--undo]" 1>&2 && exit 1
     1.8 +	[ ! -s "$1" ] &&
     1.9 +	echo "usage: $0 image.iso [--undo|\"DOS help message\"]" 1>&2 && exit 1
    1.10  	case "${2/--/-}" in
    1.11  	-u*|-r*|-w*)
    1.12  	    case "$(get 0 $1)" in
    1.13 @@ -237,10 +238,13 @@
    1.14  	add_fdbootstrap $1
    1.15  	printf "%d free bytes in %04X..%04X\n" $(($OFS-$HOLE)) $HOLE $OFS
    1.16  	store 26 ${RANDOM:-0} $1
    1.17 -	if [ $(stat -c %s $1) -gt 32768 ]; then
    1.18 -		echo "Adding ISO image md5 ..."
    1.19 -		echo -en "$(ddq if=$1 bs=32k skip=1 | md5sum | cut -c-32 | sed \
    1.20 -		  's/\(..\)/\\x\1/g')" | ddq bs=16 seek=2047 conv=notrunc of=$1
    1.21 +	[ "$2" ] && echo "$2               " | \
    1.22 +		ddq bs=1 seek=$((0x7FDE)) count=15 conv=notrunc of=$1
    1.23 +	if [ $(stat -c %s $1) -gt 34816 ]; then
    1.24 +		echo "Adding ISO image md5 at 7FF0 (16 bytes) ..."
    1.25 +		echo -en "$(ddq if=$1 bs=2k skip=16 count=$(get 32848 $1) | \
    1.26 +			md5sum | cut -c-32 | sed 's/\(..\)/\\x\1/g')" | \
    1.27 +			ddq bs=16 seek=2047 conv=notrunc of=$1
    1.28  	fi
    1.29  	echo -n "Adding boot checksum..."
    1.30  	store 64 $(od -v -j 66 -N 32702 -t u2 -w2 -An $1 | \