FreeCalypso > hg > freecalypso-tools
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 | 11391cb6bdc0 |
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. |