view ffstools/README.old @ 465:003e48f8ebe1

rvinterf/etmsync/fsnew.c: cast 0 to (char *) for execl sentinel I generally don't use NULL and use plain 0 instead, based on a "NULL considered harmful" discussion on the classiccmp mailing list many aeons ago (I couldn't find it, and I reason that it must have been 2005 or earlier), but a recent complaint by a packager sent me searching, and I found this: https://ewontfix.com/11/ While I don't give a @#$% about "modern" systems and code-nazi tools, I realized that passing a plain 0 as a pointer sentinel in execl is wrong because it will break on systems where pointers are longer than the plain int type. Again, I don't give a @#$% about the abomination of x86_64 and the like, but if anyone ever manages to port my code to something like a PDP-11 (16-bit int, 32-bit long and pointers), then passing a plain 0 as a function argument where a pointer is expected most definitely won't work: if the most natural stack slot and SP alignment unit is 16 bits, fitting an int, with longs and pointers taking up two such slots, then the call stack will be totally wrong with a plain 0 passed for a pointer. Casting the 0 to (char *) ought to be the most kosher solution for the most retro systems possible.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 11 Feb 2019 00:00:19 +0000
parents dd3ec7c92bf1
children
line wrap: on
line source

You are looking at the source for the TIFFS In Vitro Analyzer utility.  You may
have downloaded it either as a separate package or as part of the larger
freecalypso-sw suite.

See TIFFS-Overview (in ../doc if you are working with the full freecalypso-sw
source tree) for a general description of what TIFFS is and why it matters.

The utility contained in the present package runs on a general purpose GNU/Linux
(or other Unix) host and enables "in vitro" examination of Flash File System
images read out of TI-based GSM devices.  Using this utility, you can list the
directory and file content of an FFS image, cat any individual file in the FFS,
or extract the complete FFS content into your regular Unix file system.  Some
"forensic" operations are also supported: by listing the inode array, one can
deduce the order in which the present FFS content got created, and see what
files have been overwritten or deleted in the span of still-visible history.
One can then cat the old byte content of those overwritten or deleted files,
if those data chunks are still in the FFS image (i.e., if the flash sector in
question has not been reclaimed yet).

Compilation and installation are straightforward: run 'make' to compile the
source; you should get 3 executable binaries named tiffs, mokoffs and pirffs;
then run 'make install' as root to install them in /usr/local/bin.  The binary
named tiffs is the main program; mokoffs and pirffs are wrappers that simplify
the most common current use cases.

To install somewhere other than /usr/local/bin, edit the INSTBIN= setting in
the subdirectory Makefiles.  You will also need to edit
tiffs-wrappers/installpath.c accordingly, as the mokoffs and pirffs wrappers
are designed to exec tiffs by its absolute installed pathname.

See Usage for the usage instructions.