Android Rooting is a surprisingly safe and easy process, all things considered. If you stick to just flashing roms and recovery, you won't brick your phone, and you will always have backups to use. This will also hit 99% of the functionality, so it's all you ever really need to do.
Overview
To understand, you need to understand a breakdown of the parts of your phone relevant to rooting and flashing custom firmware. These are:
1) Radio
2) SPL
3) Recovery Image
4) ROM
Radio
Flashing the Radio is (supposedly) a safe process. It's exactly what it sounds like - updating the code that runs the Cell, BT and (possibly) WiFi chips. It can improve performance on these or fix issues. Generally, you'll never need to flash the Radio.
SPL
SPL is the Second Program Loader. Think of it like a partition layout for your phone (it's not quite, but it gives you an idea). Anything you run, you run through the SPL. That very first screen you see when you boot your phone is part of the SPL.
Aside from this, the SPL determines partition sizes. A stock Android phone has the following 3 partitions:
1) /System - This is where the OS is stored and is generally mounted Read-Only while in use. Roughly 60meg on the G1, 90-something on the myTouch.
2) /Cache - this is where OTA updates are stored. It's the same size as the /System.
3) /Data - This is the remaining internal flash space. It's where you store apps, files, settings and anything else you use.
Loading a different SPL is mostly done on the G1 to allow it to install ROMs which need more space than the default /System uses. Since ROMs don't use /Cache or OTA updating, you can ditch /Cache completely.
Flashing your SPL is *DANGEROUS*. Think twice before doing it. You CAN brick your phone this way, leaving you with a rather useless hunk of plastic.
Recovery
Recovery Image is an alternate OS from the ROM, accessed by holding HOME+Power when booting (Camera+Power for G1? Whatever). The most basic function is to allow you to flash new ROMs. This is your safety net - fuck up a ROM? Boot into Recovery and flash a new one. Need to update? That's Recovery too.
On top of this, Cyanogen and RA Amon have released more advanced Recovery Images adding more features - for example, NANDROID(complete phone backup/restore), SDParted(Script to automatically partition your SD card), full ADB and USB Mass Storage support, and wipes for all kinds of data caches. If you get handy with it, you can do all kinds of crazy stuff from your Recovery, making it an invaluable tool. You can flash Recovery images to update as new ones come out. I recommend RA Amon's, as it's based on Cyanogen's but improves on it.
A note: It's theoretically possible to bricky our device if you were to flahs an unbootable recovery image and then break your ROM before fixing it. I'm not aware of this happening, and you shouldn't worry, but keep it in mind when it comes to making changes to both the OS and Recovery in the same reboot.
ROM
The ROM is what you interact with every day. It contains the actual OS and resides on /System. You can do all kinds of fun stuff with ROMs, which is most of what you see in this thread. If you fuck up flashing a rom you can't run, or if you go crazy and rm /*, no big, you can boot into recovery and restore your Nandroid/Flash a new update. Basically, don't worry about screwing this up.
Cooking ROMs
Modaco provides an Online Kitchen allowing you to "cook" your own roms, tossing in or throwing out most anything you'll need in your setup. Check it.
A note on themes
Themes are another part of the Rooting experience. They allow you to change the look and style of your device. There are 2 methods:
- Flash an update.zip designed for your ROM, which will replace the .apk files completely. This is the older method and, while easier, it's less compatible and it's slowly falling out of use.
- Metamorph is Stericson's newest app, and it's an amazing idea. Since .apk files are just renamed .zip files, and theming generally consists of replacing a .png file somewhere inside of these apks, Stericson takes a better, ROM-agnostic approach. The benefits include not having to reboot, replacing only the images that need to be changed (and leaving the rest of the app itself alone) and letting you pick and choose which parts of the skin you apply, instead of an all or nothing. Anyone can make a Morph, and most themes are being ported.
Why Root?
Rooting/Hacking is very popular, and for good reason.
Theoretically, hacked phones remove all software restrictions from the phone - anything that's possible on the hardware is possible with custom firmware.
Realistically, key features we're seeing now in Custom roms and root only apps:
- Custom kernels using better schedulers for better performance
- Also, code coming sooner. Cyanogen is now using 1.6r2(not used by anything official afaik) with bits and pieces of 2.0 - more is being passed down, and some people are running entirely on 2.0
- Automated under/overclocking - I believe Cyanogen currently underclocks the phone if it's not in use and overclocks when you're using
- Apps2SD - lets you install apps to your SD card, making up for the G1's non-existent Apps partition.
- Swap partition & compcache - same as on a PC, it's "virtual RAM", making it possible to keep more apps in memory at the trade off of being slightly slower to switch to them (still faster than loading from scratch, usually)
- Kernel hack which re-allocates some of the RAM used for the 3d processor to the main system. Degrades 3d performance, but increases overall performance.
- Custom themes letting you rice the shit out of your UI. Or just install something nice looking.
- Tethering, via USB, WiFi or Bluetooth.
- Built in Bluetooth OBEX/FTP support - not complete and there's free non-root apps in the market, but still.
- Custom recovery lets you make backups and restore your phone from any of them.
- More! You can get Google Navigation working outside of the US, we had Google Navigation for a few weeks before official release.
How To Root
myTouch 3G/Magic 32B
Look under "Rooting" on the HTC Magic page
HTC Hero (GSM, Android 2.1)
Look under "Rooting" on the HTC Hero page