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.

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.

Just as a note, Step #4 failed for me due to a build number error as I expected it would being as I had already installed that exact full update. Apart from that, everything worked beautifully. I am now on FRG22D with root access and Clockwork recovery still intact.

One small thing to note: When I booted in I still had the system update notification on my screen as I had received it prior to rebooting into recovery. I just hit "Install Later" and it hasn't bugged me again. About phone screen says my system is up to date.

I'm able to follow through the guide but am having problems in clockwork recovery, I cannot access any files via adb. I see them when the phone is in standard mode but not recovery. I figured I'd try to install them directly from clockwork recovery and the installation fails. Is this a clockwork recovery issue or am I missing something?

Thanks

switched to sprecovery and still no go. I can't access any files on the sdcard via adb, I see directories but no files are visible when I ls. (I was never into Linux but spent a lot of time on Unix in college so I'm a little rusty)

I'm able to follow through the guide but am having problems in clockwork recovery, I cannot access any files via adb. I see them when the phone is in standard mode but not recovery. I figured I'd try to install them directly from clockwork recovery and the installation fails. Is this a clockwork recovery issue or am I missing something?

Thanks

switched to sprecovery and still no go. I can't access any files on the sdcard via adb, I see directories but no files are visible when I ls. (I was never into Linux but spent a lot of time on Unix in college so I'm a little rusty)

I think I got it now... I was trying to "adb push" while in "adb shell" a quick read here helped immensely. I'm in the process of installing the FRG01B update now. Hopefully I'll get this right. I mainly root to have the ability to back up all apps and delete bloatware, otherwise I like to keep it stock.

Thanks for this alternate method Motocache. I had another question, maybe you can help. I'm looking to upgrade from FRG01B already rooted to FRG22D. As you might remember I was planning just trying the OTA upgrade before flashing sprecovery (using the root any version instructions, and now even these instructions)

After lots of research and thought, it seems the best course of action is to take a full nandroid backup first of my current system since it's running absolutely great right now and want to be able to revert back to this version if something goes wrong.

Thanks for this alternate method Motocache. I had another question, maybe you can help. I'm looking to upgrade from FRG01B already rooted to FRG22D. As you might remember I was planning just trying the OTA upgrade before flashing sprecovery (using the root any version instructions, and now even these instructions)

Click to expand...

You're welcome. I bet you didn't know you had your own commercial:
Your handle made me remember that from Ren and Stimpy for some reason.

After lots of research and thought, it seems the best course of action is to take a full nandroid backup first of my current system since it's running absolutely great right now and want to be able to revert back to this version if something goes wrong.

I'd also take out 756 since the file won't be there to set permissions on. If you didn't, it would be fine because there is no "assert" around it. If there is an assert around the call, then the whole thing will die right there if that step fails.

I though it this would work but what threw me off is your "fixsuperm" script included in your root any version updater-script. Should I also be adding this script to be executed as well?

Click to expand...

Well, that's a cleanup thing if the current version of Superuser.apk that you're running is old and might have incompatible data in the database/directory for Superuser. The original developer is no longer even putting it in his package because many phones have trouble with it. Our phone seems to be fine calling an external shell script in SPRecovery. I'd say keep it or kill it -- it probably won't matter.

Awesome! Thanks Moto. Everything worked out great. I came from FRG01B by Pete rooted and now I am running FRG022D rooted. Everything went good and I'm currently downloading Flash 10.1 from the market. On a side note, I was sure how to Verify the right file is there in adb shell. It's all good I just managed to look at the size of the file that was pushed and made sure it matched the one on my computer. Thanks again!

I get a similar error but umounted does not help. My error is
assert failed: !less_than_int(1279140904, getprop("ro.build.date.utc"))

OK that error was due to the 2.2 ota trying to be installed, I was already on that. When i try to install the 2.2 to frg22d error, I get this error:
assert failed: apply_patch_check("/system/lib/modules/tiwlan_drv.ko","[really long string]","[really long string]")

Could this be because the frg22d ota was sent to my phone this morning but not installed?

Useful Searches

About DroidForums.net

DroidForums.net was founded in 2009 originally dedicated for the Motorola Droid, the first Verizon Android Phone. We have since expanded our community to cover all Android Phones, Android Tablets, and Android Wearables. We discuss various topics including Android Help, Android Device Reviews, Android Apps, Phone Accessories, Android Games and more. Our ultimate goal is to be the Internet's best and largest Android Forum.