#!/bin/sh ######################################### # simthefon.sh # # simulating the fonera # # # # by futejia # # futejia.blog@gmail.com # # http://futejia.blogspot.com/ # # # # updated to work on dd-wrt by krikkit # # http://www.krikkit.net/contact # # 2007/02/02 # ######################################### WLMAC=00:18:XX:XX:XX:XX #the WLAN mac-adress MAC=00:18:XX:XX:XX:XX #the WAN mac-adress FONREV=2 FIRMWARE=0.7.1 FONKEY=/tmp/simthefon/key #the path to the fon-public-key DEVICE="fonera" CHILLVER="1.0" THCLVER="1.0" echo "* start mode..." echo "mode='start' wlmac='$WLMAC' mac='$MAC' fonrev='$FONREV' firmware='$FIRMWARE' chillver='$CHILLVER' thclver='$THCLVER' device='$DEVICE'" | dbclient -T -p 1937 -i $FONKEY openwrt@download.fon.com > startscript while true; do echo "* starting cron mode..." echo "* making connection to fon" echo "mode='cron' wlmac='$WLMAC' mac='$MAC' fonrev='$FONREV' firmware='$FIRMWARE'" | dbclient -T -p 1937 -i $FONKEY openwrt@download.fon.com > newscript if cat newscript | grep http > /dev/null 2>&1 then echo "* downloading a new version" DWL_DATE=$(date +%Y%m%d-%H%M) FON_FILE=$DWL_DATE.fon wget -q -O $FON_FILE $(cat newscript | grep http | awk '{print $2}') rm newscript #begin untar package dd if=$FON_FILE of=VERSION_FILE bs=1 count=4 > /dev/null 2>&1 VERSION=$(cat VERSION_FILE) rm VERSION_FILE dd if=$FON_FILE of=OFFSET_FILE bs=1 count=3 skip=4 > /dev/null 2>&1 OFFSET=$(expr $(cat OFFSET_FILE)) rm OFFSET_FILE dd if=$FON_FILE of=SIGNATURE_FILE bs=1 count=$OFFSET skip=7 > /dev/null 2>&1 rm SIGNATURE_FILE TO_SKIP=$(expr $OFFSET + 7) dd if=$FON_FILE of=tar_file bs=1 skip=$TO_SKIP > /dev/null 2>&1 tar zx -f ./tar_file rm ./tar_file UPGRADE_FILE=$(cat upgrade | grep tar | awk '{print $3}') rm -f ./upgrade rm -f hotfix mkdir fon-firmware > /dev/null 2>&1 tar xzf $UPGRADE_FILE -C fon-firmware/ rm $UPGRADE_FILE #end untar package #begin get new versions FONREV=$(cat fon-firmware/etc/fon_revision) FIRMWARE=$(cat fon-firmware/etc/fon_version) echo "* Version is now $FIRMWARE, Revision is now $FONREV" #end get new versions else echo "* Can't find a new version"; fi RANDOM_S=$((0x$(head -c2 /dev/urandom | hexdump | awk '$2 > 0 {print $2}') % 3600)) TIMTS=$(echo "`expr 3600 + $RANDOM_S`") echo "* going to sleep for $TIMTS seconds" sleep $TIMTS done;