Sunday, January 9, 2011

Retire my T-Mobile G1

I know this is not quite relevant to what I usually blogged, and I am also pretty sure that there are a lot better up-to-date articles on Internet which are related to the same topic. But I just feel I must write it down because it took me almost a day and half to finally retire my T-Mobile G1 phone, by that I mean two things:

  • Flash a custom Android 2.2 Froyo ROM on G1
  • Activate G1 without T-Mobile data plan

Here are detailed steps that worked for me, and the text are mostly copied and pasted from following two posts:

http://androidandme.com/2009/08/news/how-to-root-a-t-mobile-g1-and-mytouch-3g-android-phone/

http://istunner.com/?p=104

Downgrade to RC29

  1. Format your phone’s microSD card to FAT32 mode
  2. Download and unzip the RC29 or RC7 image file. Copy the DREAMIMG.nbh file to the SD card. (RC29 for US, RC7 is for UK)
  3. Turn the device power off.
  4. Hold Camera button, and press Power button to entry 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.
  5. As per the on-screen instructions, press the Power button to start upgrade procedure. DO NOT DO ANYTHING TO INTERRUPT THIS PROCESS.
  6. After it is finished, perform the restart your phone by pressing the Action key (press down on the scroll ball).

Root the phone - Automatically replace your recovery image with FlashRec

The purpose of this method is to use a bluetooth security exploit that existed in Android build CRC1 or lower.  It downloads and installs the Cyanogen recovery image to your phone.  Using this method is preferred because it does not overwrite your radio and SPL file like the manual install method.  Future updates to Android are likely to block this hack, but you should always be able to revert to the official CRC1 build and gain access using this method.

1. Download and install the 1-click root app flashrec-20090815.apk

First we need to download the application file that was created by Zinx.  This file is named flashrec-20090815.apk and can be located at Zen Thought or RyeBlog.  I suggest downloading the file on your PC to avoid corruption.  Copy the app to your SD card and install it using your favorite file manager like Astro or AppManager.

2. Launch the FlashRec application and backup your current recovery image

Before you can flash a new recovery image, you must backup your original once first.  Press the large button that says “Backup Recovery Image”

Step 1. Press Backup Recovery Image

Step 1. Press Backup Recovery Image

3. Flash the new Cyanogen recovery image

After backing up your recovery image, you should see a message that says “Backed up”.  Now you should see the button “Flash Cyanogen Recovery 1.4″ light up.  Click the button to perform the flash and do not touch your phone until you see “Flashed new recovery image.”  When you see the flashed image below it is ok to reboot your phone and check that the new recovery image loaded.

Easiest root method to date.

Easiest root method to date.

Stop and Verify:  Reboot your phone with the steps below to see if the new recovery image is loading correctly.

Power off your phone.
Press and hold the Home key and then power the phone back on.
You should be greeted by the new Cyanogen recovery image screen.

Cyanogen recovery image v1.4

Cyanogen recovery image v1.4

Now that you have the Cyanogen recovery image, you can begin flashing custom builds of Android.  Jump to the bottom for Part 2: Install a custom build of Android.

Upgrade the Radio Image to “ota-radio-2_22_19_26I.zip”

Since I downgraded G1 phone to RC29 using the DREAIMG.nbh method, the radio image was downgraded as well.  So I have to update to the latest Radio Image so you can load the latest roms and flash a new SPL file.

1. The new radio image has been posted on HTC’s support website, Android Roms page, or Haykuro’s Sapphire Port page.  In order to apply the Radio update, we must download the file “ota-radio-2_22_19_26I.zip”.

2.  After the file is downloaded, it must be placed in the root directory of your SD card.  This means to place it in the main directory and not inside any folder.  When the radio image file is placed on your SD card perform the following steps:

  • Power off your phone.
  • Hold down the Home key and power the phone back on.
  • Select apply any zip from sd or press Alt+A
  • When prompted, hit Home to write the image file.
  • When the radio image is finished updating, it should reboot your phone to the recovery screen.  You can select reboot system now or press Home+Back .

Stop and Verify:  You can check the version of your radio image to make sure it updated.  Go to Settings > About Phone > Baseband version.  The version number should end in 2.22.19.26l just like the original name of the update file.

Flash the SPL

Flashing a new secondary program loader(SPL) will rewrite your internal partition tables and free up more space on your phone.  This new SPL is required to load certain roms.  You must have the latest radio installed before flashing the new SPL.  If you do not have the latest radio loaded, flashing the new SPL can prevent your phone from booting.

Once again, this new SPL is only for:

  • Phone: US T-Mobile G1
  • Radio: 2.22.19.26I
  • Recovery Image: Recovery Image that allows you to flash custom roms (Cyanogen)

Flashing a new SPL will rewrite all your partition tables and will delete all data from your phone.  The main reason people flash a new SPL is because it increases your system partition from 70 MB to 90 MB.

  1. Download the latest SPL(1.33.2005) from Haykuro’s Sapphire-port page. It must be 1.33.2005!!!
  2. Copy the SPL file(spl-signed.zip) to your SD card.
  3. Reboot your phone into recovery mode.  (Power off phone.  Press and hold Home key then press power)
  4. Wait for Cyanogen’s recovery image to load and select “apply any zip from sd”.  Flash the spl-signed.zip file.
  5. After flashing the SPL, you must flash a custom rom or your phone will not boot.

Flash Cyanogen Android 2.2 Custom ROM

Now that the hard parts are over, we are ready to install a custom build of Android.  There are many to choose from and I will let you decide what to flash.  For daily use, I suggest using the latest stable release from Cyanogen.  For a complete list of ROM’s, visit the Android ROM Build Database.

All rom files come in zip format.  Download the rom of your choice and place it in the root directory of you SD card.

  • Power off your phone.
  • Boot into recovery mode.  (Press and hold the Home key, then hit the power button).
  • Before you flash a rom file, perform a wipe.  Press Alt+W to wipe the data and cache folders.  You must wipe when going form different builds of Android.
  • Wait for the wipe to finish and the recovery  image to display again, then select “apply any zip from sd”.  Flash the zip file of your choice.
  • After flashing any zip you should be able to reboot your system and watch it load to the home screen.

After changing Android builds, it came take several minutes for the first boot.  If you phone hangs on the animated Android logo, this is because you did not perform a wipe.  If you are stuck in a boot loop, return to the recovery image and make sure you wipe.

Activate wireless on the phone without data plan (only with a dead T-Mobile sim card)

Note: You must have latest Android SDK, adb tools and Android USB driver correctly installed first, so that your phone can be debugged through adb tools on your conputer.

  1. After the restart, you will see the “android” icon telling you to “touch” it. I did NOT touch it. I just touch an “blank” area so that the “emergency” call is not highlighted anymore. (you can test to see if you have root by typing on the PHONE this: <enter>reboot<enter>)
    [<enter> means press the enter key]
  2. Plug the phone to you computer.
  3. On the PHONE, type the following:
    • <enter>setprop persist.service.adb.enable 1<enter>
    • 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.
  4. You should be connected with the computer now. On the COMPUTER:
    • Open command prompt (start>run>cmd)
    • Type (all that are in bold):
      • cd C:\android-sdk-windows-1.1_r1 (assuming that you unziped to this location)
      • adb shell (This should give you “#” on the next line. If you get an error message “No device” or something, it means that your COMPUTER is not connected to the PHONE)
      • am start -a android.intent.action.MAIN -n com.android.settings/.Settings (this will force the “Setting” menu to popup on your PHONE)
  5. Now on you PHONE, you should see the Settings menu. Activate the wifi setting and connect to your wifi.
  6. Once you have wifi connection, you can sign into your Google account.