FactoryReset.sh 1.6 KB
#!/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