README.md
This is a free beta test version of a backup program
for NVFS based Palm OS 5 devices like the Treo 650, T5, TX,
LifeDrive and TE2. Users report success in backing up on the
700p, but have not told me about restore tests. (Please let
me know if it works.)

Unlike most other backup programs (Dmitry's PowerBackup is the
one exception I know of right now), this one grabs data straight
out of the hidden directory where they are hidden on NVFS device.
In theory, this should make the backup faster and more reliable.
But because doing this is undocumented, there is always danger.

A backup made with NVBackup is likely not to work on other devices
(e.g., a T5 backup cannot be restored on a TX). Don't try--it may
crash your device. Also, if you make a backup, upgrade your
Operating System, the old backup may not work--instead, either
use another backup utility, or use hotsync to back up across OS
upgrade.

USE AT YOUR OWN RISK IN ACCORDANCE WITH THE LICENSE IN
License.txt. THERE IS NO WARRANTY AT ALL PROVIDED. THIS MIGHT
DAMAGE YOUR DEVICE AND YOUR DATA.

Basic usage is simple. Insert an SD card with sufficient space (error
checking is rudimentary!) and tap "New backup". You can refresh
an old backup (i.e., add to it any files that have changed by
selecting the backup and tapping "Update"). You can restore a
backup.

I recommend disabling any programs that run in the background,
especially when restoring data.

For technical reasons, after restoring, a soft reset will be
forced. This is normal.

If there was an error while backing up, the backup set will be
flagged "(incomplete)". Restoring such a damaged set can cause
problems, but there could be circumstances when that is your only
hope. If you have a problem after restoring such a backup, you
should do a hard reset (hold down POWER key while reseting, and
then let go of POWER after the second Palm logo comes on; then
erase data). You can Update an incomplete backup and thereby
hopefully make it complete.

Compression may slightly slow down the initial backup, but speeds
up updates, and reduces space requirements by about 50%.

NVBackup automatically copies itself to the backup card, so that
to restore, you need only insert this card, and NVBackup will
be available to the launcher.

You can schedule a daily backup. Menu | Options | Schedule. You
can set the time of the backup. The 'Cycle' count specifies how
many automatic backups to keep. Once the maximum count is reached,
the oldest of the 'Cycle' backups will be recycled. If you do not
want a backup set to get recycled (e.g., because it is a backup set
you really like), select the backup set, go to
Menu | Backup sets | Edit details, and uncheck 'Include in scheduled cycle'.
Likewise, if you have a manual backup that you want included in
the automatic recycling, you can check that box in its details
form.

If "Cycle" is set to 1, then
everyday at the specified time (unless you are at your PDA then
and cancel the backup request--there will be 20 seconds to do that)
the backup will be updated. If "Cycle" is set
to, e.g., 3, then the last three backups will be updated (and if you
don't have three backups yet created, they will be created day by
day as needed), in a cyclic pattern, so you will have backups for
the last three days. (You should be able to figure out how the 2
and 4 options work.)

For scheduling to work, NV Backup must be found in Program Memory
(RAM), not on a card.

If you want your scheduled backup to be automatically uploaded to an
ftp server, or to manually import/export a backup set from/to an ftp
server use the Server menu from the main NVBackup screen to set up the
server options. This is only for advanced users. You need to have
access to an ftp server for this or run ftp server software (e.g.,
Filezilla, war-ftpd, pure-ftpd) on your PC.

A feature that has little to do with backing up but that I've added
is the ability to synchronize your clock with atomic clock time
over the Internet. You can access this via
Menu | Options | Preferences | Advanced. You can do this as a
one-time procedure (tap on "Set time") or schedule it to happen
after each scheduled backup.

If you store confidential data, make sure you turn on encryption!
This is true even if you use Palm's Security Panel to encrypt your
data, both because the Security Panel's encryption only activates
when the device turns off and because the Security Panel's encryption
has a serious security hole.

AES 128-bit encryption (no block chaining) is available for your backups.
You can either store the encryption key (encrypted in an easy-to-crack way with
your device ID) on your PDA, in which case you should presumably
use Palm's security application (ideally together with Super Security:
http://www.palmpowerups.com/modules.php?name=Downloads&d_op=MostPopular)
to lock your PDA when you're not using it. If the key is stored you
will not be asked for it on restore, unless you do a hard reset (and
a hard reset is all an intruder can do if the device is properly
secured) in which case the key will be lost and will have to be retyped.
Or you can set the key to "Prompt" and be asked for it on each
backup/restore operation. This is more secure, but useless for
scheduled backup.

Note that typing in the wrong key will still allow the restore operation
to continue, but the files will fail to restore correctly--you'll get
lots of error messages. You can then try again with the right key.


If your PDA is locked with Palm's security feature, I recommend AES
encrypting your backups in such a case as the stored device password
will be contained in the backups. See Menu | Options | Preferences.
The 'quick' login feature of Palm security is not supported.


Source code is available at handypalmstuff.sf.net.


Updates:
1.21: Disable turning off display as it's causing hangs.
1.20: Check battery life before backing up.
1.19: Hide filenames when backing up on locked device. NOTE: The
filenames will still be visable on the SD card's backup set,
even if the file contents are encrypted.
1.18: Use official Palm function for turning off display.
1.17: One-handed navigation in main form. Possible more reliable restore.
1.16: Help prevent freeze after backup.
1.15: Fix potential crash problem!
1.14: Alert after a bad scheduled (or crashed manual) backup.