comparison doc/Host-tools-overview @ 216:7e3e3a958e3f

doc/Host-tools-overview: updated and simplified
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 20 May 2017 12:48:38 +0000
parents 3c446058b5a6
children 97d6d593ffc6
comparison
equal deleted inserted replaced
215:1a658ab756fe 216:7e3e3a958e3f
1 FreeCalypso host tools suite features the following tools that are potentially 1 FreeCalypso host tools suite includes a large number of different tools, many
2 useful to end users: 2 of which are quite specialized and rarely needed. The following tools are the
3 most essential ones:
3 4
4 fc-loadtool This is the tool used to read and write the non-volatile flash 5 fc-loadtool This is the tool used to read and write the non-volatile flash
5 memory of supported GSM devices. It can be used to reflash 6 memory of supported GSM devices. It can be used to reflash
6 these devices with new firmware (whether pre-existing or new 7 these devices with new firmware (whether pre-existing or new
7 firmwares developed within our project), and to save and restore 8 firmwares developed within our project), and to save and restore
8 flash backups. This tool operates on the target device (phone 9 flash backups. This tool operates on the target device (phone
9 or modem) while its regular firmware is shut down. 10 or modem) while its regular firmware is shut down.
10 11
11 fc-fsio This tool connects to GSM devices running one of the supported 12 fc-iram, Reprogramming the non-volatile flash memory is not the only way
12 firmware versions while the fw is running (unlike fc-loadtool 13 fc-xram, to run your own code on a Calypso GSM device. If your code is
13 which operates on a device while its regular fw is shut down) 14 fc-compalram small enough to fit entirely into the available RAM on the
14 and allows you to manipulate (read and write) the device's 15 device, and you would like to just run it without flashing it
15 flash file system. It is thus a higher-level tool than 16 permanently, these tools do the job of loading code images into
16 fc-loadtool. It is intended primarily for working with our own 17 different kinds of RAM through different download protocols.
17 firmwares, but it also works with Pirelli's original fw. 18 Some phones have large enough RAM to allow a complete functional
19 firmware image to be run via fc-xram without flashing.
20
21 rvinterf This program is our engine for communicating with up & running
22 TI-based firmwares through the RVTMUX binary packet interface.
23 It receives and decodes all debug trace and other packets
24 emitted by the target fw, and allows the options of printing
25 them on the terminal, saving them to a log file, and/or passing
26 them to other programs that connect to rvinterf as local socket
27 clients. In the other direction those latter client programs
28 can send arbitrary command packets to the target fw.
29
30 fc-fsio Going through rvinterf, this tool connects to GSM devices
31 running one of the supported firmware versions while the fw is
32 running (unlike fc-loadtool which operates on a device while
33 its regular fw is shut down) and allows you to manipulate
34 (read and write) the device's flash file system. It is thus a
35 higher-level tool than fc-loadtool. It is intended primarily
36 for working with our own firmwares, but it also works with
37 Pirelli's original fw.
18 38
19 fc-shell FreeCalypso firmwares have a feature of our own invention (not 39 fc-shell FreeCalypso firmwares have a feature of our own invention (not
20 present in any pre-existing ones) to accept AT commands over 40 present in any pre-existing ones) to accept AT commands over
21 the RVTMUX interface. It is useful when no second UART is 41 the RVTMUX interface. It is useful when no second UART is
22 available for a dedicated standard AT command interface. 42 available for a dedicated standard AT command interface.
23 fc-shell is the tool that allows you to send AT commands to the 43 fc-shell is the tool that allows you to send AT commands to the
24 firmware in this manner; it also allows a few other kinds of 44 firmware in this manner; it also allows a few other kinds of
25 asynchronous commands to be sent. 45 asynchronous commands to be sent. It works through rvinterf.
26 46
27 tfc139 This tool breaks into Mot C1xx phones via shellcode injection, 47 And here is a listing of all other tools in mostly-alphabetical order:
28 a method that works despite any bootloader locks, allowing you
29 to reflash locked phones with new firmware with fc-loadtool.
30 The name of the utility is historical: previously it was
31 specific to TFC139 phones (C139s sold with TracFone branding),
32 but the current version is expected to work with all Mot C1xx
33 firmware versions.
34 48
35 imei-luhn A simple utility for computing or verifying the Luhn check 49 c139explore This is a run-from-RAM (no flashing) program for Mot C139/140
36 digit of an IMEI number. 50 phones that exercises their peripheral hardware: LCD, keypad
37 51 backlight, buzzer and vibrator.
38 The following host tools are primarily for developers, but may be useful to
39 end users as well:
40
41 rvtdump This tool produces a human-readable dump of all output emitted
42 by a TI-based GSM fw on the RVTMUX binary packet interface. It
43 can also log this dump to a file.
44
45 rvinterf This tool is a superset of rvtdump: it not only dumps and/or
46 logs all output from the GSM fw, but also provides a mechanism
47 for sending command packets to it. Rvinterf is the engine
48 behind fc-fsio, fc-shell and fc-tmsh.
49
50 tiffs, These tools perform "in vitro" analysis of flash file system
51 mokoffs, (FFS) images read out of GSM devices with TI-based firmwares.
52 pirffs You can list and extract the FFS content captured as a raw
53 flash image, and even perform a few "forensic" operations along
54 the lines of reading deleted files and seeing the history of
55 FFS modifications. tiffs is the main program, whereas mokoffs
56 and pirffs are convenience wrappers for the common FFS
57 configurations from Openmoko and Pirelli.
58
59 fc-serterm This tool is a trivial serial terminal program. Its special
60 feature is that any output coming from the serial port that
61 isn't printable ASCII is displayed as by cat -v. It is useful
62 for talking to serially-interfaced devices that mix ASCII with
63 binary in their serial talk.
64
65 The following tools are really just for developers:
66 52
67 ctracedec GSM firmwares built in TI's Windows environment (official ones 53 ctracedec GSM firmwares built in TI's Windows environment (official ones
68 as well as our own hacks based on the TCS211 semi-src) have a 54 as well as our own hacks based on the TCS211 semi-src) have a
69 "compressed trace" misfeature whereby many of the ASCII strings 55 "compressed trace" misfeature whereby many of the ASCII strings
70 in debug trace messages get replaced with numeric indices at 56 in debug trace messages get replaced with numeric indices at
72 on the RVTMUX serial channel. This numeric trace output can be 58 on the RVTMUX serial channel. This numeric trace output can be
73 turned back into ASCII strings if you have the str2ind.tab file 59 turned back into ASCII strings if you have the str2ind.tab file
74 corresponding to the fw version that emitted the output in 60 corresponding to the fw version that emitted the output in
75 question; this ctracedec utility performs that decoding. 61 question; this ctracedec utility performs that decoding.
76 62
77 fc-iram, Reprogramming the non-volatile flash memory is not the only way 63 fc-buzplay This program plays piezoelectic buzzer melodies on an actual
78 fc-xram, to run your own code on a Calypso GSM device. If your code is 64 Calypso device equipped with such a buzzer (Mot C1xx, TI's
79 fc-compalram small enough to fit entirely into the available RAM on the 65 D-Sample board, our planned future HSMBP) by loading a buzplayer
80 device, and you would like to just run it without flashing it 66 agent onto the target and feeding melodies to be played to it.
81 permanently, these tools do the job of loading code images into
82 different kinds of RAM through different download protocols.
83 67
84 fc-tmsh TI had a tool called TMSH that stood for "test mode shell". We 68 fc-cal2text This utility takes a dump of TI's /gsm/rf flash file system
85 don't know exactly how it worked, hence we make no claim of our 69 directory subtree as input (either extracted in vitro with tiffs
86 own test mode shell being anything like TI's original, but we 70 or read out in vivo with fc-fsio) and converts all RF tables
87 do have a test mode shell of our own. It sends command packets 71 found therein into a readable ASCII format. See the RF_tables
88 to the ETM (Enhanced Test Mode) component in the GSM firmware 72 article for more details.
89 and displays its responses in a purely asynchronous manner,
90 i.e., our tool has no knowledge of any correspondence between
91 the commands it sends and the responses they elicit. (In
92 contrast, fc-fsio described above also talks to ETM, but it
93 does so synchronously.)
94 73
95 fc-memdump This tool captures a memory dump from a GSM device whose 74 fc-dspapidump This utility uses ETM in synchronous mode (going through
96 firmware implements one of TI's Test Mode memory read commands, 75 rvinterf) to read and dump the contents of the DSP API RAM in a
97 either the old TM3 version or the new ETM one. It works with 76 target Calypso GSM device while the firmware is running.
98 FreeCalypso Citrine, with TCS211-based firmwares including
99 FreeCalypso Magnetite, with really old TI firmwares which
100 predate ETM, and with Mot C1xx original firmwares.
101 77
102 fc-rgbconv A simple aid for phone UI development that converts RGB color 78 fc-e1decode This utility decodes a melody in TI's Melody E1 format from the
103 values between human-intuitive 8:8:8 format and the 5:6:5 format 79 the native binary format to our own ASCII-based representation;
104 used by the color LCDs in the phones targeted by FreeCalypso. 80 see the Melody_E1 article for more information.
105 81
106 The following tools are really just special-purpose hacks: 82 fc-e1gen This utility compiles an E1 melody from our own ASCII source
83 format into binary bits to be loaded into a FreeCalypso phone;
84 see the Melody_E1 article for more information.
107 85
108 fc-dspapidump This utility uses ETM in synchronous mode to read and dump the 86 fc-fr2tch This hack-utility converts a GSM 06.10 speech sample from the
109 contents of the DSP API RAM in a target Calypso GSM device 87 de facto standard libgsm format (which can be recorded with
110 while the firmware is running. 88 standard tools like SoX) into an uplink play file that can be
89 played with the tch play command in fc-shell; see the
90 TCH-bit-access article for more information.
91
92 fc-gsm2vm This utility converts a GSM 06.10 speech sample from the same
93 libgsm source format into a voice memo file that can be
94 uploaded into the FFS of a FreeCalypso device and played with
95 the audio_vm_play_start() API or the AT@VMP command that
96 invokes the latter.
111 97
112 fc-lcdemu We have TI's TCS211 firmware semi-src that includes TI's 98 fc-lcdemu We have TI's TCS211 firmware semi-src that includes TI's
113 demo/prototype phone UI targeting the 176x220 pixel LCD on TI's 99 demo/prototype phone UI targeting the 176x220 pixel LCD on TI's
114 D-Sample development kit, but no suitable hardware on which we 100 D-Sample development kit, but no suitable hardware on which we
115 could run this fw with this UI and see it in action. We built 101 could run this fw with this UI and see it in action. We built
116 a hacked-up version of the fw that emits all raster blits 102 a hacked-up version of the fw that emits all raster blits
117 intended for the big LCD on the RVTMUX serial interface, and 103 intended for the big LCD on the RVTMUX serial interface, and
118 this fc-lcdemu utility is a plug-in for rvinterf that actually 104 this fc-lcdemu utility is a plug-in for rvinterf that actually
119 displays these LCD blits in an X11 window. 105 displays these LCD blits in an X11 window. This program is not
106 built by default as it requires libX11 to compile and an X11
107 display to run.
120 108
121 fc-fr2tch This hack-utility converts a GSM 06.10 speech sample from the 109 fc-memdump This tool captures a memory dump from a GSM device whose
122 de facto standard libgsm format (which can be recorded with 110 firmware implements one of TI's Test Mode memory read commands,
123 standard tools like SoX) into an uplink play file that can be 111 either the old TM3 version or the new ETM one. It works with
124 played with the tch play command in fc-shell; see the 112 FreeCalypso Citrine, with TCS211-based firmwares including
125 TCH-bit-access article for more information. 113 FreeCalypso Magnetite, with really old TI firmwares which
114 predate ETM, and with Mot C1xx original firmwares. It works
115 through rvinterf.
116
117 fc-rgbconv A simple aid for phone UI development that converts RGB color
118 values between human-intuitive 8:8:8 format and the 5:6:5 format
119 used by the color LCDs in the phones targeted by FreeCalypso.
120
121 fc-serterm This tool is a trivial serial terminal program. Its special
122 feature is that any output coming from the serial port that
123 isn't printable ASCII is displayed as by cat -v. It is useful
124 for talking to serially-interfaced devices that mix ASCII with
125 binary in their serial talk.
126 126
127 fc-tch2fr This hack-utility takes a TCH downlink recording produced with 127 fc-tch2fr This hack-utility takes a TCH downlink recording produced with
128 the tch record command in fc-shell and converts it to a playable 128 the tch record command in fc-shell and converts it to a playable
129 libgsm file which will most likely contain some garbage by 129 libgsm file which will most likely contain some garbage by
130 disregarding the non-understood DSP status words; see the 130 disregarding the non-understood DSP status words; see the
131 TCH-bit-access article for more information. 131 TCH-bit-access article for more information.
132
133 fc-tmsh TI-based GSM firmwares provide a rich set of Test Mode commands
134 that can be issued through the RVTMUX (debug trace) serial
135 channel, used for L1/RF test functions, production line RF
136 calibration, FFS (flash file system) access, audio configuration
137 and other miscellany. fc-tmsh is our test mode shell for
138 sending these Test Mode commands to targets and displaying
139 decoded target responses; it works through rvinterf. fc-tmsh
140 supports all Test Mode commands (both TM3 and ETM) implemented
141 in our target firmwares except FFS access; use fc-fsio for the
142 latter.
143
144 fc-vm2hex This utility converts the old-fashioned (non-AMR) voice memo
145 files read out of FFS into hex strings that can be analyzed by
146 a human or further fed to fc-tch2fr.
147
148 imei-luhn A simple utility for computing or verifying the Luhn check
149 digit of an IMEI number.
150
151 pirexplore This is a run-from-RAM (no flashing) program for Pirelli DP-L10
152 phones that exercises their peripheral hardware, primarily their
153 LCD.
154
155 rvtdump This tool produces a human-readable dump of all output emitted
156 by a TI-based GSM fw on the RVTMUX binary packet interface. It
157 can also log this dump to a file.
158
159 tfc139 This tool breaks into Mot C1xx phones via shellcode injection,
160 a method that works despite any bootloader locks, allowing you
161 to reflash locked phones with new firmware with fc-loadtool.
162 The name of the utility is historical: previously it was
163 specific to TFC139 phones (C139s sold with TracFone branding),
164 but the current version is expected to work with all Mot C1xx
165 firmware versions.
166
167 tiaud-decomp This utility decodes TI's audio mode configuration files read
168 out of FFS into our own ASCII format. The tool to perform the
169 opposite conversion (compile these audio mode config files
170 "in vitro" from an ASCII text source) is planned, but has not
171 been written yet.
172
173 tiffs, These tools perform "in vitro" analysis of flash file system
174 mokoffs, (FFS) images read out of GSM devices with TI-based firmwares.
175 pirffs You can list and extract the FFS content captured as a raw
176 flash image, and even perform a few "forensic" operations along
177 the lines of reading deleted files and seeing the history of
178 FFS modifications. tiffs is the main program, whereas mokoffs
179 and pirffs are convenience wrappers for the common FFS
180 configurations from Openmoko and Pirelli.