I've had a couple questions on this, so I figured rather than answering it privately, repeatedly I'd just make a post. This is not going to be one of my huge treatises - just a quick bullet list and you'll have to search if you don't know how to do any of the things in any of the bullets.
Chance are that most folks will find it simpler to just install metiCkOne's package from here which would probably achieve a similar outcome. The below is for those that kind of like to roll their own starting with files directly from Momma Motorola (or Google or whoever).
On my phone that I actually use (i.e. not my DEV phone) I originally started with a new in box (ESE81 - Android 2.1) phone, used ESE81_SPRecovery to put on SPRecovery, and then flashed the original FRG22 leak (not the more recent FRG22D leak). That leak was pre-rooted. Subsequently I upgraded to one of ChevyNo1's overclocking kernels.
Once the official FRG22D OTA came out I wanted to upgrade so that the Market would show correctly and so I'd be running basically a virgin build -- but rooted of course.
To do it the way I did it you'll need:
- ADB and appropriate drivers installed
- The FRG01B "master OTA"
- The FRG01B to FRG22D OTA
- Just the .zip file from my "root any Droid 1" procedure (if you do it right - or the whole procedure if you don't).
- The .zip file for whatever kernel you want to run if you don't want to stick with the stock kernel.
This all assumes that you're running a rooted phone that has a custom recovery on it. Remember, I was already running a FroYo build -- just an older one than I was upgrading to, so if you're coming from a 2.1 build, your experience could vary (heck, it could vary anyway).
Note: Do a full Nandroid backup (not simple) just in case things turn out crummy. It's cheap insurance.
Also: I did not do a factory reset or clear cache or anything else. The result appears to be flawless. No boot issues, all my apps are still there - they all still have their same settings, etc. The only extra step I had to do was go into the settings for the Market and clear data (for that app only) to get Adobe Flash to show up in the Market. On the one hand, I was going from FRG22 to FRG22D, so you might expect this. On the other hand, I went straight from ESE81 to FRG22 without clearing data or cache either. Maybe just lucky.
In the steps below where I "adb push" files to the phone, I always "adb shell" in afterward and make sure the right file is there (look at the size). Also make sure that you're seeing everything on the SD card. If you don't see anything on the SD card or only see the one file you just pushed, you failed to mount /sdcard in recovery. Do "mount /sdcard" in recovery and re-push the file. You only need to do this once -- it will stay mounted for the duration.
Here's what I did:
- Unless your phone is already in recovery, do "adb reboot recovery" to get it there.
- Mount /sdcard in recovery.
- "adb push" the FRG01B master OTA to /sdcard/update.zip. This OTA is meant to write over top of just about any prior version of Android -- including the original FRG22 leak. Verify the right file is there in adb shell.
- Install the update.zip. Afterward stay right where you are in SPRecovery.
- "adb push" the FRG01B to FRG22D OTA to /sdcard/update.zip. Verify the right file is there in adb shell.
- Install the update.zip (you should just be able to run that same menu choice again without ever leaving the menu).
- "adb push" my .zip file from "what you need" #4 above to /sdcard/update.zip. Verify the right file is there in adb shell.
- Install update.zip again.
- If you're going to install a different kernel, repeat steps #7 and #8 using the .zip file for your kernel.
- Reboot the phone.
As long as you don't reboot before you do step #8 your custom recovery should still be intact. If you messed up and rebooted prior to #8, chances are that Flash Recovery Service put your recovery back to stock and now you'll need to flash the SBF from my other topic in order to get SPRecovery back.
In hindsight this topic will possibly cause more problems than it solves for most people. I could be wrong, but I think that most folks that can follow the above without help probably already did it and those that need this procedure may not know how to do the steps with the minimal detail provided. If that prediction turns out to be true for you, just ignore this thread and perhaps go with metiCkOne's package.
Geez, that still turned out to be a huge post. I just can't write short procedures I guess.