[G1 Android Development] ezterry:
A phones Journey

So a short recap for those not following along in the various threads.

The T-Mobile Phone in question

I've recently (off ebay) got a bricked HTC T-Mobile G1. (failed attempt to install the 2005 SPL.. (**sidenote)

Given it was a cheap phone it was a good candidate for jtag testing; after shorting something out on previous jtag work on my rogers dream. (the jtag port is the same on both phones.. and it did work on the dream for a bunch of tests before the incident)

Details of the de-brick are on this thread
​

Rogers Rom

Given the phone already has jtag attached (a little bit of a painful process) I decided to try unrooting a rogers rom on it before going to any other phone. So I took the nbh from the rogers installer (I still have the original 1.89.631.1 rom.nbh from when I created the hacked version which skipped the spl/splash1 portions of the flash.)

This flashed from the 2005 SPL without incident making the T-Mobile phone running a full rogers stack (splash image included) see op post for images of the phone/rom in this mode.
​

Unroot (I know this is what you are here for)

(Note an updated version of this process now exists on a wiki: http://wiki.cyanogenmod.com/index.php/JTAG_DREAM_AND_MAGIC )

So now with a fully locked SPL in place and jtag already set up time to hack out of the rogers rom to an EBI1 port!!

Prerequisites:

A) phone running locked roger rom 1.89.631.1 (actually as listed it will work for any rom on radio 3.22.26.17 and with offsets in my de-brick post other radios.

B) Jtag adapter.. I'm using OLIMEX ARM-USB-OCD.. however others will work as well.. my steps assume the openocd program on your computer which supports many USB/ParPort adapters. (my current cfg hopefully will improve but works for this hack.. note its for version "Open On-Chip Debugger 0.4.0" not the old cvs/svn version that is on the CD with the hardware)

C) outfit phone with jtag adapter.. this i will leave to another topic.. see the Jtag thread for the test points.

D) A HTC Serial wire.. I recommend without the +5 power line since blue light mode is sometimes hard to enter while the device is charging.. (information on my wire with links to parts. If you wish you can also attatch a USB wire to the USB leads which allows you to see serial output while flashing.. but ensure you can have the USB unplugged while the oemspl serial is in use.

E) 2005 SPL *.img file extract it from the zip file: http://sapphire-port-dream.googlecode.com/files/spl-signed.zip

MD5 (hboot.img) = cdf75d34e24937da1a8a84bcd72496c3

F) Recovery *.img .. your favorite flavor of '-R' version from this thread: http://xdaforums.com/showthread.php?t=566669

G) a sense of adventure :P

Procedure:

1) Ensure the jtag adapter is hooked up to the phone

2) power on phone into blue light mode

3) attach serial wire

4) connect to serial console (mtty in windows, "screen /dev/<serial device> 115200" in osx/linux)

5) start openocd or other jtag application (openocd -f dream.cfg)

6) start telnet to the ocd: "telnet localhost 4444"

7) run the following:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> [color=blue]halt[/color]
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x200000d3 pc: 0x0090861c
MMU: disabled, D-Cache: disabled, I-Cache: disabled
> [color=blue]mww 0x0090379C 0xea000013[/color]
> [color=blue]mww 0x9029d8 0x0[/color]
> [color=blue]load_image [b]<pathto>[/b]/hboot.img 0x0[/color]
No working memory available. Specify -work-area-phys to target.
no working area available, falling back to memory writes
524288 bytes written at address 0x00000000
downloaded 524288 bytes in 11.635834s (44.002 kb/s)
> [color=blue]mww 0x00000c0c 0x98000C4C[/color]
> [color=blue]mww 0x00000c08 0x98000C4C[/color]
> [color=blue]mww 0x00000c04 0x98000C4C[/color]
> [color=blue]mww 0x00000c00 0x98000C4C[/color]
> [color=blue]resume[/color]

The offsets are based off my de-brick post

* 0x0090379C is the CID bypass point for 3.22.26.17

* 0x009029d8 is 4 less than the previously defined breakpoint for 3.22.26.17 SPL modification (for other radios subtract 4 from my breakpoint location);

This is the location of a subroutine call to load the SPL.. since we are going to load it our self we want to nop the instruction.. no 0x0 is not the nop instruction.. but it will achieve the same results (and lack their of).

* load_image will load a file into the phones ram; point this at the hboot.img you downloaded as that is what we want to run

* 0x00000c00 to 0x00000c0c is the switch jump table in the 2005 hboot image once loaded for the boot mode.. we are forcing modes 0-3 to ruu/fastboot mode.

* then we can resume the CPU and optionally kill openocd.

​

8) into the serial termal run command "?" this ought to now output help on many commands (before it would only say invalid command)

9) run command "cego"

<phone will now boot into the ram image of 2005 SPL; display splash image (if screen is connected) and enter fastboot mode>

10) remove serial wire and attach USB wire.. or plug in usb part of USB/serial hybrid wire.

12) "fastboot flash hboot hboot.img"

13) "fastboot flash recovery recovery.img" (the ebi1 RA recovery)

14) "fastboot oem powerdown"

Now you can boot into recovery and flash your favorite EBI1 rom.. or if you don't like EBI1.. follow the EBI0 installation instructions
​

** sidenote: To packagers and those making processes.. Given all I have seen to date.. whenever possible flash radios and SPLs via fastboot not recovory zip files..

If you are stuck on a splash screen on boot.. both the SPL and radio are working.. they are just usually stuck in an invalid mode.. which is less likely to happen if flashed by fastboot.. this particularly applies where the 2005 SPL is involved.

Hacking can be fun.. but this hacking is not cheap

If interested donations are accepted​