DF-2652 / build.sh
#!/bin/sh # DF-2652 build: forge the mismark image (and the CHECK_NONE bleed variant). set -e cd "$(dirname "$0")" [ -f base2651.img ] || (gunzip -kf base2651.img.gz 2>/dev/null || cp ../DF-2651/base2651.img.gz . && gunzip -kf base2651.img.gz) python3 forge_2652.py base2651.img forge2652.img # bleed variant: fileA's DATA brefs get CHECK_NONE so reads of the # overwritten chunk return foreign bytes instead of failing the CRC. python3 - <<'EOF' import struct, sys sys.path.insert(0, '.') from h2common import recompute_volhdr_crcs img = bytearray(open('forge2652.img','rb').read()) n = 0 for e in range(128): o = 0x2000000 + e*128 # fileA indirect block if img[o] == 3: img[o+1] = 0x00 # CHECK_NONE n += 1 assert n == 24, n recompute_volhdr_crcs(img) open('forge2652b.img','wb').write(img) print("bleed variant: forge2652b.img (CHECK_NONE on %d DATA brefs)" % n) EOF echo "built forge2652.img forge2652b.img" |