V6.2.3 添加本地固件 sha256 比对
This commit is contained in:
parent
a36cf2c333
commit
6ba4b59a74
|
@ -126,6 +126,14 @@ RANDOM() {
|
||||||
openssl rand -base64 $1 | md5sum | cut -c 1-$1
|
openssl rand -base64 $1 | md5sum | cut -c 1-$1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GET_SHA256SUM() {
|
||||||
|
[[ ! -f $1 && ! -s $1 ]] && {
|
||||||
|
TIME r "未检测到文件: [$1] 或该文件为空,无法计算 sha256 值!"
|
||||||
|
EXIT 1
|
||||||
|
}
|
||||||
|
sha256sum $1 | cut -c1-$2
|
||||||
|
}
|
||||||
|
|
||||||
GET_VARIABLE() {
|
GET_VARIABLE() {
|
||||||
[[ $# != 2 ]] && SHELL_HELP
|
[[ $# != 2 ]] && SHELL_HELP
|
||||||
[[ ! -f $2 ]] && TIME "未检测到定义文件: [$2] !" && EXIT 1
|
[[ ! -f $2 ]] && TIME "未检测到定义文件: [$2] !" && EXIT 1
|
||||||
|
@ -433,7 +441,7 @@ EOF
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
Retry_Times=5
|
Retry_Times=5
|
||||||
TIME "${Proxy_Echo}正在下载固件,请耐心等待..."
|
TIME "${Proxy_Echo}正在下载固件,请耐心等待 ..."
|
||||||
while [[ ${Retry_Times} -ge 0 ]];do
|
while [[ ${Retry_Times} -ge 0 ]];do
|
||||||
if [[ ! ${PROXY_Mode} == 1 && ${Retry_Times} == 4 ]];then
|
if [[ ! ${PROXY_Mode} == 1 && ${Retry_Times} == 4 ]];then
|
||||||
TIME g "尝试使用 [FastGit] 镜像加速下载固件!"
|
TIME g "尝试使用 [FastGit] 镜像加速下载固件!"
|
||||||
|
@ -449,20 +457,27 @@ EOF
|
||||||
EXIT 1
|
EXIT 1
|
||||||
else
|
else
|
||||||
${Downloader} "${FW_URL}/${FW_Name}" -O ${FW_SAVE_PATH}/${FW_Name}
|
${Downloader} "${FW_URL}/${FW_Name}" -O ${FW_SAVE_PATH}/${FW_Name}
|
||||||
[[ $? == 0 && -f ${FW_SAVE_PATH}/${FW_Name} ]] && TIME y "固件下载成功!" && break
|
[[ $? == 0 && -s ${FW_SAVE_PATH}/${FW_Name} ]] && TIME y "固件下载成功!" && break
|
||||||
fi
|
fi
|
||||||
Retry_Times=$((${Retry_Times} - 1))
|
Retry_Times=$((${Retry_Times} - 1))
|
||||||
TIME r "下载失败,剩余尝试次数: ${Retry_Times} 次"
|
TIME r "固件下载失败,剩余尝试次数: ${Retry_Times} 次"
|
||||||
done
|
done
|
||||||
|
CURRENT_SHA256=$(GET_SHA256SUM ${FW_SAVE_PATH}/${FW_Name} 5)
|
||||||
|
CLOUD_SHA256=$(echo ${FW_Name} | egrep -o "[0-9a-z]+.${Firmware_Type}" | sed -r "s/(.*).${Firmware_Type}/\1/")
|
||||||
|
[[ ${CURRENT_SHA256} != ${CLOUD_SHA256} ]] && {
|
||||||
|
TIME r "本地固件 SHA256 与云端对比不通过,请检查网络后重试!"
|
||||||
|
EXIT 1
|
||||||
|
}
|
||||||
case "${Firmware_Type}" in
|
case "${Firmware_Type}" in
|
||||||
img.gz)
|
img.gz)
|
||||||
|
TIME "正在解压固件,请耐心等待 ..."
|
||||||
gzip -d -q -f -c ${FW_SAVE_PATH}/${FW_Name} > ${FW_SAVE_PATH}/$(echo ${FW_Name} | sed -r 's/(.*).gz/\1/')
|
gzip -d -q -f -c ${FW_SAVE_PATH}/${FW_Name} > ${FW_SAVE_PATH}/$(echo ${FW_Name} | sed -r 's/(.*).gz/\1/')
|
||||||
FW_Name="$(echo ${FW_Name} | sed -r 's/(.*).gz/\1/')"
|
FW_Name="$(echo ${FW_Name} | sed -r 's/(.*).gz/\1/')"
|
||||||
[[ $? == 0 ]] && {
|
[[ ! $? == 0 && -s ${FW_SAVE_PATH}/${FW_Name} ]] && {
|
||||||
TIME y "解压成功,固件已解压到: ${FW_SAVE_PATH}/${FW_Name}!"
|
|
||||||
} || {
|
|
||||||
TIME r "固件解压失败,请检查相关依赖或更换固件保存目录!"
|
TIME r "固件解压失败,请检查相关依赖或更换固件保存目录!"
|
||||||
EXIT 1
|
EXIT 1
|
||||||
|
} || {
|
||||||
|
TIME y "固件解压成功,固件已解压到: ${FW_SAVE_PATH}/${FW_Name}!"
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -472,7 +487,6 @@ EOF
|
||||||
DO_UPGRADE ${Upgrade_Option} ${FW_SAVE_PATH}/${FW_Name}
|
DO_UPGRADE ${Upgrade_Option} ${FW_SAVE_PATH}/${FW_Name}
|
||||||
} || {
|
} || {
|
||||||
TIME x "[测试模式] 执行: ${Upgrade_Option} ${FW_SAVE_PATH}/${FW_Name}"
|
TIME x "[测试模式] 执行: ${Upgrade_Option} ${FW_SAVE_PATH}/${FW_Name}"
|
||||||
TIME x "[测试模式] 测试模式运行完毕!"
|
|
||||||
EXIT 0
|
EXIT 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -503,6 +517,30 @@ REMOVE_CACHE() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AutoUpdate_LOGGGER() {
|
||||||
|
[[ -z $1 ]] && {
|
||||||
|
[[ -f ${log_Path}/AutoUpdate.log ]] && {
|
||||||
|
TITLE && echo
|
||||||
|
cat ${log_Path}/AutoUpdate.log
|
||||||
|
}
|
||||||
|
} || {
|
||||||
|
while [[ $1 ]];do
|
||||||
|
if [[ $1 =~ path= ]];then
|
||||||
|
LOG_PATH="$(echo $1 | cut -d "=" -f2)"
|
||||||
|
EDIT_VARIABLE rm ${Custom_Variable} log_Path
|
||||||
|
EDIT_VARIABLE edit ${Custom_Variable} log_Path ${LOG_PATH}
|
||||||
|
[[ ! -d ${LOG_PATH} ]] && mkdir -p ${LOG_PATH}
|
||||||
|
TIME y "AutoUpdate 日志保存目录已修改为: ${LOG_PATH}"
|
||||||
|
EXIT 0
|
||||||
|
fi
|
||||||
|
[[ $1 == rm || $1 == del ]] && {
|
||||||
|
[[ -f ${log_Path}/AutoUpdate.log ]] && rm ${log_Path}/AutoUpdate.log
|
||||||
|
}
|
||||||
|
[[ ! $1 =~ path= && $1 != rm && $1 != del ]] && SHELL_HELP
|
||||||
|
EXIT
|
||||||
|
done
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
AutoUpdate_Main() {
|
AutoUpdate_Main() {
|
||||||
[[ ! -f ${Custom_Variable} ]] && touch ${Custom_Variable}
|
[[ ! -f ${Custom_Variable} ]] && touch ${Custom_Variable}
|
||||||
|
@ -647,28 +685,7 @@ AutoUpdate_Main() {
|
||||||
;;
|
;;
|
||||||
--log)
|
--log)
|
||||||
shift
|
shift
|
||||||
[[ -z $1 ]] && {
|
AutoUpdate_LOGGGER $*
|
||||||
[[ -f ${log_Path}/AutoUpdate.log ]] && {
|
|
||||||
TITLE && echo
|
|
||||||
cat ${log_Path}/AutoUpdate.log
|
|
||||||
}
|
|
||||||
} || {
|
|
||||||
while [[ $1 ]];do
|
|
||||||
if [[ $1 =~ path= ]];then
|
|
||||||
LOG_PATH="$(echo $1 | cut -d "=" -f2)"
|
|
||||||
EDIT_VARIABLE rm ${Custom_Variable} log_Path
|
|
||||||
EDIT_VARIABLE edit ${Custom_Variable} log_Path ${LOG_PATH}
|
|
||||||
[[ ! -d ${LOG_PATH} ]] && mkdir -p ${LOG_PATH}
|
|
||||||
TIME y "AutoUpdate 日志保存目录已修改为: ${LOG_PATH}"
|
|
||||||
EXIT 0
|
|
||||||
fi
|
|
||||||
[[ $1 == rm || $1 == del ]] && {
|
|
||||||
[[ -f ${log_Path}/AutoUpdate.log ]] && rm ${log_Path}/AutoUpdate.log
|
|
||||||
}
|
|
||||||
[[ ! $1 =~ path= && $1 != rm && $1 != del ]] && SHELL_HELP
|
|
||||||
EXIT
|
|
||||||
done
|
|
||||||
}
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
SHELL_HELP
|
SHELL_HELP
|
||||||
|
@ -678,7 +695,7 @@ AutoUpdate_Main() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
Version=V6.2.2
|
Version=V6.2.3
|
||||||
log_Path=/tmp
|
log_Path=/tmp
|
||||||
Update_Logs_Path=/tmp
|
Update_Logs_Path=/tmp
|
||||||
Upgrade_Command=sysupgrade
|
Upgrade_Command=sysupgrade
|
||||||
|
|
Loading…
Reference in New Issue