Thursday, March 25, 2010

reflashing custom firmware on HTC dream / G1

Ok, there's a lot of pages out there about how to do it, and cyanogen is perhaps the best (only?) place to start.  And xda is, of course, rather handy - but too many cluttered threads imho...

Why?   My G1 has been stuck on android 1.1, and as much as I like G1, I "needed" to have Evernote, Facebook and a couple of things that need 1.5+, and of course basic G1 doesn't have exchange sync.  The cyanogen page details all the other goodies, a fair few are nice to haves too.   So...

I'd recommend heading over the wiki, and following the instructions there - to the letter.   It's 4 simple steps really:

  1. downgrade - this takes you to a low level (ie hackable) version of android, that is, putting you in a position to do what you want
  2. exploiting the loophole (what they call 'rooting' it) and then installing a custom recovery program (i.e. cm_recovery), which essentially allows you to install the 'proper' firmware image (i.e. the android bit)
  3. installing the new (custom android) firmware image(s) - at least 3 of them
  4. installing audio pack - the basic firmware image only has 1 or 2 ringtones...
What requires some digging is the following...

In step 1, when you're trying to downgrade to the hackable firmware, what you may find is that you get the mysterious error "00028002 not allowed" just after  your G1 verifies the image.

[in a nutshell, format microsd card as FAT32, copy either RC7 (UK) or RC29 (US) image onto it, ensure it's called "DREAIMG.nbh", stick it in G1, hold camera and power button and off you go...]

The problem is the SD card isn't 'trusted', so the G1 rejects the firmware image.  What you need to do is similar to how you create a pandora battery on a PSP.  First things first, work out how to get the card's CID - either via the G1 (before you brick it), via the card in a Windows Mobile device and using QMAT (now PSAS, $$$) or some other black magic.  (I suggest using G1 itself, but see here).

Then, head off to here with that CID and do as it says.

What you need to do is (using a hex editor) copy the bytes in the image you get via email over the first bytes of your SD card.  (see here)

That makes your card 'magic', and in step #1, your G1 will quite happily work.

If you find out you're getting that weird error, and your G1 always returns to the rainbow screen (with error RUUNBH on top right), that magic card will sort you out...

Steps 2 & 3 are easy enough with cyanogen's instructions.   

Step 4 requires a quick look here.  Installing the HTC android dev kit comes in useful.

[edit]
Afterwards, noticed standard HTC headset (usb one) didn't work, but also killed all audio - requiring a reboot.   Repeat steps 3 & 4 magically cured it...

No comments: