Using RSD Lite to flash an SBF file -- correctly

Since a lot of our tools have made it into our hands by way of "leaks" we don't necessarily have manuals for them, really know how to use them completely correctly. We make guesses and if our guess works, that becomes the way we do it.

This guide is for anyone who:

Has ever used RSD Lite, given up at the "Please Reboot this Phone Manually" status, and closed RSD Lite despite being warned: "Application is currently busy. Closing application may DAMAGE the attached device. Do you wish to continue?".

Has never used RSD Lite, but are going to, and want to do it right when you do.

The action described in the first bullet is quite common, so if you've done it, you're not an idiot. I think pretty much every RSD Lite YouTube video shows it being done that way, and it doesn't seem to cause any trouble, so who cares, right? Maybe it's just me, but I'd rather see a result of "PASS" when doing something this critical if at all possible. Here's how to do just that.

Proper RSD Lite flashing procedure:

Be sure you have your SBF file somewhere that you can find it. Also, be sure your SBF file is good. If your file was originally zipped, then unzipping it would have given an error if it was corrupted so you're OK. Otherwise, hopefully the source of your file lists its MD5sum. If so, you should verify the MD5sum of your file to make sure it is not corrupt. You can permanently brick your phone with a corrupted SBF (if it's corrupted in just the right place).

Plug your phone into a USB cable attached to your computer. Depending on whether or not you have USB debugging turned on, have had your phone attached to the computer recently, etc., you will at least probably hear the "device insertion tone" in Windows, and you may see the New Hardware Wizard install the drivers for your phone. Wait until your computer settles and looks bored before continuing.

Power down your phone. Once your phone is all the way "off", slide your keyboard open (on the phone).

Summon your best contortionist skills, and press on the "up" direction of the directional keypad rocker (the direction toward the screen -- which could really be to the right depending on how you're holding the phone) [pic]. While holding the dpad in the up direction, simultaneously press and hold the power button of the phone. When you see the backlight of the screen come on you can release the power button and the bootloader screen should appear (it will say "Bootloader" in the upper left corner). You can release the dpad. At the bottom of the text on the screen it should say "Transfer Mode: USB" if your cable is properly connected. If it says "Connect USB Data Cable", then you need to do so.

Run RSD Lite. If you're on a version of Windows newer than XP, remember to run RSD Lite as administrator by right clicking its menu choice and choosing "Run as Administrator".

At this point the phone should show up in the grid in the bottom half of the RSD Lite window. Give it a minute or two if it doesn't show up right away. Sometimes it takes Windows a minute (or 2 or 3) to let go of the phone and pick it back up again after rebooting into the bootloader. If after a couple minutes your phone still isn't listed in the "Model" column of the bottom section, in RSD Lite, click Config, Device Id Options, and choose "First-Come-First-ServeDeviceId Mode" and press "OK". RSD Lite may say you need to restart RSD -- if so, do so.

Assuming that you now can see your phone listed, click the "..." button to the right of the "Filename:" box. Find the SBF file you intend to flash on your hard drive. After choosing the file the right hand File details pane will fill in.

OK, this step is where you are going to press "Start" in RSD Lite, but don't do that yet. Before you press Start, read step 9. Step 9 has some timing sensitive tasks. If you do step 9 wrong it's not going to break anything, but you'll waste some time going through an un-needed boot and shutdown of the OS. Once you've read Step 9 and know what you'll be doing next, go ahead and press Start.

So far this has all been routine and you're thinking "so what?". This next part is what will get you a result of PASS instead of a warning about destroying your phone. After clicking Start the flashing process goes through several distinct steps. At some point there will be a bit of a delay with RSD Lite showing a status of "Phone[0000]: Waiting for re-enumeration". After that is when the actual flashing happens. When the flashing has completed, RSD Lite is going to issue a "reboot-bootloader" command to your phone. Unfortunately the Droid does not appear to implement the reboot-bootloader command correctly and does a normal reboot instead. If you don't "catch the boot" by holding up on the dpad key the OS will boot. Just before sending the reboot instruction to your phone the status in RSD Lite will change to "Phone[0000]: Phone is being rebooted". On your phone the screen will change to "SW Update Complete" (unless the message has been changed by the person who built the SBF) and your phone will reboot shortly thereafter. You want to be already holding the dpad key up when this happens. If you followed the instructions for Step 8 you have pre-read this step and knew to be ready for this. If not, your phone is probably already rebooted into the OS. If you miss it and the phone boots the OS it's no big deal (unless the instructions for the particular SBF you're flashing say otherwise). If that happens, let the phone finish its boot, and then just do a shutdown like normal. Then press/hold up on the dpad key and power back on. RSD Lite is patient and will wait.

You should now be looking at the bootloader on the phone, and RSD Lite should still be saying "Phone[0000]: Phone is being rebooted". If too much time has passed RSD Lite may be saying "Please manually boot the phone". The "Progress" value on the screen will keep incrementing, and at some point before, or at, 100% the result should change to "PASS". You can now click Close to exit RSD Lite without getting any disturbing warnings.

Congratulations. You've just done a proper SBF flash! The result is not simply cosmetic. RSD Lite is doing a final integrity check after rebooting clean into the bootloader. If you do it the old way (just unplug after the reboot and ignore the warning about destroying the device) you may be just fine, but you may also miss the chance to know your flash didn't go quite right and needs to be redone.

Installing RSD Lite:

First you're going to need a Windows workstation. There is a utility called sbf_flash for Linux that will let you do it with Linux, but that is not the subject of this guide.

Next, grab RSD Lite 4.6 and the appropriate Motorola drivers (32-bit or 64-bit) for your machine. In addition to the preceding links you can get them by going to this link, then double clicking on "rsd_lite" in the right side panel (or single click in the left side panel). [Older versions of the drivers here in case they be useful to anybody: 32 bit or 64 bit.]

Install RSD Lite and the drivers on your computer. If you're running Windows XP, life is good. If you're running Vista or Windows 7 you need to be sure to run RSD Lite as Administrator (by right clicking on the choice in your Start menu and choosing "Run as Administrator"). Hopefully your computer isn't too old. Some machines with older BIOS (like 2002 era) have been known to have USB issues that cause trouble with flashing using RSD Lite.

It makes no difference to the overall process if you reboot back into the bootloader or simply let the phone continue to boot. The phone is always fully flashed and verified before the phone reboots. Worst case is that you hang rsd lite or get a message incorrectly warning you that the phone hasn't finished flashing yet.

Should you do it correctly as stated above? absolutely, but only for the sake of not having rsd lite hang. I used to tell people the exact same correct procedure but I the howtos never got updated -- I really hate posting howtos in forums where only the original poster can edit them.

It makes no difference to the overall process if you reboot back into the bootloader or simply let the phone continue to boot. The phone is always fully flashed and verified before the phone reboots. Worst case is that you hang rsd lite or get a message incorrectly warning you that the phone hasn't finished flashing yet.

Should you do it correctly as stated above? absolutely, but only for the sake of not having rsd lite hang. I used to tell people the exact same correct procedure but I the howtos never got updated -- I really hate posting howtos in forums where only the original poster can edit them.

Click to expand...

Yep, the checksums get verified before the reboot anyway, but I really like getting that "PASS" at the end.

By the way, I used your sbf_flash today. Very nicely done sir. If you reverse engineered what the handshaking/conversation looks like by monitoring USB traffic during an RSD Lite session, even that much more impressive, but it is slick and well done even if you had specs to work from.

I found the information produced by the "-r" option very helpful. Using what I got from that I started mucking about inside CG31 trying to be clever and get the phone to mount the mbm and mbm-backup as MTD partitions MTD8 and MTD9 so I could "dd" their contents and take a look at them (the phone wasn't fond of my effort).

When I first saw the "-x" option for sbf_flash I was all excited thinking it was going to let me pull the code groups directly off the phone into files. There are several CG's on the phone that pretty much never show up in SBFs and I'd like to give them a look. Since sbf_flash verifies what it has written, presumably it can read the memory on the phone as easily as write it.

Looks like I'm highjacking my own thread. I'll try to catch you on IRC sometime...