Root must be enabled to remove system apps. Z4Root can be downloaded on your PC, transfered to your SD Card, and run with a file manager such as Astro. Once Rooted you can use a Terminal Emulator on the phone itself (kind of a pain, but gets the job done) or use the Android SDK to reach a SuperUser prompt. To make the changes to the SYSTEM/APP folder you must enable RW permissions, remove the programs, then restore the RO permissions.
1. Root
2. Install Terminal/SDK and connect phone
3. Use the following commands:
su [enable superuser]
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system [mounts system RW]
cd /system/app [WARNING: ANYTHING DELETED WILL NOT RETURN AFTER FACTORY RESET, CONSIDER ANY CHANGES NOW PERMANENT]
ls [lists files in directory, can be scrolled]
rm filename.apk [removes the named apk, letter case must match]
mount -o ro,remount /dev/block/mtdblock3 /system [restore RO permissions]
other useful commands:
dd if={filename,directory} of={filename,directory} [copies in file/directory to out file/directory, use to backup files/directories]
cat {filename} > {filename} [I use this to move files from my sdcard to the system/app directory because it seems to set the system permissions correctly]
I have uninstalled all demos/pay-per-use apps with no issues (game demos, TeleNav). Just to be tidy, I periodically move any updates from the data/app folder to the system/app folder to make the updates permanent. Be sure to use the original name of the apk you are updating, remove the old version, the copy the update from the data/app folder to the system/app folder. You may want to wait a few days after using an updated app before making it permanent incase there is some issue with the update.
system/app folder is "permanent" and remains after a factory reset
data/app folder is "temporary" and erased after a factory reset
data/app folder is where updates are stored to your installed apps (Gmail, Google Maps, etc.)