之前写过一篇利用脚本安装的文章,这里再写个自己提取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

image

1.2 安装binwalk和squashfs-tools包

sudo apt install binwalk squashfs-tools

image

1.3 解包bin

binwalk -e openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin
ls

image

1.4 解包squashfs

cd _openwrt-15.05-ramips-mt7621-dir-860l-b1-squashfs-factory.bin.extracted/
ls *.squashfs
unsquashfs 120038.squashfs
ls squashfs-root/

image

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

image
6.上传到路由器

scp opkg.tgz root@192.168.31.1:/data

image


二、路由器操作

2.1 连接路由器

ssh root@192.168.31.1

image

2.2 解压

cd /data
ls
tar -zxf opkg.tgz

image

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

image

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# 

**失败!命令可以识别,但是不能执行更新、安装等的任何操作
时间有限,留待日后再研究**


迷失De挣扎
24 声望0 粉丝

引用和评论

0 条评论