A little while ago I got a Nokia 6300 mobile phone. I use the address book (aka contacts list), calendar and TODO lists
quite a bit, and I'm a firm believer in backups (I like belt, braces, and a bit of spare rope as well), so I was looking
for a way to back up all the data to my Linux PC over the USB cable.

After trying several alternatives, I ended up writing a small Java program that runs on the phone, and backs up all
the data to a file on the memory card. I can then copy the file to the computer over the USB cable. While it's been
written with the Nokia 6300 in mind, it may well work for other phones that support at least MIDP 2.0 and JSR 75.

This program is freely available under the GNU LGPL - you're welcome to use it if you think it might
be useful. See LICENCE.txt in the source zip.

The first things I tried were Wammu and Gnokii, both of
which are easily available (e.g. can be installed using Yum in Fedora). In both cases, I had to configure them to
use the AT command interface to the phone, on the port /dev/ttyACM0.

Both Wammu and Gnokii (actually xgnokii) worked, but they were limited by the AT command set that Nokia makes
available. In particular, they couldn't export anything but the name and primary phone number of each contact,
and they couldn't get at the calendar and TODO list at all.

I believe (but I'm not sure) that if I had Bluetooth on the computer I could sync the phone via SyncML, using
programs like Evolution. USB Bluetooth adaptors are available, but I didn't want to buy one just to use once a month
or so.

I pretty much discarded this from the start. I'm not about to regress to installing Windoze just to back up the phone.
Another alternative would be to try to get the Nokia suite working under Wine, but a couple of posts I found indicated
that this might be non-trivial. And of course it hurts to have to go back to The Dark Side, even via Wine :) .

When the program runs, it creates a single file in a Backup directory on the memory card, which contains
all the contents of the Address Book (aka contacts list) in vCard format, and the Calendar and TODO lists (in
vCalendar format). The filename includes the date of the backup

You can then copy the file back to the computer (by mounting the memory card over the USB cable).

It's also important to realise what the program is not supposed to do:

It's not intended for synchronisation with any other data store

This version doesn't provide any means to re-import data from a previous backup - NOTE: the new version
on SourceForge (see below) also supports restoring from a backup, including to another phone.

NOTE: The backup program only ever modifies the backup file - all items in the phone are opened in read-only mode.

IMPORTANT NOTE: This project is now on SourceForge, and the version there is later than this one. In particular,
the SourceForge version supports restoring as well as backing up, and fixes some minor usability bugs.

NOTE: I don't have a trusted key for signing the program - that's why the best you can manage is Ask every time.
If the program was signed, you'd be able to set the options not to ask, or to ask only the first time (which would be
much nicer).

The program defaults to a backup file root of E:/, since this is the root for the memory card on a Nokia 6300.

If your phone is different, you should first choose the Set backup file root option. This gives you a list of
all the file system roots on your phone, from which you should pick the one for your memory card. On the 6300, for
example, the file system roots show as:

C:/
E:/

Selecting an item in the list confirms this as the new filesystem root, then returns you to the main screen. If you
have set debug output on, this will also show the number of bytes used and available on this device - a useful way
of finding out if you've chosen the correct one.

If you see the message "Application access set to not allowed", it means that you haven't properly configured the
security options in the installation step. Check everything from the 'Installing the Program' section above.

If you see any other error, you should first check whether you need to set a different file system root (see above
under Other Phones). The next step is to select the Set debug option on the main screen. Now try the action
again, and see if the extra output helps.