美文网首页
OpenWrt 固件解包/打包

OpenWrt 固件解包/打包

作者: 粗识名姓 | 来源:发表于2023-01-19 18:24 被阅读0次

    参考之前的装WSL博文, 装Debian,改国内源

    参考 恩山帖子
    metadata补充

    WSL中的Debian补充安装python和binwalk,多Python版本, Install Binwalk

    sudo apt-get update
    sudo apt -y install python3 python3-pip
    sudo apt -y install binwalk
    

    解包

    sudo binwalk -e 固件名.bin,完成之后会在工作路径下./_固件名.bin.extracted/squashfs-root中看到解包的文件目录,想要修改的东西都在这, 可以将squashfs-root剪切上移一级目录,方便后面的操作

    # 回显信息
    DECIMAL       HEXADECIMAL     DESCRIPTION
    --------------------------------------------------------------------------------
    0             0x0             uImage header, header size: 64 bytes, header CRC: 0xBDDF7A07, created: 2023-01-07 19:57:48, image size: 2928151 bytes, Data Address: 0x80001000, Entry Point: 0x80001000, data CRC: 0xADA3A350, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS OpenWrt Linux-5.10.161"
    64            0x40            LZMA compressed data, properties: 0x6D, dictionary size: 2097152 bytes, uncompressed size: 9708380 bytes
    2928215       0x2CAE57        Squashfs filesystem, little endian, version 4.0, compression:xz, size: 11737178 bytes, 2643 inodes, blocksize: 262144 bytes, created: xxxx-xx-xx xx:xx:xx
    

    可以修改的是第3个分区Squashfs filesystem, 前面两个不能动的需要先切片保存:
    sudo dd if=k2p_old.bin of=head.bin bs=1 skip=0 count=2928215 得到head.bin

    打包

    修改完成后,sudo mksquashfs ./squashfs-root rootfs.bin -comp xz打包得到rootfs.bin文件,和切出来的head.bin文件合并得到新固件:

    sudo cat head.bin rootfs.bin > k2p_new.bin

    这样的固件在web端可能无法刷写,需要补充metadata数据,参考
    从旧固件提取k2p.meta
    sudo ./fwtool -i ./k2p.meta ./k2p_old.bin
    给新固件补充 metadata:
    sudo ./fwtool -I ./k2p.meta ./k2p_new.bin

    END

    相关文章

      网友评论

          本文标题:OpenWrt 固件解包/打包

          本文链接:https://www.haomeiwen.com/subject/avjqhdtx.html