FreeCalypso > hg > freecalypso-tools
view doc/Nonfree-phones-user-data @ 808:ac527de89a0d
pcm-sms-decode documentation
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 27 Mar 2021 00:28:49 +0000 |
parents | |
children |
line wrap: on
line source
Using FreeCalypso tools to access user data on non-free phones ============================================================== If you are using a Motorola C1xx or Pirelli DP-L10 phone as your daily driver, running its original proprietary fw for the lack of anything better, you can still use FreeCalypso tools to get to some of your user data, namely, your phonebook and your SMS store. You can even do the same with a non-Calypso phone if you can move the SIM in and out of it. This article tells you how to do such tricks. Phonebook howto =============== Whenever you have to use a phone whose firmware is not fully liberated, you should always store your phonebook contacts on the SIM, rather than "on the phone". SIM phonebook storage format is strictly defined by standard specs, leaving no room for proprietary firmwares to apply any wacky proprietary ideas of their own - OTOH, "on the phone" storage really means storing your data in proprietary fw data structures in only-Cthulhu-knows-what format. If you have your contacts stored in your SIM phonebook, you can manipulate the latter with FreeCalypso tools: you can dump your SIM phonebook and save it on your larger host computer, you can restore these backups back to the SIM, and you can freely edit your SIM phonebook. If your phone is a supported Calypso model, you can perform all of these manipulations without removing your SIM - you only need to shut down the phone's regular fw for the duration of the operation, just like you would do for flashing with fc-loadtool. The other way is to remove your SIM from the phone and stick it into a standalone smart card "reader" device - this path is totally independent of all phones. You will need to have both the present FC host tools package and the separate FC SIM tools package installed on your host machine. See the instructions in the SIM-manipulation article for how to run fc-simint for the purpose of operating on a SIM card inside your Calypso phone. Once you have landed at the simtool> prompt, see the doc/User-oriented-commands article in the fc-sim-tools repository for instructions on how to enter your PIN (if your SIM requires one) and how to manipulate your phonebooks. SMS storage howto ================= Motorola's firmware always stores received SMS on the SIM, whereas sent SMS are stored in their FFS (flash file system, see Compal-FFS article) in their own proprietary format. You can transfer your received SMS to your larger host computer for longer-term archival as follows: 1) Shut down the phone's regular fw and run fc-simint to operate on the SIM; 2) Once you are at the simtool> prompt, enter your PIN if your SIM requires one, and then save the SIM SMS store to a Unix host file with the save-sms-bin command, as explained in the doc/User-oriented-commands article in the fc-sim-tools repository. You can then issue an sms-erase-all command in the same seesion to clean out the SIM SMS store. 3) The files saved by the fc-simint/fc-simtool save-sms-bin command are binary, but the message content can then be fully decoded to human-readable ASCII (or ISO 8859-1 or UTF-8 if desired) with our pcm-sms-decode utility, described later in this article. To retrieve your sent SMS from Compal's FFS, you will need to similarly shut down the phone's regular fw and read out the FFS sectors with fc-loadtool. You can then use our tiffs utility to parse the FFS structure, but the format of the actual files used by Compal's proprietary fw implementation has not been studied in detail by the Mother, thus you will need to use your own brain cells for further decoding. If you use a Pirelli DP-L10 phone rather than Motorola C1xx, Pirelli's fw gives you the option of storing received SMS either on the SIM or "on the phone", the latter meaning Pirelli's FFS. Sent SMS are always stored in Pirelli's FFS. If you use SIM storage for received SMS on your Pirelli phone, then the procedure for retrieving those SMS is the same as for Mot C1xx, as detailed above. However, with this phone model, configuring the fw to store received SMS in its FFS ("on the phone") is generally preferable: Pirelli's fw maintains a file in its FFS (/pcm/SMS) whose binary format is exactly the same as the standards-defined format for storing SMS on the SIM, thus reading out /pcm/SMS with fc-fsio is just as good as reading out EF_SMS with fc-simint or fc-simtool, but is much more convenient: fc-fsio operates on the phone while its regular fw is running, whereas direct SIM manipulation with fc-simint requires shutting down the phone's regular fw. Pirelli's fw also accesses its SMS store faster when FFS storage is used, rather than SIM. Decoding received SMS binary files with pcm-sms-decode ====================================================== Whether you have retrieved your SMS store from a SIM with fc-simint/fc-simtool save-sms-bin command or read out Pirelli's /pcm/SMS file with fc-fsio, the binary format is exactly the same: a bundle of 176-byte records directly abutted together, with each individual record having the standard format defined in GSM TS 11.11 and its successor 3GPP TS 51.011. Looking at raw hex dumps won't be very helpful, as the reversed nibble format used for phone numbers and SC timestamps is not directly human-readable, and the message bodies will usually be in the form of packed septets - hence a special decoding program is needed. Our pcm-sms-decode utility does the needed job of reading these binary files and fully decoding them into human-readable ASCII, or ISO 8859-1 or UTF-8 if your host system supports such extended character sets and you have received SMS content that uses beyond-ASCII characters. pcm-sms-decode was added to FC host tools suite in early 2020; it is based on and shares most of its code with our earlier sms-pdu-decode utility from 2018. (The latter is meant for decoding SMS PDUs retrieved from FreeCalypso AT command modems with fcup-smdump.) pcm-sms-decode uses the same backslash escapes in its output and accepts the same -e, -u and -h options as sms-pdu-decode - please refer to the description of sms-pdu-decode in the User-phone-tools article for the details. By default, pcm-sms-decode numbers the records being decoded as 0 to N-1, where N is the total number of records in the binary file given to it (file size equal to N*176 bytes). As of fc-host-tools-r15, newly added -s option causes it to number these same records as 1 to N instead. The original 0-based record numbering was implemented when the tool was used solely to decode /pcm/SMS from Pirelli's fw (before the introduction of fc-simtool), but now that we have fc-simtool and fc-simint, and given that the SIM interface protocol and SIM file system definition use 1-based record numbers, we need to support the same convention in pcm-sms-decode for consistency.