mir3c/squashfs-root/lib/preinit/31_restore_nvram

65 lines
1.7 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
. /lib/functions.sh
restore_nvram () {
restore=`nvram get restore_defaults`
country=`nvram get CountryCode`
if [ "$restore" = "1" ]; then
flag_name=`uci get misc.mount_bind_etc.flag_name`
nvram set $flag_name=1
mtd erase overlay
fi
wl1_ssid=`nvram get wl1_ssid`
if [ -z "$wl1_ssid" ]; then
nvram_corrupt=1
fi
ft_mode=`cat /proc/xiaoqiang/ft_mode`
if [ "$ft_mode" != "1" ]; then
nvam_sn=`nvram get SN`
if [ -z "$nvam_sn" ]; then
nvram_corrupt=1
fi
fi
#restore: 1, 恢复出厂设置2ota升级
#nvram_corrupt: 1, nvram被破坏
if [ -s /usr/share/xiaoqiang/xiaoqiang-defaults.txt ]; then
if [ "$restore" = "1" ] || [ "$restore" = "2" ] || [ "$nvram_corrupt" = "1" ]; then
if [ "$restore" = "1" ]; then
nvram clear /usr/share/xiaoqiang/xiaoqiang-reserved.txt
fi
cat /usr/share/xiaoqiang/xiaoqiang-defaults.txt | while read line
do
nvram set "$line"
done
bdata sync
if [ "$restore" = "2" ];then
nvram set CountryCode=$country
fi
if [ "$restore" = "1" ];then
num=`nvram get wl1_ssid | cut -b 8-11`
temp=0x"$num"
newnum="000"`printf "%x\n" $((0xffff-$temp))`
pos=`expr length $newnum - 4`
newnum=`echo ${newnum:$pos:4} | tr [a-z] [A-Z]`
ssid2G=`nvram get wl1_ssid`
result2G=`echo $ssid2G"_"$newnum`
nvram set wl1_ssid=$result2G
fi
nvram commit
echo "nvram restore done."
fi
fi
}
boot_hook_add preinit_main restore_nvram