[myTouch 3G, Magic General] mastakebob:
So, i'm sure there's many posts about this, but I thought I'd drop in my 2 cents. Basically, the purpose of this post is to try and help completely new users get acquainted with the world of Android "ROMing". I know there's beginners tutorials and wiki's and such, and I'm very grateful for all the time put into them by their writers, but the fact remains that they're written by experts, and as such, their expertise shines through and can sometimes confuse new users such as my self.

Up front: I'm an AT&T customer who's using a Rogers branded HTC Magic purchased from ImportGSM. I'm using Rogers cause Rogers has the same 3G bands as AT&T. I am coming from a Sony-Ericsson dumbphone. I use Gmail for my primary email and applied for a Google Voice account a while ago (got the account before getting the phone). I'm a practicing computer engineer so if I lapse into jargon, I apologize.

READ THE ENTIRE POST BEFORE PERFORMING THESE ACTIONS

OK, so you got an android phone (if you're on this forum, its most likely an HTC Magic/Dream/Hero) and you want to install new ROMs onto it (for whatever reason, just to do it, to get more functionality, to remove the carrier 'branding', whatever). You've done your research. You've read through the wikis (http://wiki.xda-developers.com/index.php?pagename=HTC_Sapphire_Hacking) and you're still a little confused as to where to start, or you're worried you're gonna brick your phone.

First, relax, as long as you follow the instructions, there's little chance of bricking your phone.

Second, some vocab:

SPL: Secondary Program Loader. don't worry too much about this, you shouldn't have to mess with it. I like to think of it as your phones BIOS. There's an off chance that you'll have a "perfected" SPL (.0006 or .0010), which basically means that you have a phone that is hardened against hackers, but as long as you use the one touch root method described below, you won't even notice it. You won't be able to use the Adb/Fastboot/Android SDK method mentioned below, you'll just get a "no access" error when you try to terminal into your phone.

ROM: Catch all term for software to be loaded onto your android. Generally comes in two flavors, a Recovery ROM, and what I call an Operating System ROM. A Recovery ROM is what gives you root access. An Operating System ROM is the user experience (where Amon_Ra or Cyanogen or others mix and match features to make a better user experience). I know that Operating System ROM might be misleading, but its the closest computer analogy I could come up with.

Now, this process will completely refresh your phone, removing all of your contacts, apps, etc. So before you start, if you have stuff on your phone you want to save, best copy them somewhere off your phone now. There's free apps out there to do all of this.

Lets get started.

Now, the first thing you're gonna wanna do is get something called "root" access to your phone. This allows you to install those fancy homebrewed ROMs that people are talking about. To get root, you have to install a recovery ROM. Installing a recovery ROM is is roughly similar to flashing a new BIOS on your computer. Except in this case, its on your phone and it gives you unrestricted access to the phone (like the Root user in Linux). There's two ways of getting Root. The first way is to install the Android SDK onto your computer and image your android with one of the recovery ROMs via your computers command line. I won't get into details on this one because its not the method I chose, and instructions are all over the web on this one. NOTE that this method doesn't work with updated Rogers phones. They installed the 'Perfected' .0010 SPL effectively removing remote command line access thus making this method a non-starter. The other way is to use the "one click root" program, which is a program you install on your Android phone. To do this, go to the one click root website (http://www.ryebrye.com/blog/2009/08/16/android-rooting-in-1-click-in-progress/). Download the .apk file and drop it onto the SD card in the Android phone (you'll have to connect the phone to your computer via USB, and select "Mount SD card". then simply drag and drop the .apk onto the SD card in your computer's file browser). Then, on the android phone, open up your file browser (I suggest Astro or Linda, both free downloads from the market) and open the .apk using the default Android application launcher. It should be a dark screen with a text box and a few buttons. The textbox should have a URL in it pointing to a .img recovery image (This is the cyanogen one). You'll first want to make a backup of your current (factory) ROM by pressing the (i believe) botton button. It'll work for a few seconds. Then you're ready to flash the recovery ROM. You can either accept the default (the cyanogen, which works fine) or specify a different ROM (such as Amon_Ra's which has slightly more capabilities) by entering in a different path (URL or path to SD card if you have a recovery image stored on the SD card). Then hit the first button to begin the flash. Wait for it to finish. DO NOT DISTURB THE PHONE WHILE FLASHING.

Once its finished flashing, congrats, you've rooted your phone. Now power off the phone, and power it back on while while holding power and Home. Hold Power and Home the entire time till you see an 'old computer' style menu come up. Should have some options such as reboot, install update.zip, install other .zip, wipe data/factory reset, etc. you should be able to use the trackball to cycle through the selections. The botton should have something like <cyanogen/Amon_Ra> recovery vX.X.X. If you see this screen, then you've successfully rooted your phone. Congrats.

Now, before you do anything else, IMMEDIATELY perform a nandroid backup. This should be on of the options in the recovery ROM. What this is doing is creating a backup of your current phone configuration so if anything goes wrong with installing the hacked ROM, you can revert to the state the phone is in now.

Next, perform a data wipe. There should be a selection for "wipe data/factory reset" or something similar. Select that. Wait for it to finish wiping your data from the SD card.

Now to install other hacked ROMs, just download whatever ROM you want to install from the xda site. Check the bottom of this page for a listing of the main ones (http://wiki.xda-developers.com/index.php?pagename=HTC_Sapphire_Hacking). It should download as a .zip. Copy the .zip file (DON'T UNZIP IT) onto the root of the SD Card (you can do this while in recovery mode by mounting the SD card or by physically removing the SD card from the phone and putting it into a card reader on your computer and copying the files). Once you have the ROM .zip on the SD card, with the SD card in the phone, select "install other .zip" or something similar and select the .zip file of the ROM you want to run. Should be some combination of the creators name (Amon_Ra or CM (for CyanogenMod)), what board the .zip is for (32A, 32B), what version the ROM is (4.1.1 or something). Then select "home" to confirm that you want to do this and wait for the periods to stop appearing. Once it stops, you should be able to select "reboot".

After it reboots (you should see different splash screens than when it was factory configured, except for the very first screen which on mine is "Rogers". Mine goes from Rogers to "Android" spelled out in blue text) you should have a fully functioning phone running a hacked ROM.

If it doesn't boot fully (which mine did a few times), try a different ROM or try wiping your data again. If all else fails, go into your recovery ROM (power and Home) and restore the Nandroid recovery image you made earlier.

Once it boots, it should have a tutorial on how to use Android.

When you get to the google login, I would suggest setting up your APN settings prior to doing that. At the google login screen, hit the menu button and select "APN Settings". Select add new APN (either an on screen choice or brought up by the menu button) and add in the APN details for your provider. You can find these easily by googling "<your provider> APN settings". Log into Google and you should up and running.

I just kinda threw this semi-tutorail together, so it may be a little confusing, but I tried to explain everything as best as I could. I know that i found all of the different ways to get root and the different ROMs and such to be very confusing. Just throwing out how I went about doing it.

Disclaimer: one click root works by exploiting a vulnerability in Android, which was closed by Google on Aug 11 or so. Therefore, if you have a factory Android build from that was released after Aug 11, one click root may not work for you, and you'll have to go the SDK route. I updated my Rogers phone in mid oct 2009, and my build was still prior to Aug 11, so don't just assume cause its after Aug 11 that it won't work on your phone.