Skip to content

Instantly share code, notes, and snippets.

@bassrock
Last active May 5, 2016 15:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bassrock/8053d22493785b92958f to your computer and use it in GitHub Desktop.
Save bassrock/8053d22493785b92958f to your computer and use it in GitHub Desktop.
Recreates the Platform PRG for the NEX Decks from a zip.
#! /bin/sh
#requires http://www.paragon-software.com/home/extfs-mac/
AVICZIP=$1
mkdir -p work
unzip $AVICZIP -d work/
cd work/AVIC5000NEX/PLATFORM
dd if=PJ140PLT.PRG of=PJ140PLT.IMG bs=512 skip=1
dd if=PJ140PLT.PRG of=PJ140PLT.HEADER bs=512 count=1
MOUNTPOINT="$(hdiutil mount PJ140PLT.IMG)"
array=(`echo ${MOUNTPOINT}`)
read -p "You can now modify the img. Enter when done" isdone
hdiutil unmount "${array[0]}"
defaultheader="00010801010000000100000000000000504A313430504C5402100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
SIZE="$(stat -f%z PJ140PLT.IMG)"
echo "IMG size is: $SIZE"
#We have to swap the hex values from big endian to little endian cause the NEX is arm.
UNSWAPPEDHEXSIZE="$(printf '%x\n' $SIZE)"
vSIZE="$UNSWAPPEDHEXSIZE"
SWAPPEDHEXSIZE="${vSIZE:6:2}${vSIZE:4:2}${vSIZE:2:2}${vSIZE:0:2}"
echo "Unswapped size hex is: $UNSWAPPEDHEXSIZE"
echo "Swapped size hex is: $SWAPPEDHEXSIZE"
UNSWAPPEDHEXCRC="$(crc32 PJ140PLT.IMG)"
vCRC="$UNSWAPPEDHEXCRC"
SWAPPEDHEXCRC="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"
echo "Unswapped crc hex is: $UNSWAPPEDHEXCRC"
echo "Swapped crc hex is: $SWAPPEDHEXCRC"
perl -e "print pack 'H*', 'A55A5AA5${SWAPPEDHEXSIZE}${SWAPPEDHEXCRC}${defaultheader}'" > PJ140PLT.HEADERNEW
cat PJ140PLT.HEADERNEW PJ140PLT.IMG > PJ140PLT.PRG
rm -rf PJ140PLT.IMG
rm -rf PJ140PLT.HEADERNEW
defaultheaderver="A55A5AA5C00000000001080101000000010000002C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF010000000100000050004C004100540046004F0052004D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000050004A0031003400300050004C0054002E005000520047000000000000000000000000000000000000000000000000000000000000000000"
SIZE="$(stat -f%z PJ140PLT.PRG)"
echo "PRG size is: $SIZE"
UNSWAPPEDHEXSIZE="$(printf '%x\n' $SIZE)"
vSIZE="$UNSWAPPEDHEXSIZE"
SWAPPEDHEXSIZE="${vSIZE:6:2}${vSIZE:4:2}${vSIZE:2:2}${vSIZE:0:2}"
echo "Unswapped prg size hex is: $UNSWAPPEDHEXSIZE"
echo "Swapped prg size hex is: $SWAPPEDHEXSIZE"
UNSWAPPEDHEXCRC="$(crc32 PJ140PLT.PRG)"
vCRC="$UNSWAPPEDHEXCRC"
SWAPPEDHEXCRC="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"
echo "Unswapped prg crc hex is: $UNSWAPPEDHEXCRC"
echo "Swapped prg crc hex is: $SWAPPEDHEXCRC"
cd ..
perl -e "print pack 'H*', '${defaultheaderver}${SWAPPEDHEXSIZE}${SWAPPEDHEXCRC}A55A5AA5'" > PJ140PLT.VERSTART
UNSWAPPEDHEXCRC="$(crc32 PJ140PLT.VERSTART)"
vCRC="$UNSWAPPEDHEXCRC"
SWAPPEDHEXCRC="${vCRC:6:2}${vCRC:4:2}${vCRC:2:2}${vCRC:0:2}"
echo "Unswapped verstart crc hex is: $UNSWAPPEDHEXCRC"
echo "Swapped verstart crc hex is: $SWAPPEDHEXCRC"
perl -e "print pack 'H*', '${SWAPPEDHEXCRC}'" > PJ140PLT.VERSTART1
cat PJ140PLT.VERSTART PJ140PLT.VERSTART1 > PJ140PLT.VER
rm -rf PJ140PLT.VERSTART
rm -rf PJ140PLT.VERSTART1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment