[Windows Mobile] SMS and MMS Exporting

1. Tools

-On Phone:
*Phatware Pocket DBExplorer
*Resco Explorer or Total Commander CE
-On PC:
*a spreadsheet reader (Openoffice Calc)
*a Perl distribution [on Windows Strawberrry Perl, on Linux perl] and the module MMS::Parser with its dependencies (easily installable trough CPAN client), here’s the list

MMS::Parser.pm
MMS::Parser::WorkHorse.pm
Dependencies:
File::Slurp.pm
Parse::RecDescent.pm
Path::Class.pm
Path::Class::Dir.pm
Path::Class::Entity.pm
Path::Class::File.pm
Test::More.pm
Test::Simple.pm

2.Pairing

Under Windows it’s necessary to use ActiveSync on XP but on Vista or Seven it automatically downloads the necessary component.
Under Ubuntu you must install synce, synce-trayicon and synce-gvfs (PPA), then restart both the pc and the phone.

3. Overview of message handling in Windows Mobile

WM (Windows Mobile – we consider the version 5) handles messages through the proprietary database format CEDB. It stores contacts in pim.vol (hidden file in root directory) and messages in cemail.vol [but MMS data is archived in a system folder, as \Windows\Messaging\, in files with extension .mpb or similar].

3.1 cemail.vol content
There are some tables but those of interest are:
-fldr31000024: received messages
-fldr31000026: sent messages
-fldr31000027: deleted messages
-fldr31000028: draft messages
Each record is a message.

3.2 MMS Format

MMS are defined by a 3GPP standard. A MMS is a binary file containing an header (with infos as sender, receiver, date, network data), a SMIL descriptor (xml file with settings for multimedia presentation), and the files of the message (text, image, video, sound).

4. SMS Export

There are a lot of software which swear it can export SMS without work, but they mostly crash or require to buy them. We prefer instead using Pocket DB Explorer (which isn’t freeware itself, but it allows us to understand how the storage works).
Choosing the table we want to export, we select Tools->Tools->Export Database and choose CSV as format.
Now we can copy the created file to the PC and we can read it. The fields are easily understandable.

5. MMS Export

-We unset using the file explorer (not the default one) the System property of the folder \Windows\Messaging
-Now if there are a lot of files (more than 5 thousand) we suggest to zip the folder before copying it to pc, preventing crashes and saving time.
-There are a lot of empty files, that probably refer to sms, but we can delete them.

5.1 MMS Decoding

After setting the environement, we can download this file (http://www.megaupload.com/?d=VQK2K00X) containing the original and the modified example script which uses the module MMS::Parser.
The modified one displays only a few things, as date, sender, receiver, and exports the media. The original displays a bunch of things.
On windows we’ll decode the message with the command line: perl.exe [path to]message.pl #MMS#
On linux instead: ./message.pl #MMS#
We obtain a txt file containing text, or the correct media file and on Console the data.

2 comments

    • sabasif

      Ops, sorry..
      I don’t think I have it anymore, broke the computer 😀
      Try using the script in eg folder of the original package!

Leave a comment