Disabling stock apps permantly on nand lock phones...

Second, please note: This is not a permant root. The data, however, that controls packaging is on the /Data partition which is read-writable since it needs to be shared with the locked /system partition and the Market.

The quick notes I have:

1. Install Visonary.
2. Install Terminal Emulator (or similar that includes su)
3. Run Visonary.
4. Run terminal emulator.
5. su
6. pm list packages > /mnt/sdcard/packages.txt
7. Now, plug phone into a computer of your choice and mount the sdcard.
8. copy packages.txt to disable.sh
9. Edit disable.sh and remove the stuff you want to keep. If your not sure if it should be disabled either google search it, or worry about it later.
10. Make sure you NotePad, VI, EMacs or similar. DO NOT USE WORD NOR WORDPAD. If you don't understand this, then consult with someone who does please
11. Add #!sh as the first line in diable.sh
12. Now, cleaning unmount your phone.
13. in the Terminal Emulatar type:
14. sh /mnt/sdcard/disable.sh

DISCLAIMER: Good luck and it's not my fault if the above doesn't work.

This works for both the G2 and the mytouch 4G as posted from the good folks at XDA-Developers.com:

Disabling stock apps on the G2 (and other NAND locked devices)As promised on Twitter (@paulobrien), here's a guide on how to disable your chosen stock junk-ware on your G2.

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!

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:

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...