Openwrt sysupgrade.tar 格式固件打包/解包脚本

14 篇文章 1 订阅

注意事项

  1. 此脚本适用于maclinux下使用请将ggrep替换为grep
  2. 请将MKSQSHFS4变量更改为自己的openwrt目录相应位置

使用方法

./modify.sh e openwrt-xxx-xxx-xxx-squashfs-sysupgrade.tar #解包
./modify.sh c repack.tar #打包
#!/bin/sh
sudo echo "Starting..."
MKSQSHFS4='./openwrt/staging_dir/host/bin/mksquashfs4'
case "$1" in
'extract'|'e')
rm -rf oldtar
mkdir oldtar
cd oldtar
tar -xvf ../$2
cd ../
offset1=`ggrep -oba sysupgrade-wndr4300/root $2 | ggrep -oP '[0-9]*(?=:sysupgrade-wndr4300/root)'`
dd if=$2 of=./oldtar/head.bin bs=1 ibs=1 count=$offset1
sudo rm -rf squashfs-root 2>&1
sudo unsquashfs -d squashfs-root ./oldtar/sysupgrade-*/root
;;
'create'|'c')
cd oldtar
rm -f ./sysupgrade-*/root
board=$(ls -l | grep drwxr-xr-x | cut -f4 -d '-')
sudo $MKSQSHFS4 ../squashfs-root ./sysupgrade-$board/root -nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -b 256k -processors 1
sudo chown $USER ./sysupgrade-$board/root
rm -f ../$2
cp head.bin ../$2 
tar -rvf ../$2 sysupgrade-$board/root
tar -rvf ../$2 sysupgrade-$board/kernel
;;
*)
echo 'run
"modify.sh extract firmware.tar"
You will find folder "oldtar" and folder "squashfs-root".
Modify "squashfs-root" as you like,after everything is done,run
"modify.sh create newfirmware.tar"
And you will get a modified firmware named newfirmware.tar.
'
;;
esac
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值