本帖最后由 anysoft 于 2018-10-3 13:39 编辑
在我上一篇帖子中提过,光猫其实和路由器一样。底包都是改版的openwrt,然后固件打包解包过程加了华为自己的结构和加密处理而已。光猫加入了驱动和对应程序。所以完全可以把光猫当做路由来玩,特别是当前的光猫配置越来越好,还能挂载USB。
今天正题是如何备份光猫固件。华为光猫的刷机固件有自己独特的结构,常规的解包方式无用,看雪bxc大神分析了固件格式并开发了hwfw_gui。这个工具可以拆分华为固件,编辑内部文件。rootfs导出后是uimg文件 squashfs。
废话不多说直接上备份命令(路由器固件备份命令):
1、先获取、补全shell进入
本文不就演示如何获取shell了,自行研究(获取shell都不会那么后边也没有看下去的必要)
进入shell之后用户还不是root,可以用whoami命令查看当前用户,此时再执行su,密码:admin就变成root了。
2、cat /proc/mtd 查看本机mtd信息
3、df查看挂载点信息
此处要注意,很多人备份或者上传文件都用/tmp文件夹,这里tmp文件夹只有10MB无法存放大文件,所以不要备份到tmp,看哪个文件夹可用空间大就备份到哪里。我是用的/dev/shm文件夹,足够的空间。
4、备份每个dev
busybox dd if=/dev/mtd12 of=/dev/shm/rootfsA.bin
这里各个分区备份出来后可以用hwfw_gui替换内部文件,或者直接通过还原命令在其他设备刷入。
5、tftp导出备份文件到电脑
tftp -p -l rootfsA.bin -r rootfsA.bin 192.168.1.2
40MB文件,(bin固件直接导出rootfs.img是38.1MB,40MB是后边有FF的空数据)
6、从备份还原
dd if=ubootA.bin of=/dev/mtdblock3
或者
mtd -r write /dev/shm/rootfsA.bin rootfsA
ultraedit查看如下:
hwfw_gui导出的rootfs.img
备份的rootfs
最后说一下,备份时候一定要确认你选的目录有足够的空间,备份完毕后可以df查看目录使用率是否达到100%,如果达到表示固件基本上没有备份完全。没备份完全的不要刷,刷了就会变砖。
(PS一句 如果你备份的bin文件16进制末尾不是FFFFFF那么你基本备份失败,因为mtd一般都会比img固件大,所以不会完全写满mtd设备,这样备份出来的bin末尾必定是FF空段)
参考来源:
https://blog.csdn.net/chang198932/article/details/36435209
https://blog.csdn.net/kepa520/article/details/51195439
http://man.linuxde.net/tftp
最最最后希望猫友可以帮忙备份一下 HS8145V的R018所有固件。拜谢!
可以参考这个帖子回复
https://www.chinadsl.net/forum.php?mod=viewthread&tid=158559&highlight=%B1%B8%B7%DD
|