之前写过一篇利用脚本装置的文章,这里再写个本人提取 bin 固件包中 opkg 装置的办法(次要是刚玩儿了固件解包,想试试看)。
前提
· R3P 路由器已开启 ssh(办法可见)
环境
零碎: ubuntu 18.04
软件: binwalk squashfs-tools
一、ubuntu 操作
1.1 下载含有 opkg 的 mt7621 固件
wget https://archive.openwrt.org/chaos_calmer/15.05/ramips/mt7621/openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin
ls
1.2 装置 binwalk 和 squashfs-tools 包
sudo apt install binwalk squashfs-tools
1.3 解包 bin
binwalk -e openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin
ls
1.4 解包 squashfs
cd _openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin.extracted/
ls *.squashfs
unsquashfs 120038.squashfs
ls squashfs-root/
1.5 打包 opkg
cd squashfs-root/
find -name "*opkg*"
tar -zcf opkg.tgz bin/opkg usr/lib/opkg usr/sbin/opkg-key etc/opkg etc/opkg.conf
ls
6. 上传到路由器
scp opkg.tgz root@192.168.31.1:/data
二、路由器操作
2.1 连贯路由器
ssh root@192.168.31.1
2.2 解压
cd /data
ls
tar -zxf opkg.tgz
2.3 批改 opkg 配置文件
c=/data/etc/opkg.conf
sed -i "s/\(dest root \).*/\1\/data/" $c
sed -i "s/\(lists_dir ext \).*/\1\/data\/var\/opkg-lists/" $c
sed -i "s/\(option overlay_root \).*/\1\/data/" $c
2.4 增加环境变量
PATH=$PATH:/data/bin:/data/usr/sbin
echo "export PATH=$PATH" >> /etc/profile
echo "export LD_LIBRARY_PATH=/data/usr/lib" >> /etc/profile
source /etc/profile
2.5 实现
三、测试
从提取 (复制) 到装置 (解压) 的操作就实现了,上面来测试一下。
root@XiaoQiang:/data# opkg-key
Usage: /data/usr/sbin/opkg-key <command> <arguments...>
Commands:
add <file>: Add keyfile <file> to opkg trusted keys
remove <file>: Remove keyfile matching <file> from opkg trusted keys
verify <sigfile> <list>: Check list file <list> against signature file <sigfile>
root@XiaoQiang:/data# opkg list
root@XiaoQiang:/data# opkg update
root@XiaoQiang:/data#
** 失败!命令能够辨认,然而不能执行更新、装置等的任何操作
工夫无限,留待日后再钻研 **