|
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
|
|
# patterns
|
|
|
|
|
DEVICEEUI=ABBAABBAABBAABBA
|
|
|
|
|
APPEUI=ACCAACCAACCAACCA
|
|
|
|
|
APPKEY=ADDAADDAADDAADDAADDAADDAADDAADDA
|
|
|
|
|
|
|
|
|
|
if [ $# -ne 2 ]; then
|
|
|
|
|
echo "gen_images <master_binary> <devices_file>\n"
|
|
|
|
|
echo "devices file must be in the form :\n"
|
|
|
|
|
echo "dev1name:dev1eui:dev1appeui:dev1appkey"
|
|
|
|
|
echo "dev2name:dev2eui:dev2appeui:dev2appkey\n"
|
|
|
|
|
exit 1;
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
SED=sed
|
|
|
|
|
MASTER=$1
|
|
|
|
|
DEVICES=$2
|
|
|
|
|
|
|
|
|
|
if [[ $OSTYPE == "darwin"* ]]; then
|
|
|
|
|
if ! command -v gsed > /dev/null 2>&1; then
|
|
|
|
|
echo "You need gnu-sed on darwin system (available with homebrew)"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
SED=gsed
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ ! -e $MASTER ]; then
|
|
|
|
|
echo "The master file $MASTER doesn't exists"
|
|
|
|
|
exit 1;
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ ! -e $DEVICES ]; then
|
|
|
|
|
echo "The devices file $DEVICES doesn't exists"
|
|
|
|
|
exit 1;
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
for DEVICE in $(cat $DEVICES); do
|
|
|
|
|
name=$(echo $DEVICE | cut -d : -f 1)
|
|
|
|
|
deviceeui=$(echo $DEVICE | cut -d : -f 2)
|
|
|
|
|
appeui=$(echo $DEVICE | cut -d : -f 3)
|
|
|
|
|
appkey=$(echo $DEVICE | cut -d : -f 4)
|
|
|
|
|
echo "Generating device $name ($deviceeui)"
|
|
|
|
|
hexdump -ve '1/1 "%.2X"' $MASTER | $SED "s/${DEVICEEUI}/${deviceeui}/; s/${APPEUI}/${appeui}/; s/${APPKEY}/${appkey}/" | xxd -r -p - ${deviceeui}.bin
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
exit;
|