[G1 General] davidrol:
The best solution

I performed this procedure during rooting my G1 without a T-Mobile data plan. I don't remember who published this info so I can't give credit where it's due. I found a root kit along with specific instructions here: http://forums.t-mobile.com/t5/Opera...oot-G1-even-if-it-has-1-6-android/td-p/237395. Once you downgrade then upgrade to 1.5 or cupcake, you are within the 'security hole' to root you G1. In order to proceed from this point, you must have a data plan or follow this procedure to enable wifi and log into google. Also, this process works without a sims card. Here goes.

Activate Stock G1 over WiFi

I've seen a few guides around the internet in regards to activating a G1 over wifi without a data package, and decided to test it myself. Since it worked, I'm compiling the information that I've gathered into one easy-to-read thread.

Standard disclaimer:

Bricked phones, not my fault.

The Setup

1x Stock G1 running cupcake, this phone has no root modifications on it.

1x USB cable

1x SD card, at least 128MB

The image file to downgrade to version RC29 of Android, download here

ADB for your computer:

Linux Download

Mac Download

Windows Download

Windows Only:

Windows Drivers for Android (XP only)

--End Setup--

1. Ensure that your SD card is formated FAT32, and place the DREAIMG.nbh, that came out of the DREAIMG-RC29.zip file, in the root directory of the SD card. (No, DREAIMG is not a typo.)

2. With the phone off, insert the SD card into your G1.

3. While holding down the camera button, turn on the phone.

3a. You should see a rainbow screen, followed almost immediately by a gray screen. (mileage and colors may vary)

3b. One of the lines on the phone should read: "Press power button to start update image".

3c. Press the power button

3d. Wait for the entire process to complete, do not interrupt! It will tell you it is done updating.

4. Reboot phone.

Download the appropriate ADB file for your system, if you're on a Windurrs machine you'll need to download and install the Android drivers as well.

Ok, we're done rolling back to RC29; and we have access to the 'sploit which gives us terminal access without seeing the terminal.

Until I tell you to later on, do not touch the screen for any reason. During the rollback process the screen has turned into hot lava and will burn your hand if you touch it. If you can't resist, and touch the screen not only will you be sans one digit but you get to reboot your phone and start over.

You should now be at this screen:

<pic>

5. Hit <enter>, type "reboot"(no quotes), and hit enter again.

5a. If all went well your phone just rebooted, yay good thing!

6. We're back to the last screen.

7. Plug your phone into your computer using your USB cable.

8. If you mistype this step or it doesn't work(because you mistyped), you'll need to reboot your phone and try, try again.

9. Hit <enter>, type "setprop persist.service.adb.enable 1"(no quotes), hit <enter>

9b. If all went well you should get an error message saying something like "cannot dial 7387767 7377478.7378423.232.362253 1, it's not an emergency number. This is a good thing, we hope.

10. Set your phone down.

11. Open a terminal on your computer, and navigate to the folder containing the adb file you downloaded earlier.

edit: First cd 'drag and drop the folder Tools into the terminal window. I will copy the proper directory path.

12. If all is well, you should be able to type "adb" and get a big screen of options.

13. Type "adb devices".

13a. You should see the following: <pic>

13b. If all you see is "list of devices attached", and nothing below it, reboot your phone and move back to step 8.

13c. type "adb shell" (no quotes)

14. Copy and paste "am start -a android.intent.action.MAIN -n com.android.settings/.Settings" into your terminal.(no quotes)

15. If your copy+paste-fu is strong, you'll see this screen: <pic>

At this point you're in. You will see the 'Settings' window allowing you to set up wifi, and connect to google data and hence the internet.

Regards, davidrol