FactoryReset.sh
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
Update_Package="/root/Package"
HardwareIdentification="HardwareIdeNum" #硬件码文件
TarPackage_second=UpgradePackage.tar.gz #二次解压包的名字
MD5saveFile=UpdateMD5num #md5文件内部的md5值文件
delete_ResetFile(){
rm -rf /root/upgrade.tar.gz; #删除一次压缩包
rm -rf /root/$MD5saveFile; #删除md5校准文件
rm -rf /root/$TarPackage_second; #删除二次压缩包
rm -rf /root/FactoryReset.sh
}
# 恢复出厂设置
rm -rf /root/upgrade.tar.gz
cp /root/FactorySetting/FactoryResetPack.tar.gz /root/upgrade.tar.gz;
cd /root/;
tar -zxvf upgrade.tar.gz;
# 校验mp5 失败直接删除
# 获取文件的md5值
md5_File="$(md5sum "${TarPackage_second}" | cut -d ' ' -f 1)"
echo 文件的md5为:$md5_File
# 读取文件第一行并删除不可见字符
md5_save=$(sed '1s/[^[:print:]]//g' "$MD5saveFile")
echo 读取的md5为:$md5_save
# 比较md5值是否匹配
if [ "$md5_File" == "$md5_save" ]; then
echo "MD5 matches: $md5_File"
else
echo "MD5 does not match. "
echo "恢复出厂MD5校验失败" > /root/sdcard/FactorySetting_log.txt
exit;
fi
# 二次解压
tar -zxvf $TarPackage_second;
# 引导程序
./updata.sh; #识别硬件 和 软件版本号
rm -rf /root/sdcard/FactorySettingReset;
delete_ResetFile; #删除更新文件
# 如果二次包已经消失
if [ ! -f /root/${TarPackage_second} ]; then
#如果出厂话设置也没掉,播报升级成功并重启
if [ ! -f /root/sdcard/FactorySettingReset ]; then
./upsucces;
reboot;
fi
fi
# 如果包还在 播报升级失败
./defeat;
echo "恢复出厂失败" > /root/sdcard/FactorySetting_log.txt