AC2100/upgrade.sh

61 lines
1.6 KiB
Bash
Raw 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
# ImmortalWrt 软路由一键升级脚本
# 用法: curl -fsSL <此脚本的raw地址> -o /tmp/upgrade.sh && sh /tmp/upgrade.sh
FIRMWARE_URL="https://git.stickrouter.com/mike/AC2100/raw/branch/main/x86.img.gz"
FIRMWARE_FILE="/tmp/x86.img.gz"
echo "=========================================="
echo " ImmortalWrt 固件升级脚本"
echo "=========================================="
echo ""
echo "固件地址: $FIRMWARE_URL"
echo "下载路径: $FIRMWARE_FILE"
echo ""
# 清理旧的下载文件,避免残留干扰
rm -f "$FIRMWARE_FILE"
echo "[1/4] 正在下载固件..."
wget -O "$FIRMWARE_FILE" "$FIRMWARE_URL"
if [ $? -ne 0 ]; then
echo ""
echo "!! 下载失败,请检查网络连接或固件地址是否正确"
exit 1
fi
echo ""
echo "[2/4] 下载完成,检查文件..."
if [ ! -s "$FIRMWARE_FILE" ]; then
echo "!! 文件为空或不存在,下载可能已损坏"
exit 1
fi
FILESIZE=$(ls -l "$FIRMWARE_FILE" | awk '{print $5}')
echo "文件大小: $FILESIZE 字节"
if [ "$FILESIZE" -lt 10000000 ]; then
echo "!! 文件大小异常偏小 (小于 10MB),可能下载不完整或链接返回了错误页面"
echo "!! 为安全起见,已中止刷机流程"
exit 1
fi
echo ""
echo "[3/4] 校验固件与设备兼容性..."
sysupgrade -T "$FIRMWARE_FILE"
if [ $? -ne 0 ]; then
echo "!! 固件校验未通过,已中止刷机"
echo "!! 如确认固件无误,可手动执行: sysupgrade -v $FIRMWARE_FILE"
exit 1
fi
echo ""
echo "[4/4] 校验通过5 秒后开始刷机..."
echo "!! 刷机过程中请勿断电,设备将自动重启"
sleep 5
sysupgrade -v "$FIRMWARE_FILE"