mirror of
https://github.com/JamesonHuang/OpenWrt_Luci_Lua.git
synced 2024-11-23 22:00:11 +00:00
119 lines
2.9 KiB
Bash
119 lines
2.9 KiB
Bash
#!/bin/bash -
|
|
#===============================================================================
|
|
#
|
|
# FILE: cfe.sh
|
|
#
|
|
# USAGE: ./cfe.sh
|
|
#
|
|
# DESCRIPTION:
|
|
#
|
|
# OPTIONS: ---
|
|
# REQUIREMENTS: ---
|
|
# BUGS: ---
|
|
# NOTES: ---
|
|
# AUTHOR: Karl Zheng (), ZhengKarl#gmail.com
|
|
# COMPANY: Meizu
|
|
# CREATED: 2014年11月03日 10时27分13秒 CST
|
|
# REVISION: ---
|
|
#===============================================================================
|
|
|
|
#set -o nounset # Treat unset variables as an error
|
|
|
|
function flash_trx_img()
|
|
{
|
|
function find_img_file()
|
|
{
|
|
local fn=openwrt-bcm53xx-bcm4709-meizu-r10-squashfs.trx
|
|
local buildDirFn=build_dir/target-arm-openwrt-linux-uclibcgnueabi/linux-bcm53xx/${fn}
|
|
dlf=${fn}
|
|
if [ ! -f ${fn} ];then
|
|
if [ -f ${buildDirFn} ];then
|
|
dlf=${buildDirFn}
|
|
else
|
|
dlf=`find -name ${fn} | head -n 1`
|
|
fi
|
|
fi
|
|
if [ ! -f "${dlf}" ];then
|
|
fn=openwrt-ramips-mt7628-mt7628-squashfs-sysupgrade.bin
|
|
buildDirFn=build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/${fn}
|
|
if [ ! -f ${fn} ];then
|
|
if [ -f ${buildDirFn} ];then
|
|
dlf=${buildDirFn}
|
|
else
|
|
dlf=`find -name ${fn} | head -n 1`
|
|
fi
|
|
else
|
|
dlf=${fn}
|
|
fi
|
|
fi
|
|
echo "dlf:"
|
|
echo "${dlf} "
|
|
type xclip
|
|
if [ $? == 0 ];then
|
|
echo -n ${dlf} | xclip
|
|
fi
|
|
}
|
|
|
|
find_img_file
|
|
local flaship="192.168.233.1"
|
|
ping -W 2 -c 1 ${flaship}
|
|
if [ $? != 0 ];then
|
|
ping -W 2 -c 1 "192.168.232.1"
|
|
if [ $? != 0 ];then
|
|
flaship="192.168.1.1"
|
|
else
|
|
flaship="192.168.232.1"
|
|
fi
|
|
fi
|
|
echo "flaship: ${flaship}"
|
|
|
|
function downloadfw_by_cfe()
|
|
{
|
|
local p=`cat <<-EOF
|
|
-F "Upload=Upload"
|
|
EOF`
|
|
curl -F files=@${dlf} ${p} --referer "http://${flaship}/" \
|
|
http://${flaship}/f2.htm
|
|
}
|
|
|
|
function downloadfw_by_openwrt()
|
|
{
|
|
local sf="/tmp/luci_session.file"
|
|
curl "http://${flaship}/cgi-bin/luci/bs/token" 2>/dev/null > ${sf}
|
|
local token=$(cat ${sf} | json_xs -t yaml |grep token |awk '{print $2}')
|
|
local sysauth=$(cat ${sf} | json_xs -t yaml |grep sysauth |awk '{print $2}')
|
|
local clean_param=""
|
|
if [ $# -gt 0 ];then
|
|
if [ $1 == "clean" ];then
|
|
#clean_param='-F "clean=1"'
|
|
clean_param='-F clean=1'
|
|
echo clean_param="${clean_param}"
|
|
fi
|
|
fi
|
|
echo curl -b "sysauth=${sysauth}; sysauth=" ${clean_param} -F f=@${dlf} "http://${flaship}/cgi-bin/luci/;stok=${token}/api/localupgrade"
|
|
curl -b "sysauth=${sysauth}; sysauth=" ${clean_param} -F f=@${dlf} "http://${flaship}/cgi-bin/luci/;stok=${token}/api/localupgrade"
|
|
}
|
|
|
|
if [ "x${dlf}" == "x" ];then
|
|
echo "Not found firmware image in cur dir."
|
|
exit 1;
|
|
fi
|
|
|
|
echo "Are you really want to download file: "
|
|
echo "${dlf} "
|
|
echo "?"
|
|
read -p "y|n" c
|
|
if [ "x${c}" == "xy" -o "x${c}" == "xY" -o "x${c}" == "x" ];then
|
|
curl -m 5 "http://${flaship}/cgi-bin/luci/bs/token" |grep token
|
|
if [ $? == 0 ];then
|
|
downloadfw_by_openwrt "$@"
|
|
else
|
|
downloadfw_by_cfe
|
|
fi
|
|
else
|
|
echo "Cancled download!!"
|
|
fi
|
|
}
|
|
|
|
flash_trx_img "$@"
|