完整安装binwalk,然后用binwalk解压.bin文件

1
binwalk -Me TEW827DRU_106B01.bin

得到ubi文件,这时候就有点无措了,找下ubi解包方法

http://www.gandalf.site/2019/01/iotubi.html

两种方法均尝试后发现常常遇到包安装的问题,这里记录下成功的过程:

使用ubi_reader,安装相关依赖

1
2
3
4
5
//安装依赖
$ sudo apt-get install liblzo2-dev
$ sudo pip install python-lzo
//安装ubi_reader
$ sudo pip install ubi_reader

安装python-lzo包时候注意可能需要加上--ignore-installed

同时注意Python使用版本2

ubi_reader工具提供了四个脚本:

1
2
3
4
ubireader_display_info   //获取UBI信息以及布局块等信息
ubireader_extract_images //提取镜像
ubireader_extract_files //提取文件内容
bireader_utils_info //分析UBI镜像并创建shell脚本和UBI配置文件

我们使用ubireader_extract_images,然后得到./ubifs-root/335C.ubi目录下的img-380904034_vol-kernel.ubifs img-380904034_vol-ubi_rootfs.ubifs img-380904034_vol-ubi_rootfs_data.ubifs,分别file查看一下属性。

1
2
3
$ file img-380904034_vol-kernel.ubif
s
img-380904034_vol-kernel.ubifs: u-boot legacy uImage, Linux-3.4.103, Linux/ARM, OS Kernel Image (Not compressed), 1852288 bytes, Tue Jun 30 03:02:28 2020, Load Address: 0x41508000, Entry Point: 0x41508000, Header CRC: 0xEBBED141, Data CRC: 0x0FA866E8
1
2
3
$ file img-380904034_vol-ubi_rootfs.
ubifs
img-380904034_vol-ubi_rootfs.ubifs: Squashfs filesystem, little endian, version 4.0, 23103989 bytes, 3903 inodes, blocksize: 262144 bytes, created: Tue Jun 30 03:02:53 2020
1
2
3
$ file img-380904034_vol-ubi_rootfs_
data.ubifs
img-380904034_vol-ubi_rootfs_data.ubifs: empty

分别搜索一下,发现可以对第二个操作一下,它是Squashfs filesystem,搜索到可以用指令unsquashfs解压缩。

1
unsquashfs img-380904034_vol-ubi_rootfs.ubifs

得到了完整的文件目录系统。