ZTE固件解包与打包

本文章系个人为了学习和研究软件内含的设计思想和原理

该文章适用于8M系列 ZTE固件 16M略有不同


固件提取

使用Flash编程器提取 例如 CH341A XTW100等 (个人推荐XTW系列)

image-20230614153826317


固件分析

使用Binwalk分析固件

image-20230528145411843

  • 偏移地址:4882432 (0x4A8000)

  • 文件系统类型:Squashfs

  • 字节序:Little endian

  • 版本:4.0

  • 压缩方式:xz

  • 文件系统大小:2971894字节

  • inode数量:668

  • 块大小:262144字节


固件解包

1
dd if=YEBEI_TDD_8M.bin of=squashfs_image.sqfs bs=1 skip=4882432 count=2971894

使用dd命令将其中的Squashfs分区提取

安装 squashfs-tools

使用unsquashfs squashfs_image.sqfs解包固件 得到以下文件列表

image-20230622152143002


固件打包

使用如下命令打包固件

image.png

1
mksquashfs squashfs-root/ new_squashfs_image.sqfs -comp xz -noappend -b 262144 -no-xattrs -always-use-fragments -all-root
  • squashfs-root/ 是你解包的目录 262144是blocksize 参考上面的binwalk参数修改

  • -no-xattrs -always-use-fragments -all-root 为辅助参数 参考图上unsquashfs解析结果

  • 得到新文件new_squashfs_image.sqfs

1
dd if=new_squashfs_image.sqfs of=YEBEI_TDD_8M.bin bs=1 seek=4882432 conv=notrunc
  • seek=4882432 参考binwalk分析结果

这时就可以使用编程器刷入修改后的固件 建议刷入后恢复一次出厂设置 确保nv参数生效

切记 任何操作前请备份原始固件

郑重警告

本人所写文章仅供学习参考,严禁非法使用,如非法使用,而导致的一切后果,由使用者自负。