105 lines
1.8 KiB
Bash
Executable File
105 lines
1.8 KiB
Bash
Executable File
#!/bin/sh -e
|
|
|
|
TARG=../release
|
|
|
|
if [ ! -d ../firmware ] ; then
|
|
echo Running from wrong directory.
|
|
exit 1
|
|
fi
|
|
|
|
cd ../firmware
|
|
|
|
if [ -d $TARG ] ; then
|
|
echo Release dir already exists
|
|
echo please remove/move away
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f SECRETS.release ] ; then
|
|
echo Please create a SECRETS.release file
|
|
echo containing the release keys.
|
|
echo
|
|
echo 'Do not commit them!'
|
|
exit 1
|
|
fi
|
|
|
|
cp SECRETS.release SECRETS
|
|
|
|
mkdir $TARG
|
|
mkdir $TARG/files
|
|
|
|
echo "###"
|
|
echo "### Building initial"
|
|
echo "###"
|
|
|
|
git checkout filesystem/ffconf.h
|
|
make clean
|
|
make APP=initial
|
|
cp firmware.bin $TARG/initial.bin
|
|
|
|
echo "###"
|
|
echo "### Building final"
|
|
echo "###"
|
|
export FINAL=y
|
|
cp filesystem/ffconf.h-final filesystem/ffconf.h
|
|
make clean
|
|
./l0dable/mktable.pl
|
|
make APP=final
|
|
cp firmware.elf $TARG/final.elf
|
|
cp firmware.bin $TARG/final.bin
|
|
|
|
echo "###"
|
|
echo "### Building crypto"
|
|
echo "###"
|
|
(cd ../tools/crypto && make)
|
|
|
|
echo "###"
|
|
echo "### Gathering files"
|
|
echo "###"
|
|
cp ../tools/font/binary/*.f0n $TARG/files/
|
|
cp ../tools/image/lcd/*.lcd $TARG/files/
|
|
cp ../tools/image/lcd/i42.lcd $TARG/files/nick.lcd
|
|
|
|
echo "###"
|
|
echo "### Gathering loadables"
|
|
echo "###"
|
|
# XXX: add crypto stuff
|
|
(cd l0dable && make)
|
|
mv l0dable/*.c0d $TARG/files/
|
|
mv l0dable/*.int $TARG/files/
|
|
mv l0dable/*.nik $TARG/files/
|
|
|
|
if grep -q 'define ENCRYPT_L0DABLE' SECRETS ; then
|
|
|
|
echo "###"
|
|
echo "### Crypting loadables"
|
|
echo "###"
|
|
|
|
skey=`./getkey.pl l0dable_sign`
|
|
ekey=`./getkey.pl l0dable_crypt`
|
|
|
|
if [ -z "$ekey" ] ; then
|
|
echo E-Key fail
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$skey" ] ; then
|
|
echo S-Key fail
|
|
exit 1
|
|
fi
|
|
|
|
for a in $TARG/files/*.c0d $TARG/files/*.int $TARG/files/*.nik ; do
|
|
echo Crypting $a
|
|
../tools/crypto/xxtea -e -k $ekey $a
|
|
../tools/crypto/xxtea -s -k $skey $a
|
|
done
|
|
|
|
fi
|
|
|
|
echo "###"
|
|
echo "### Done. Yay!"
|
|
echo "###"
|
|
|
|
git checkout SECRETS
|
|
git checkout filesystem/ffconf.h
|