FreeCalypso > hg > freecalypso-tools
comparison ffstools/Usage @ 0:e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 11 Jun 2016 00:13:35 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e7502631a0f9 |
---|---|
1 The generic tiffs utility needs to be invoked as follows: | |
2 | |
3 tiffs [global-options] <imgfile> <org> <cmd> [command-args] | |
4 | |
5 The first 3 non-optional arguments are the filename of the TIFFS image under | |
6 examination, the FFS organization being examined, and the operation to be | |
7 performed. The present utility is designed in the classic Unix manner in that | |
8 each invokation performs a single operation and exits, such that invokations of | |
9 tiffs (or one of the wrappers described below) may be plumbed into pipes and | |
10 the like. | |
11 | |
12 The 2nd argument to tiffs after the FFS image filename describes how the TIFFS | |
13 instance under study is organized in terms of flash sectors. The syntax of | |
14 this argument is KxN, where K is the flash sector size in KiB and N is the | |
15 number of sectors occupied by the FFS. For MokoFFS images the correct | |
16 organization argument is 64x7 (7 sectors of 64 KiB each); for Pirelli's FFS | |
17 images it is 256x18 (18 sectors of 256 KiB each). | |
18 | |
19 The following global options may be given before the image filename argument: | |
20 | |
21 -a num | |
22 | |
23 Use the specified flash block (sector) as the inode array block. | |
24 | |
25 -o offset | |
26 | |
27 The FFS image begins at the specified offset within the file, rather | |
28 than at the beginning. This option is useful when working with complete | |
29 device flash dumps of which FFS is only a part, starting somewhere | |
30 other than at 0. | |
31 | |
32 -r ino | |
33 | |
34 Use the specified inode as the root. Per Falcon's convention, TIFFS | |
35 inode numbers are always given in hex, hence this argument is | |
36 interpreted as hex without needing a 0x prefix. | |
37 | |
38 The invokation syntax for mokoffs and pirffs wrappers is the same as for tiffs, | |
39 except that the FFS organization argument (64x7 or 256x18) is omitted; the | |
40 wrapper fills that argument in before passing the command to the main tiffs | |
41 program. The only other difference is that instead of the generic -o global | |
42 option, mokoffs takes a -f global option (no argument) which indicates that one | |
43 is working with a complete flash dump image, rather than just the FFS portion; | |
44 mokoffs -f gets translated into tiffs -o0x380000. (pirffs has no such option | |
45 at all because Pirelli's FFS starts at offset 0 within its respective flash | |
46 chip select.) | |
47 | |
48 The next argument after the FFS organization for tiffs (or after the image | |
49 filename for mokoffs/pirffs) is the command (or operation) to be performed. | |
50 The following tiffs commands are currently available: | |
51 | |
52 General information commands | |
53 ============================ | |
54 | |
55 These commands display general or summary information about the FFS image: | |
56 | |
57 tiffs <...> blkhdr | |
58 | |
59 This command displays the basic information contained in the header of each | |
60 flash erase block comprising the FFS image. | |
61 | |
62 tiffs <...> fsinfo | |
63 | |
64 This command displays some general information about the file system. | |
65 | |
66 Standard listing/extraction commands | |
67 ==================================== | |
68 | |
69 These commands list or extract the normally-visible content of the FFS, i.e., | |
70 the content which is visible when the FFS is "mounted" normally, and which the | |
71 FFS promises to preserve - as opposed to deleted or overwritten content. | |
72 | |
73 tiffs <...> ls [-v[v]] [pathname...] | |
74 | |
75 Tiffs ls without additional arguments yields a listing of the complete FFS | |
76 directory tree, akin to tar tv. Example output fragment: | |
77 | |
78 fr 4096 /.journal | |
79 d /gsm | |
80 d /gsm/rf | |
81 d /gsm/rf/tx | |
82 f 512 /gsm/rf/tx/ramps.900 | |
83 f 128 /gsm/rf/tx/levels.900 | |
84 f 128 /gsm/rf/tx/calchan.900 | |
85 | |
86 The first character is 'f' for files or 'd' for directories. An 'r' following | |
87 immediately afterward means that the object has the read-only attribute set. | |
88 For files the listing includes the content size in bytes, and the last part is | |
89 the pathname of the object within the FFS. | |
90 | |
91 With a single -v option added after ls, the output will include verbose | |
92 information as to the segmentation structure of each file. With two -v options | |
93 or with -vv, this additional output will also include the byte offset of each | |
94 data chunk, relative to the beginning of the FFS image. | |
95 | |
96 Tiffs ls with a pathname argument yields information about the specified FFS | |
97 object; -v and -vv options act as already described, but are arguably more | |
98 useful when listing single files. | |
99 | |
100 tiffs <...> cat [-v|-h] pathname | |
101 | |
102 Just like the standard Unix cat(1) command, but cat'ing files from the FFS image | |
103 under study. The non-standard -h option means hex dump - it is handy because | |
104 almost all files in TI's GSM device FFS are binary, rather than ASCII. | |
105 | |
106 tiffs <...> xtr dest-dir | |
107 | |
108 This command extracts the complete content of the FFS into your ordinary Unix | |
109 file system. The sole argument is the local directory into which the root of | |
110 the GSM device FFS should be extracted. | |
111 | |
112 Forensic analysis commands | |
113 ========================== | |
114 | |
115 Unlike the "standard" listing/extraction commands which present TIFFS as a | |
116 "normal" Unix file system, using the "forensic" commands effectively requires | |
117 that the operator understands how TIFFS works, in particular, what an inode is | |
118 in TIFFS. | |
119 | |
120 tiffs <...> lsino [-v[v]] | |
121 | |
122 This command lists the FFS inode array from first to last; this listing order | |
123 will normally correspond to the forward chronological order of object creation. | |
124 -v and -vv options add verbosity. | |
125 | |
126 '.' in the object type column means segment, '~' means a deleted object. The | |
127 lsino command only lists the inode array, and does not try to recover the | |
128 original type of deleted/overwritten objects from the journal or other clues. | |
129 The program attempts to recover the pathname of each inode, but because such | |
130 reverse mapping from inodes to pathnames is not an operation which TIFFS was | |
131 properly designed to support, and the pathname recovery algorithm in this TIFFS | |
132 IVA tool is made as generic as possible (doesn't look at the object types), the | |
133 lsino listing will occasionally include some bogus pathnames. Once again, it | |
134 is expected that the operator knows what s/he is doing when using these forensic | |
135 commands. | |
136 | |
137 tiffs <...> lsino [-v[v]] [-f] ino... | |
138 | |
139 This command works just like ls with an explicit pathname argument, but takes | |
140 one or more inode numbers instead. The -f option matters only if the requested | |
141 inode is in the deleted/overwritten state; it tells the lsino command to assume | |
142 that the object is/was the head inode of a file; -vf and -vvf combinations are | |
143 particularly useful. | |
144 | |
145 tiffs <...> catino [-v|-h] ino | |
146 | |
147 Just like regular cat, but takes an inode number instead of a pathname. Can be | |
148 used to cat the old content of deleted or overwritten files. |