ColdSync is a tool for synchronizing
PalmOS devices (PalmPilot, Palm V,
Qualcomm PDQ, etc.) with Unix workstations.
"Synchronizing" (or "syncing", for short) refers to the
process of copying data back and forth between the Palm and the
workstation so that in the end they both hold the same contents.
By default, ColdSync simply synchronizes the Palm with a
backup directory on the workstation. That is, it copies all of the
information on the Palm to the backup directory on the desktop and
vice-versa. When possible, ColdSync performs a so-called "Fast Sync,"
i.e., it only copies those records that have changed, either on
the Palm or on the desktop. This makes it possible to synchronize
quickly, and not waste your time.
If you have deleted a record on the Palm and checked the "Save
Copy on PC" button, ColdSync deletes the record from the Palm, and
also saves a copy on the workstation, in an archive file.
ColdSync does not currently include any utilities for
manipulating these archive files, but the archive file format is
straightforward, and it should be easy to write such a utility.
To install a new application (a .prc file) on your
Palm, simply copy the .prc file to ~/.palm/install/, and run
Back Up and Restore
ColdSync can also make a complete backup of a Palm, or restore
from a backup. You do not normally need to do this, but it is a good
way of transferring all information from one Palm to another
(e.g., if you have just upgraded to a newer model).
ColdSync endeavors to be portable: it has been built on a
number of versions of Unix, and works with any Palm device from the
ColdSync takes pains never to delete anything that might be
valuable. It will abort rather than corrupt an existing database.
This is not meant as a guarantee, but rather as a bit of
ColdSync can be extended and customized through the use of
conduits. There are only a handful of conduits
so far, but you're welcome to them.
There is also
documentation on writing conduits.
ColdSync supports USB connections for the
as of version 1.1.
Note that USB is only supported under FreeBSD 4.0 for now.
The Palm III and Palm V and others can sync via the infra-red
port. They use IrCOMM, which is designed to make an IR port look like
a plain old RS-232 serial port.
Several people have reported success in getting this to work
Unfortunately, due to the design of the protocols involved,
ColdSync is terribly insecure. In particular:
- ColdSync has no guarantee that the Palm device it is talking to
is really the one it claims to be.
- The Palm device has no guarantee that the daemon it is talking to
is really a ColdSync process, or that it is being run by an
- The data passing back and forth between the Palm and the
workstation is not encrypted in any way.
- "Private" records are copied back and forth like any other. The
"private" flag means absolutely nothing.
- The user's password on the Palm is encrypted, but that's it.
ColdSync does not use it, nor does it require any user
authentication to run.
On the plus side, however, ColdSync is not setuid, nor does it
need any special privileges other than permission to read from and
write to the serial port that the cradle is attached to.