wociao 发表于 2024-7-4 20:37:18

华为光猫固件修改

事情是这样的

我最近把dropbear、kms、ddns等插件直接写入了光猫的openwrt子系统分区固件里面了。我的是hs8145v5,子系统分区是mtd9和mtd10,都是squashfs文件系统,解包修改再重新打包后刷入光猫的分区,成功实现了固化。但是啊,但是啊,openwrt子系统分区剩余空间很小,只有1MB多,我还想把frps(upx压缩后还有4M大小)也刷进去,很明显,空间不够。这时我就想把openwrt子分区的一些动态库文件,主要是glib、libcrypto等,合起来有4M差不多转移到别的分区。这是我发现了exrootfs分区(mtd8)和allsystem分区,就着手尝试。首先是exrootfs,解包封包都是顺利,但是重新封包后系统开机不加载,即使不做任何修改,单纯的解包封包也不行。不知道为啥,我猜应该是文件头里面有一些校验,但是和allsystem分区的header crc,data crc校验并不一样,无耐放弃。转向allsysytem分区,binwalk后提取了根分区的squashfs镜像,但是无论如何都无法正常解包,unsquafs会出现FATAL ERROR: File system corrupted- Bad xattr_ids count in super block(用mac电脑)或者解包到一半出现Fatal error, write file, xxxx already existed。尝试直接mount也不行。有没有大神会解包的,给点提示,交流一下。有偿求教也可以!

newfuture 发表于 2024-7-4 21:30:30

能放到jffs2分区,启动之后再加载吗?

newfuture 发表于 2024-7-4 21:32:37

解压固件之前调查过一阵,发现R019以前的可以直接解压,但是后面的固件解压不了,我也没有找到解压方法。

wociao 发表于 2024-7-4 22:20:39

newfuture 发表于 2024-7-4 21:30
能放到jffs2分区,启动之后再加载吗?

应该可以,但是子系统貌似和jffs2共享可用空间,刷入别的分区就不会了。

wociao 发表于 2024-7-4 22:22:54

newfuture 发表于 2024-7-4 21:32
解压固件之前调查过一阵,发现R019以前的可以直接解压,但是后面的固件解压不了,我也没有找到解压方法。 ...

R019也不行么?

565296374 发表于 2024-7-5 00:17:44

可以正常解包打包的      没遇到你说的问题      要么你操作有问题

wociao 发表于 2024-7-5 08:33:06

565296374 发表于 2024-7-5 00:17
可以正常解包打包的      没遇到你说的问题      要么你操作有问题

能指点一下吗?我DD备份allsystem分区mtd6。binwalk找到了跟分区的开始地址和大小,是一个squash格式,在跟分区前还有一个uimage header。我用dd把这个squash分离出来,一个15M大小左右的squash分区,再次binwalk确认没问题。下面unsquashfs就开始出问题了,binwalk -e也不行,mount也不行。

wociao 发表于 2024-7-5 18:16:48

wociao 发表于 2024-7-4 22:22
R019也不行么?

unsquashfs 添加-f命令解开了,重新封包发现文件大小几乎不变,真是没留一点空余空间啊。。。。

wociao 发表于 2024-7-5 18:18:03

565296374 发表于 2024-7-5 00:17
可以正常解包打包的      没遇到你说的问题      要么你操作有问题

加-f命令解开了,但是没有剩余空间,塞不进自己的文件了。。。。

东莞4米2战神 发表于 2024-7-5 18:26:31

谢谢分享
页: [1] 2
查看完整版本: 华为光猫固件修改