Normally, you would remove stock apps by deleting the APKs from /system/app, however on the G2 this is not possible due to it's NAND protection. On reboot the apps will just re-appear, so that's no good. You could delete them on every boot via a script, but that's a bit kludgey... there has to be a better way right? RIGHT! :P
Internally, Android manages installed apps via something called 'Package Manager'. Package Manager (PM) references installed apps not by their filename or displayed name but by their internal package name (e.g. com.google.android.apps.maps). Handily, from a command line you can actually call Package Manager with the command 'pm', which gives you access to do some pretty cool stuff - especially if you have root - including disabling packages.
What does disabling a package do? It leaves the file on the system, but prevents the app from running or appearing in the launcher. This is actually quite cool because it means although the app isn't displaying or using any resources, if an update to the app is released, you'll still be notified by the Market. Should you choose to install the update, the package will be re-enabled, after which you can then disable it again if you choose. Neat eh?
So, let me give you a few examples of how you'd disable packages. Firstly you need to have temproot on your device (use VISIONary for this), and open a command shell. You can do this either via 'adb shell' on your PC, or using 'Connectbot' or 'Terminal Emulator' on your device (if you're feeling particularly sadistic). The shell needs to be elevated to root in order to use disable functionality, so type 'su'. You know if you are elevated because the prompt is a '#' instead of a '$'.
In order to disable a package, you first need to know the name of the package. pm has a function to list installed packages... simply type 'pm list packages' (obvious huh!). The output will look something like this:
# pm list packages package:com.google.android.location package:com.tmobile.selfhelp package:com.android.voicedialer package:com.android.defcontainer package:com.android.launcher package:com.google.android.maps.mytracks package:com.android.debugtool package:com.android.contacts package:com.android.phone package:com.tmobile.userkeystool package:com.android.calculator2 package:com.android.htmlviewer package:com.android.providers.calendar package:com.android.bluetooth package:com.android.calendar package:com.android.browser package:com.android.music package:com.google.tts package:com.android.email.policy package:com.android.qxdmlog package:com.android.mms package:com.android.provision package:com.htc.copyright package:com.android.providers.media package:com.android.certinstaller package:com.google.android.deskclock package:com.android.updater package:com.android.settings package:com.google.android.carhome package:com.google.android.street package:com.google.android.apps.genie.geniewidget package:com.facebook.katana package:com.google.android.googlequicksearchbox package:com.android.providers.drm package:com.adobe.flashplayer package:com.android.musicvis package:com.google.android.apps.unveil package:com.google.android.apps.listen package:com.android.wallpaper.livepicker package:com.htc.web2goshortcut package:com.android.packageinstaller package:com.htc.fieldtest package:com.android.providers.telephony package:com.android.providers.subscribedfeeds package:com.svox.pico package:com.android.email package:com.google.android.apps.maps package:com.google.android.latinimetutorial package:com.android.providers.settings package:com.android.magicsmoke package:com.android.providers.downloads package:com.amazon.mp3 package:com.android.server.vpn package:com.google.android.apps.googlevoice package:com.photobucket.android package:com.android.soundrecorder package:com.htc.android.htcsetupwizard package:com.android.vending.updater package:com.android.inputmethod.latin package:com.google.android.partnersetup package:com.android.cardock package:com.qo.android.oeme package:com.google.android.voicesearch package:com.google.android.apps.finance package:com.google.android.feedback package:com.google.android.apps.shopper package:com.google.android.talk package:com.htc.htcMessageUploader package:com.cooliris.media package:com.android.stk package:com.android.providers.userdictionary package:com.android.setupwizard package:android.tts package:com.google.android.stardroid package:com.twitter.android package:com.google.android.syncadapters.calendar package:android package:com.android.providers.contacts package:com.android.protips package:com.google.android.apps.uploader package:com.google.android.apps.translate package:com.android.providers.applications package:com.android.vending package:com.google.android.gm package:com.swype.android.inputmethod package:com.android.providers.htcCheckin package:com.android.wallpaper package:com.android.camera package:com.google.android.youtube package:com.google.earth package:com.google.android.gsf package:com.google.android.syncadapters.contacts package:com.google.android.backup #
To disable an app, you use the 'pm disable' command with the package name. I wanted to disable the T-Mo App, MyTracks, Goggles, Listen, Web2Go, Amazon MP3, Google Voice, Photobucket, the Setup icon, Finance, Twitter and Translate, so I did this...
pm disable com.tmobile.selfhelp pm disable com.google.android.maps.mytracks pm disable com.google.android.apps.unveil pm disable com.google.android.apps.listen pm disable com.htc.web2goshortcut pm disable com.amazon.mp3 pm disable com.google.android.apps.googlevoice pm disable com.photobucket.android pm disable com.htc.android.htcsetupwizard pm disable com.google.android.apps.finance pm disable com.twitter.android pm disable com.google.android.apps.translate #
#Package com.tmobile.selfhelp new state: disabled # Package com.google.android.maps.mytracks new state: disabled # Package com.google.android.apps.unveil new state: disabled # Package com.google.android.apps.listen new state: disabled # Package com.htc.web2goshortcut new state: disabled # Package com.amazon.mp3 new state: disabled # Package com.google.android.apps.googlevoice new state: disabled # Package com.photobucket.android new state: disabled # Package com.htc.android.htcsetupwizard new state: disabled # Package com.google.android.apps.finance new state: disabled # Package com.twitter.android new state: disabled
You'll need to restart your Launcher to see the changes (you can do this from Settings -> Applications -> Launcher -> Force Stop) and then you're done!