comparison doc/TIFFS-IVA-usage @ 922:3152e23399a2

document SE K2x0 FFS quirks and our support for them
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 02 Jan 2023 00:50:19 +0000
parents d89b72f2181b
children
comparison
equal deleted inserted replaced
921:74d284add54d 922:3152e23399a2
188 188
189 tiffs <...> catino [-v|-h] ino 189 tiffs <...> catino [-v|-h] ino
190 190
191 Just like regular cat, but takes an inode number instead of a pathname. Can be 191 Just like regular cat, but takes an inode number instead of a pathname. Can be
192 used to cat the old content of deleted or overwritten files. 192 used to cat the old content of deleted or overwritten files.
193
194 Support for SE K2x0 extended filenames
195 ======================================
196
197 As explained in the SE-K2x0-FFS article, Sony Ericsson K200/220 phones use
198 TIFFS as their flexible data storage mechanism, but they also made their own
199 non-standard extension to TIFFS in terms of extended UCS-2 filenames.
200
201 In order to allow listing full FFS trees from SE K2x0 phones with tiffs ls and
202 possibly also extracting them with tiffs xtr, we have made the following hackish
203 extension to our TIFFS IVA: whenever either of these two commands encounters an
204 "extended" filename (one which fails standard TIFFS filename validity checks but
205 has a terminating NUL that allows the name and data portions of the chunk to be
206 separated) in the visible tree walk, our tool replaces it (for the purpose of
207 listed pathname generation or extraction into host file system) with a
208 synthesized pseudonym of the form "!bogo%04x", where %04x is the FFS inode
209 number in hex. In the case of tiffs ls, the actual extended filename is then
210 printed on a separate line (immediately following the synthesized listing), with
211 non-printable-ASCII characters escaped in \x hex form. We've also extended the
212 individual-inode form of lsino command to list these extended filenames when
213 encountering such, and we've extended catino (which needs to skip past the name
214 to get to the beginning of the data portion of the head chunk) to not reject
215 file head chunks with extended filenames in them as long as the needed
216 separating NUL is found.