[G1 General] natmanz:
When Rogers released a new ROM for the Dream this week, I was all excited to have the SMS bug finally fixed and see what else has change... but... I didn't want to lose fastboot or all of my data and settings. So, I figured out how to apply part of the Rogers update to my phone (boot.img and system.img ONLY). My phone still has the stock SPL (1.33.0009) and radio. Here's how I did it. These directions aren't for everyone... here's what you need to know to do this:

Hex editing, extracting a chunk of data from one file into a new one

Using a recovery image to flash boot and replace /system

WARNING: MAKE A NANDROID BACKUP FIRST!

THIS HAS ONLY BEEN TESTED BY ME, SO USE AT YOUR OWN RISK!

Here's what I did:

1.

Grab the update file from rogers.com/techsupport: RUU_Dream_Rogers_WWE_1.86.631.1_release_signed_NoDriver.exe

2.

Don't plug your phone into USB (we won't need it!). Run the updater. When it gets to the first prompt, find the installer files in your temp directory. For example, C:\Documents And Settings\Username\Local Settings\Temp. There will be a file in {Random GUID}\{Random GUID}\rom.nbh. I had to run the installer a couple times before I could find this file. Copy it to a safe place and cancel the update installer.

3.

Open the file with a hex editor. At offset 0x240 you should see:

000240 00 00 50 01 00 00 08 00 00 b0 04 00 00 e0 1c 00
01500000 00080000 0004b000 001ce000
000250 00 48 19 00 00 b5 c7 04 40 08 00 00 00 00 00 00
00194800 04c7b500 00000840 00000000

These are the sizes of the different images. The order is:

radio.img / SPL / Rogers Logo (splash1) / recovery.img

boot.img / system.img / data.img / NULL

4.

Extract each of the images (well, at least boot and system). radio.img starts at offset 0x300. Place them on your phone's SD card.

The md5sums of the files that I have are:

57d1e20d3b00ea8eb45359849d8c9e30 boot.img
16d47f934d457a1d5681eed966603af3 radio.img
a480ef5fc3c526fc3b8e015710c93deb recovery.img
7c7bc04f584c7c2f3276e6940fb1d0a5 spl.img
715e89c778663da946f5e9026153d480 splash1.img
328da2f5c5b37a8992710662c33e25ea system.img
19ecc8995c7a1f7669104a1a973975fb userdata.img

5.

Go into fastboot on your phone, run "fastboot erase system".

6.

Fastboot your phone with a recovery image that has a nandroid restore tool. I used the initrd from Amon_RA's Recovery Image RAv1.2.1G and the kernel from the stock Rogers recovery image.

7.

Use the nandroid restore to flash boot.img and system.img. You can probably use nandroid restore from the menu in Amon_RA's Recovery if you place the boot and system files from step 4 in the right place. I ended up flashing manually from an adb shell just so I could see what was going on:

mount -o rw -t yaffs2 /dev/block/mtdblock3 /system
cd /system
unyaffs /sdcard/rogers-update/system.img
# Note that we did step 5 so that /system would be nice and empty before using unyaffs.
cat /dev/zero >> /dev/mtd/mtd2
/system/bin/flash_image boot /sdcard/rogers-update/boot.img

8.

Reboot your phone and wait a long time while it rebuilds the cache. You can do an "adb logcat" to watch it scan every app while it's booting.

Done!

PS: This probably works for the Magic too, but the sizes of the images may be different. I haven't tried downloading the Magic update to check.