【问题标题】:Unpacking a ubi image with an ubifs image inside解压带有 ubifs 图像的 ubi 图像
【发布时间】:2021-07-23 17:40:24
【问题描述】:

我在研究过程中遇到了一个问题。 我有一个从互联网下载的固件文件,我试图解压缩它以模拟固件。 好消息是我成功完成了一次,但我恢复了我的机器,我现在无法重新创建该过程。

首先,任何工具都无法提取文件,因为您会收到一个错误,即找到少于 2 个布局块。

之后我转储了 ubi 文件的一些信息:

==> app_ubifs <==
1 named volumes found, 2 physical volumes, blocksize=0x20000
== volume b'bakfs' ==
-rw-r--r--  1 0     0       37879808 2020-04-22 01:27:47 ubifs

所以从我得到这个成功的那一刻起,我就知道在 bakfs 卷中还有另一个 ubifs 图像,可以通过公共工具成功提取。

我已经测试了很多挂载这个镜像的方法,但总是挂载失败。

modprobe ubi 

modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa \
                 third_id_byte=0x00 fourth_id_byte=0x15

我相信这是 blocksize=0x20000 的正确配置。

ubiformat /dev/mtd0 -f app_ubifs   
ubiformat: mtd0 (nand), size 268435456 bytes (256.0 MiB), 2048 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 2047 -- 100 % complete  
ubiformat: 2048 eraseblocks have valid erase counter, mean value is 0
ubiformat: flashing eraseblock 282 -- 100 % complete  
ubiformat: formatting eraseblock 2047 -- 100 % complete    

                 

格式化和闪烁也可以正常工作。

在这之后的下一部分我真的不明白。 有 100 种不同的在线方式,我似乎无法让它发挥作用。

如果有人可以在此过程中帮助我,我将不胜感激。

正如我所说,我已经有了文件系统的解压版本。 但我现在无法重新创建解包过程。 所以我知道这是可能的。

【问题讨论】:

    标签: linux firmware ubifs ubi


    【解决方案1】:

    ----解决方案

    modprobe nandsim first_id_byte=0x2c second_id_byte=0xac third_id_byte=0x90 fourth_id_byte=0x15
    

    为 blocksize=0x20000 制作设备。

    检查是否已设置。

    cat /proc/mtd
    

    让我们清理它。

    flash_erase /dev/mtd0 0 0
    

    现在格式化并刷新图像。

    ubiformat /dev/mtd0 -f image.ubi -O 2048
    

    然后连接设备。

    modprobe ubi 
    
    ubiattach -p /dev/mtd0 -O 2048
    

    现在我可以挂载它了。

    mount -t ubifs /dev/ubi0_X /mnt/ubifs
    

    在我的情况下,它是 ubi0_1,请务必在 /dev 中检查。

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2019-08-06
      • 2014-05-27
      • 2012-01-14
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多