default: flash clean: rm -f blob-original blob-pad blob-1 blob-2 blob-1-hacked blob-hacked blob-original: boot_usb ./boot_usb read 0x80000 131072 $@ flash: blob-original blob-hacked boot_usb mv blob-original blob-backup-$(shell date +%Y%m%d) ./boot_usb flash 0x80000 blob-hacked ./boot_usb off rm -f blob-hacked blob-pad: blob-original dd if=$< of=$@ bs=1024 count=2 blob-1: blob-original dd if=$< of=$@ bs=1024 skip=2 count=2 blob-2: blob-original dd if=$< of=$@ bs=1024 skip=4 blob-1-hacked: blob-1 md5="$(firstword $(shell md5sum $<))"; \ if [ "$$md5" != "1a6b7a5b1972ef3f457f476788789ec8" ]; then \ exit 1; \ fi; dd if=$< bs=1 count=32 > $@ # code /bin/echo -ne "\x00\x60\xa0\xe1" >> $@ # mov r6, r0 /bin/echo -ne "\x00\x00\xa0\xe1" >> $@ # nop dd if=$< bs=1 skip=40 count=60 >> $@ # code /bin/echo -ne "\xd0\x41\x9f\xe5" >> $@ # ldr r4, [pc, #464] /bin/echo -ne "\x00\x50\x94\xe5" >> $@ # ldr r5, [r4] /bin/echo -ne "\x00\x50\x84\xe5" >> $@ # str r5, [r4] /bin/echo -ne "\xc8\x41\x9f\xe5" >> $@ # ldr r4, [pc, #456] /bin/echo -ne "\x01\x00\x15\xe3" >> $@ # tst r5, #1 /bin/echo -ne "\x14\x00\x00\x1a" >> $@ # bne 0xd0 /bin/echo -ne "\x04\x00\x15\xe3" >> $@ # tst r5, #4 /bin/echo -ne "\x12\x00\x00\x0a" >> $@ # beq 0xd0 /bin/echo -ne "\xac\x11\x9f\xe5" >> $@ # ldr r1, [pc, #428] /bin/echo -ne "\x00\x20\x91\xe5" >> $@ # ldr r2, [r1] /bin/echo -ne "\x00\x00\x52\xe3" >> $@ # cmp r2, #0 /bin/echo -ne "\x00\x00\x00\x0a" >> $@ # beq 0x98 /bin/echo -ne "\x02\xf0\xa0\xe1" >> $@ # mov pc, r2 /bin/echo -ne "\xca\x12\xa0\xe3" >> $@ # mov r1, #0xa000000c /bin/echo -ne "\x00\x60\x81\xe5" >> $@ # str r6, [r1] /bin/echo -ne "\x0a\x12\xa0\xe3" >> $@ # mov r1, #0xa0000000 /bin/echo -ne "\x00\x20\x91\xe5" >> $@ # ldr r2, [r1] /bin/echo -ne "\x94\x31\x9f\xe5" >> $@ # ldr r3, [pc, #404] /bin/echo -ne "\x03\x00\x52\xe1" >> $@ # cmp r2, r3 /bin/echo -ne "\x08\x00\x00\x1a" >> $@ # bne 0xd8 /bin/echo -ne "\x4a\x12\xa0\xe3" >> $@ # mov r1, #0xa0000004 /bin/echo -ne "\x00\xf0\x91\xe5" >> $@ # ldr pc, [r1] /bin/echo -ne "\x00\x00\xa0\xe1" >> $@ # nop /bin/echo -ne "\x00\x00\xa0\xe1" >> $@ # nop /bin/echo -ne "\x00\x00\xa0\xe1" >> $@ # nop /bin/echo -ne "\x00\x00\xa0\xe1" >> $@ # nop /bin/echo -ne "\x00\x00\xa0\xe1" >> $@ # nop /bin/echo -ne "\x0a\x12\xa0\xe3" >> $@ # mov r1, #0xa0000000 /bin/echo -ne "\x00\x20\x91\xe5" >> $@ # ldr r2, [r1] dd if=$< bs=1 skip=216 count=352 >> $@ # data /bin/echo -ne "\x08\x00\xf0\x40" >> $@ # PSPR dd if=$< bs=1 skip=572 >> $@ blob-hacked: blob-pad blob-1-hacked blob-2 md5="$(firstword $(shell md5sum blob-1-hacked))"; \ if [ "$$md5" != "203f6a37da5f28daaed935755690ee72" ]; then \ exit 1; \ fi; cat blob-pad blob-1-hacked blob-2 > blob-hacked rm -f blob-pad blob-1-hacked blob-1 blob-2