This is a note for activating G1(latest UK RC9 version) via WiFi without a sim card. I also created a package of all files you will need, feel free to use it. However, please do this at your own risk. This process could brick your phone and void the warranty. I am not responsible for any damage.
A) download & install the android SDK
B) downgrade your system to get root.
My phone seems have a latest UK version(RC9) system, which doesn’t have a security hole for getting shell access. So we have to downgrade it. To do this, simply follow these steps. (Modified from )
- Format your phone’s microSD card to FAT32 mode: (You have to take out the microSD and format it by a card reader)
- The micro SD card came with the phone is formatted to FAT, not FAT32.
- Notice that if you are using Mac OS X, be sure to clear all hidden files (use ls -a to see them).
- Download and unzip the RC7 image file. (I put this in the package, check out 0-DREAIMG-RC7/ in the package.) Copy the 0-DREAIMG-RC7/DREAIMG.NBH file to the SD card. (US user should find RC29 instead.)
- Turn the device power off.
- Hold Camera button, and press Power button to enter bootloader 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, restart your phone by pressing the scroll ball.
C) enable the debugging shell so that you can control the phone from your computer.
- Plug the phone to you computer. Power it on.
- On the PHONE, type the following: (it’s normal that you don’t see any feedback.)
<enter>setprop persist.service.adb.enable 1<enter>
For Windows users, ( I use Mac, so I didn’t test this. )
- The computer will see a new device and try to install it. On the hardware setup, tell it to get the driver from where you unziped the Android USB Driver. This will enable the phone to “really” connect with the computer and mount the SD. If you don’t do this, the following steps will NOT work.
- IF it didn’t work, restart by holding down the power button and turning off and on again. And do the <enter>reboot<enter> test. If the test did not work, you did something wrong. If it the test did work, it means you press Something! DO NOT PRESS ANY KEYS.
For Mac users, you don’t need to install any drivers.
- Go to the command line on your computer, and cd to your android sdk path.
- type adb shell on Windows. type ./tools/adb shell on Mac.
- If you see a $, congrats!
D) Now we are ready to get root. It’s simpler than you think.
1. on the phone keyboard, type: (You will go to the contacts, don’t worry.)
2. copy a busybox binary(in the package) to the phone to get a telnet client on it.
2.1 type adb push 1-root/busybox /data/local/busybox
2.2 connect to the phone by adb shell
2.3 chmod 755 /data/local/busybox
2.4 /data/local/busybox telnet 127.0.0.1
3. Now you have root!
E) remove the sim card locked screen.
From , we know that the key step is to insert a key "device_provisioned" into a sqlite db "/data/data/com.android.providers.settings/databases/settings.db". However, there is no sqlite3 client in the downgraded system. So, I put the sqlite3 binary extracted from a newer system in the package so that you can use it to insert the key by yourself. (The author of  says the binary on a newer system can work on the downgraded one, but I didn’t test it. Hope it works.)
- adb push 2-sim-card/sqlite3 /data/local/sqlite3
- connect to the phone by adb shell
- get root by telnet to 127.0.0.1
- chmod 755 /data/local/sqlite3
- /data/local/sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO system (name, value) VALUES (‘device_provisioned’, 1);"
- am start -a android.intent.action.MAIN -n com.android.settings/.Settings
 g1 android phone without data plan activation
 How to register the G1 without a sim or data plan
 How to Root, Hack, Flashing your G1/Dream Read first!!