Flashing a new ROM to your G1/Dream Android phone is actually really simple. And with the creation of modified Recovery images, we gain more and more options with backups, flashing any zip file, and more.

As you do this process over and over, you’ll become more comfortable flashing updates and find ways to recover from a bad flash.

Signed or Unsigned?

When trying to determine if you are able to flash your phone, you must consider what it is you are trying to flash.
A signed update comes from Google, and can be updated without any expected painstake, and requires NO alterations to your phone. Simply folow the flashing instructions below.

In order to update your phone to an unsigned image, such as JesusFreke’s or Haykuro’s ROMs, we need a bootloader that won’t be so picky. This is where Hard SPL comes into play!

Download Hard SPL and use it as the update.zip in the flashing instructions to flash the bootloader with a customized loader.

How to Flash your G1/Dream Phone

Flashing your phone is simple:

  • Copy the image you would like to flash to the root of your SD Card as update.zip.
  • Reboot while holding the HOME button to enter the System Recovery Tool.
  • You’ll see a screen with a caution symbol on it, at this time hit ALT+L on your keyboard. The kb doesn’t backlight during this step, so turn on a light if needed.
  • Lastly, start the update by pressing ALT+S.
  • When successfully completed, reboot with the command shown on screen;
    HOME + BACK (reboots on release, not while holding).

When applying updates to your image, you rename the file to update.zip (all lowercase, verified single extension) for the bootloader to read it from the root of the SD Card. If you don’t name it properly you will have problems; see TroubleShooting for more information.

Update on how to Flash

If you’re running Cyanogen’s Recovery Image v1.4, there is now an option to “apply any zip from sd.” Don’t let this entirely fool you though, the zip file must be in the root of your SDCard, but it sure saves the hassle of renaming files, and you can keep multiple versions on your card if you so desire. Cyanogen tends to keep a stable branch, and an experimental branch.


  • If you receive an error about not being able to find update.zip on the SD Card, be sure to check if a) your card is formatted as fat32, b) Windows isn’t set to ignore extensions (users end up with update.zip.zip because of this). Beyond these, you might need to check the MD5 of the file, however the bootloader should tell you that it’s corrupt.
  • If you end up going into a constant reboot (more than 3 or so) or it hangs for more than 3-5 minutes at the boot image, then chances are you have an application or setting that is incompatible with your latest flash.
    In these instances, we must WIPE the phone, and reapply.To do so, refollow the instructions above, however this time perform the WIPE function, ALT + W, before flashing the phone.

There you have it! You are now able to update to the latest ROMs from all the fancy modders (i.e., Cyanoegen, JesusFreke, Haykuro, TheDude, etc). Keep in mind, you may need to do a wipe, which will result in loss of data. It is your responsibility to create a backup as necessary! I’ve recently found and enjoyed using Backup for Root.

At the time of this writing, I’ve been using Cyanogen’s experimental ROMs, but he has a stable branch as well:

Remember to copy them to the root of the SDCard as update.zip so the Recovery Image will find it.

You’ll also need to flash the OTA Radio Image, found on HTC’s support site, that is compatible with Android 1.5. If you don’t do this, before or shortly after you will notice instability issues! This is flashed the same way, by copying the file to the root of the SD Card as update.zip and following the instructions in this post.