[G1 Android Development] Koush:
Why should you root your Dream/G1?

You can install a full Linux distribution, like Debian.

You can run applications that require root, like Screenshot and Auto Rotate your Browser and or any other application.

You can install the latest Android build directly from the Android source tree.

Customize your boot image.

Create full backups of the state of your phone.

Create custom ROMs.

Install Applications to your SD Card to save space.

Use your phone as a tether to connect your computer/laptop to the internet.

Turn your phone into a wireless router that provides internet access.

Well, hopefully one of those reasons convinced you to get root access on your phone!

Preparing to Get Root on your Phone

Getting root on your phone involves exploiting a security hole that existed in an early version of Android. The versions with the security holes are known as RC19, RC28, and RC29 (or RC7 or lower for UK phones). As of RC30 (RC8 on UK), Google patched the security hole so that your phone can not be rooted (don't worry, we can still root it!).

To check your version, go to the Home Screen, click your menu button, choose "Settings", and then click "About phone". You will then see the following screen:

If you have US-RC30/UK-RC8 or higher, you will first need to downgrade your phone to a previous version. (Skip these steps otherwise)

Format your phone's SD card to FAT32 mode:

Hook your phone up to your computer using a USB cable and then wait for the notification to show up in your title bar of your phone.

Click the notification, and then click "Mount".

A new removable disk should show up on your computer. Right click it and select Format, and select FAT32 as the file system type.

Download and unzip the RC29 or RC7 image file. Copy the DREAIMG.nbh file to the SD card. (RC29 for US, RC7 is for UK)

Turn the device power off.

Hold Camera button, and press Power button to entry boot loader mode. You should see a gray/white screen with instructions to flash your phone with the update on your SD card. If you don't see that, make sure you followed the instructions properly.

As per the on-screen instructions, press the Power button to start upgrade procedure. DO NOT DO ANYTHING TO INTERRUPT THIS PROCESS.

After it is finished, perform the restart your phone.

Rooting your RC29 or lower phone:

On RC29 phones and lower, anything you type into your keyboard is also being run in a hidden console with root permissions. More information regarding that at the bottom of this post. But, to get root access, do the following:

Instructions:

Download recovery.img or the new version by Amon recovery-RA-dream-v1.5.2.img and copy it to your SD card (see the previous instructions on how to copy from your computer to your Phone's SD card).

Download the Hard SPL and copy the zip file to the SD card.

All files must be on the root of your SD card.

Restart your phone. Wait for your phone to start up fully and show the home screen.

After your phone starts up, hit the enter key twice, type "telnetd" and press enter. (Yes, it will start up a contact search, don't worry. Just type it.)

Download an Android "Telnet" application from the Market and connect to localhost.

If you connect successfully, you will have a root prompt "#".

Type the following into Telnet (these commands will give you root access easier in the future):

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

cd sdcard

flash_image recovery recovery.img

cat recovery.img > /system/recovery.img

Now you have root!

What To Do Now That You Have Root

Now that you have root, you will want to apply "Hard SPL" to your phone. HardSPL is what will allow you to apply flash images from other regions (like UK on US phones, and vice versa), create full backups of your phone, install the latest build from the Android source, and usually resurrect your phone if it is "bricked". You have already downloaded the file to your SD card, so now you can apply it.

Power off your phone.

Start up in recovery mode by holding home and pressing power.

You will now enter recovery mode. You should see an exclamation.

If you do not see a menu on screen, press Alt-L to show the menu.

Press Alt-S to apply the update from the SD card.

After the update is complete, hold Home and press Back to restart.

And now, the last step! You are still running an old version of Android, but you want to upgrade to the latest and greatest update! You can do this, and not lose root by downloading modified versions of the updates.

First, choose a modified image from the list below:

ADP1.1: (md5: bacc58302e0b239d66c7bcc8db6c434b)

http://jf.odiness.com/v1.41/JFv1.41_ADP1.1_BuildEnvironment.tar.gz

http://android-dls.com/forum/index.php?f=24&t=241&rb_v=viewtopic

http://andblogs.net/2009/01/jesusfrekes-14-images-are-out/

RC33: (md5: f24b6c237775147cb4bc42efc2393973)

http://jf.odiness.com/v1.41/JFv1.41_RC33_BuildEnvironment.tar.gz

http://android-dls.com/forum/index.php?f=24&t=241&rb_v=viewtopic

http://andblogs.net/2009/02/new-rc33-based-images-from-jesusfreke/

RC8: (md5: de2d0d34adbb4015ee3aa5e4e7ca3c07)

http://jf.odiness.com/v1.41/JFv1.41_RC8_BuildEnvironment.tar.gz

http://android-dls.com/forum/index.php?f=24&t=241&rb_v=viewtopic

http://andblogs.net/2009/01/jesusfrekes-14-images-are-out/

Download the image.

Rename it to update.zip.

Copy it to your phone's SD card.

Turn your phone off.

Start up in recovery mode by holding Home and pressing Power.

Press alt-W to wipe your device. (You need to do this, or the device may hang at the flashing Android screen)

Press alt-S to apply the update.

And that's it! Remember to check the links up top to learn how to use root to do the advanced things I mentioned.