Unpacks the YAFFS2 file system present on the NAND flash in the Worldline Yomani XR. It removes in-line ECC, parses the file system and dumps it to a local directory. Currently supports files, directories and symlinks.
To dump the file system image to a local directory output/, run
./yomani-unpack rootfs.bin
where rootfs.bin was created from the full flash dump using
dd if=Winbond_W29N01HZ_00-083FFFFF.bin of=rootfs.bin skip=396 bs=4096
See ./yomani-unpack --help for options.
It is not entirely clear when files are considered deleted or overwritten.
The implementation considers a file deleted if there is a file named "deleted"
in the special delete directory (obj_id == 4) with the same object id as
the file to be deleted.
If the file size in the object header is zero, the exported file will also
be empty, even if there are data objects belonging to that file.
This behaviour can be suppressed by using the --restore-deleted flag,
which will ignore the special delete directory and the tag->size mismatch.
It seems like no deletion markers, shrink headers or shadow ids are used.