From e7aea1591f5d08399f20667692e273913dd8d527 Mon Sep 17 00:00:00 2001 From: Guocheng Zheng <121431418@qq.com> Date: Mon, 13 Apr 2020 16:12:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B1=E4=BA=8E=E7=BD=91=E7=BB=9C=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E9=97=AE=E9=A2=98=EF=BC=8C=E9=9C=80=E8=A6=81=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=8D=87=E7=BA=A7=EF=BC=8C=E6=89=80=E4=BB=A5=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=9C=A8=E7=BA=BF=E5=8D=87=E7=BA=A7=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=88=90=E7=A6=BB=E7=BA=BF=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=EF=BC=8C=E6=8A=8A=E4=B8=8B=E8=BD=BD=E7=9A=84?= =?UTF-8?q?=E5=9B=BA=E4=BB=B6=EF=BC=88=E7=9B=B4=E6=8E=A5=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81=E6=9B=B4=E6=94=B9=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=EF=BC=89=E5=92=8Cautoupdate-usb.sh=E6=94=BE?= =?UTF-8?q?=E5=9C=A8=E5=90=8C=E4=B8=80=E7=BA=A7=E7=9B=AE=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E7=A6=BB=E7=BA=BF=E5=8D=87=E7=BA=A7=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E5=8D=87=E7=BA=A7=E5=9B=BA=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/autoupdate-usb.sh | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 scripts/autoupdate-usb.sh diff --git a/scripts/autoupdate-usb.sh b/scripts/autoupdate-usb.sh new file mode 100644 index 0000000..b112008 --- /dev/null +++ b/scripts/autoupdate-usb.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +cd /mnt/mmcblk0p2 +rm -rf artifact R2S*.zip FriendlyWrt*img* +cp $(dirname $(readlink -f $0))/R2S-Minimal-$(date +%Y-%m-%d)-ROM.zip ./ +if [ -f /mnt/mmcblk0p2/R2S*.zip ]; then + echo -e '\e[92m今天固件已下载,准备解压\e[0m' +else + echo -e '\e[91m今天的固件还没更新,尝试下载昨天的固件\e[0m' + cp $(dirname $(readlink -f $0))/R2S-Minimal-$(date -d "@$(( $(busybox date +%s) - 86400))" +%Y-%m-%d)-ROM.zip ./ + if [ -f /mnt/mmcblk0p2/R2S*.zip ]; then + echo -e '\e[92m昨天的固件已下载,准备解压\e[0m' + else + echo -e '\e[91m没找到最新的固件,脚本退出\e[0m' + exit 1 + fi +fi +unzip R2S*.zip +rm R2S*.zip +if [ -f /mnt/mmcblk0p2/artifact/FriendlyWrt*.img.gz ]; then + pv /mnt/mmcblk0p2/artifact/FriendlyWrt*.img.gz | gunzip -dc > FriendlyWrt.img + echo -e '\e[92m准备解压镜像文件\e[0m' +fi +mkdir /mnt/img +losetup -o 100663296 /dev/loop0 /mnt/mmcblk0p2/FriendlyWrt.img +mount /dev/loop0 /mnt/img +echo -e '\e[92m解压已完成,准备编辑镜像文件,写入备份信息\e[0m' +cd /mnt/img +sysupgrade -b /mnt/img/back.tar.gz +tar zxf back.tar.gz +echo -e '\e[92m备份文件已经写入,移除挂载\e[0m' +rm back.tar.gz +cd /tmp +umount /mnt/img +losetup -d /dev/loop0 +echo -e '\e[92m准备重新打包\e[0m' +zstdmt /mnt/mmcblk0p2/FriendlyWrt.img -o /tmp/FriendlyWrtupdate.img.zst +echo -e '\e[92m打包完毕,准备刷机\e[0m' +if [ -f /tmp/FriendlyWrtupdate.img.zst ]; then + echo 1 > /proc/sys/kernel/sysrq + echo u > /proc/sysrq-trigger || umount / + pv /tmp/FriendlyWrtupdate.img.zst | zstdcat | dd of=/dev/mmcblk0 conv=fsync + echo -e '\e[92m刷机完毕,正在重启...\e[0m' + echo b > /proc/sysrq-trigger +fi