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