AgentD / squashfs-tools-ng

A new set of tools and libraries for working with SquashFS images
Other
195 stars 30 forks source link

Document how to use the library #132

Open probonopd opened 1 month ago

probonopd commented 1 month ago

I am trying to write extract_diricon.c that does the following:

Example: ./extract_diricon -o 12345 my.squashfs should extract the file .DirIcon.

I figure I need to compile with gcc -o extract_diricon extract_diricon.c -I/usr/include/sqfs -L/usr/lib/x86_64-linux-gnu -lsquashfs. But how would I have to code the above?

Thank you very much for your help.

(Use case: AppImage files contain a squashfs image that contains an icon, and I want to write a tiny helper to extract this icon, so that file managers can natively show the correct icons for AppImages.)

AgentD commented 3 weeks ago

Hi @probonopd ,

in the extras directory, there some are example programs. Specifically extract_one.c does recursive path resolution and unpacks a single file from an image.

As for the offset, currently you'd have to create a wrapper object around sqfs_file_t that applies it.

A "compiled" version of the Doxygen reference manual is currently hosted here: https://infraroot.at/projects/squashfs-tools-ng/doxydoc/index.html

I hope this helps.

probonopd commented 2 weeks ago

Thanks for your hint @AgentD. Unfortunately I could not make the offset work yet.

In particular, the sqfs_file_t structure does not have a fd member that can be directly accessed (for seeking).

In case you could show me how to do this properly, I'd be super happy. Thank you very much!