[Defy General] rob-t:
Disclaimer: I make no warranties expressed or implied. This information is provided for research and educational purposes only. By reading this post, you agree not to hold me, my estate, my heirs, or my dog responsible for anything ever and waive all of your rights to legal action against said parties forever in perpetuity. Amen.

Note: this guide covers Android 2.1 (Eclair). Various builds of Android 2.2 (Froyo) are available in the forum. You should NOT use my guide if you are installing a build of Android 2.2 (Froyo). Currently I am running the Jboogie Froyo Rom, Orange DeBlur v4, which is great and (in my opinion) the best Froyo Rom out there for USA T-Mobile. Froyo is not much faster than Eclair in terms of benchmarks, but the apps are better, especially if you need the Android email app for connecting to an exchange server.

Now, on to the guide:

Goal: starting with a fresh-out-of-the-box Defy from T-Mobile USA, root the phone, install a non-US (or other) Rom, and recover your 3G capabilities.

Why: non-US Roms have much less bloatware from T-mo and Motorola, and allow you to install JIT/Deodex if you want

0) Oh noes! You've got to sign up for a Motoblur account just to use your phone! Create a throwaway email address at any of the webmail providers (gmail, yahoo etc.) and then go through the motions on the phone to set it up and get to the main home screen. Editorial note: wtf!!!

1) Get root access to your phone. Following Sorensiim's excellent guide, download the Z4Root app, which allows you to root (and unroot) your Defy. (thanks to Sorensiim for hosting!)

>> n00b notes:

First, go to Settings -> Applications and check "Unknown Sources" so you can run the Z4Root app.

Also go to Settings -> Applications -> Development and check "USB Debugging" so you can connect to your phone from your computer later.

Then open your phone's browser, navigate to this page, and download the app directly to your phone.

Install the app from your "Downloads" folder (accessible inside your Browser)

Run the Z4Root app on your phone, hit the "root" button and wait for it to work its magic.

This is what you will see if you run Z4Root after you reboot from rooting:

2) Install recovery so that you can make a backup of your operating system to your SD card before you do anything else - that way you can go back to the stock T-mobile OS if you need to.

Following Sorensiim's excellent guide, and many thanks to tenfar who put it together for us, just go here to download the Recovery App. (thanks to Sorensiim for hosting!)

>> n00b notes:

Just like before, visit this page on your phone's browser. Click the link to download the recover app, and once it's done, install it.

Allow the app to have root access, and check the box to always allow.

Once you are in the System Recovery program, click "Install Recovery System"; it will let you know when it's successfully installed (see image below):

3) Make a backup by opening the System Recovery app, and then press the "Recovery Boot" button. Back it up! Once again, details here, big thanks to tenfar!

>> n00b notes:

Once you have booted into recovery, you'll see the black/green screen shown below.

Use the volume buttons to navigate the menu and the power button to select an option.

Go to "Backup and Restore", and then "Backup".

If you need to restore later, just do the same thing except hit "Restore" and then select the one you want.

4) Flash a different ROM! Now here's where it get's a little more tricky. First, you'll want to follow Higgsy's Debranding Guide closely. I won't repeat his excellent guide, but here are my comments on the steps in the guide:

>> n00b notes:

Technically this step is optional - you can still weed out the bloatware and overclock while keeping your stock USA ROM. However, you will miss out on being able to install JIT/Deodex and having other features of non-USA roms, such as tethering.

Step 1: I used the consumer drivers package - Motorola 4.8.0 Driver with MotoConnect - since I am using 64 bit Windows 7. You can also use the developer drivers that Higgsy links to in his guide (available here).

Step 2: I used the JRDNEM_U3_2.34.1 firmware from central Europe, since you don't have to deal with Motoblur that way. You don't have to use this Rom of course, there are a bunch of different options, but I wanted to stick with a "real" Rom from Motorola as a starting point. Note that a firmware version is not the same as an Android version - i.e. v2.34.1 is NOT android 2.3, it is still anroid 2.1. Confusing, I know. Other Rom options include custom Roms that people put together and list in the XDA Developers forum. If you want to use one of those, you would follow their instructions for installing that particular custom Rom.

Step 3: In case the RSD Lite download link in the guide doesn't work, you can also get it from Megaupload the password for the site and the rar file is 'alabama'.

Step 7: Before booting the phone into the bootloader, you may want to clear out your data manually (aka "wipe your phone"). Go back into the System Recovery app, go to "Recovery Boot", and then when you're back on the black screen, select "Wipe DATA/Factory reset", "Wipe CACHE Partition" and then also go to "Advanced" and then select "Wipe Dalvik Cache". Then hold down the power button to turn off your phone. You won't be able to boot your phone after this, except by holding down the volume up + power on buttons together to get into the bootloader, so I would make 100% sure you have the drivers and RSD Lite installed and working!

Step 8: I would recommend waiting until it says "PASS" on the right side of the RSD Lite window before closing the program (this is after the "PLEASE START PHONE MANUALLY" phase is completed).

You should now have a working phone, with EDGE connectivity (little "E" in your status bar at the top) but no 3G or H icons. What, no 3G? We'll fix that next.

5) Re-root your phone and reinstall System Recovery following steps 1 and 2 above.

6) Install JIT/Deodexed: Optional step if you flashed either the 2.21 or 2.34 ROM. If you want to make your phone a bit faster, this is for you. Higgsy's guide is here if you want to do this!

>> n00b notes:

Update: on my third time flashing the phone, I was able to get JIT/Deodexed working fine. I think my failure the first time may have been due to my old SIM card, which I replaced because I was having problems reading the card and sending text messages (couldn't update the SMSC number).

Originally, I couldn't get the JIT/Deodexed package to work on my USA phone after installing the 2.34.1 firmware (too many 'untoward things happening' like Higgsy warned about), so I just skipped it the second time I flashed the 2.34.1 firmware.

The process of installing the packages is super easy, although you may want to make a backup before you start just in case. You can never have too many backups, because you can always transfer them to your computer if your SD card gets full. They are stored on your SD card under /goapkrev/backup/

The performance improvements are substantial - see graphs below.

Obviously you must get the package that matches the version of the ROM you installed. If you didn't flash a new ROM and still have the stock USA one, you are out of luck.

7) Make another backup! Now you want to backup your freshly-installed (and possibly JIT/Deodexed) Non-US Rom. Your first backup was the USA T-mobile Rom. You'll want to make this backup in case you eff something up in one of the next couple steps and want to go back to a fresh Non-US install and try-again.

Following the instructions in Step 3 above, load the System Recovery app, Recovery Reboot, and make a backup. Then reboot your phone!

8) Install ADB and/or Android SDK on your computer - there is a great guide on the Cyanogen Mod Wiki here. Just go slow, and follow the instructions. Once you can do "adb devices" and see your phone, you're good to proceed onward.

>> n00b notes:

To open a Command Prompt in Windows, go to "start" -> "run" and type "cmd" in the box or just go to "start" -> "all programs" -> "accessories" -> "command prompt").

Note that if you have 64-bit windows, you'll still need to install the regular 32-bit Java Development Kit (JDK), not the 64-bit version.

When you're editing your "path" environment variables in windows, note that you can't have spaces before or after semicolons. This is what my full path looks like (and iTunes works now - it didn't when I accidentally left a space after QTSystem\;

C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\;[B]%SystemRoot%;C:\Program Files (x86)\Android\android-sdk-windows\platform-tools;C:\Program Files (x86)\Android\android-sdk-windows\tools[/B]

9) Fix 3G

*** NOTE: This step only applies to USA phones. If you're not in the USA, your 3G probably works fine.

Download HandlerExploit's 3G fix from the 2.21 UK ROM or my 3G fix from the 6.19 US ROM. Thanks to HandlerExploit for figuring this out for us.

>> n00b notes:

There's not much difference between the two 3G fixes, except that each one will display different info in the "About Phone" section (either v2.21 or v6.19). For example, if you use my fix, "About Phone" will tell you that you have "Build number: JORDN_U3_6.19.0" installed - this is a side affect of the patch. For HandlerExploit's fix, "About Phone" will report v.2.21 GB

You may want to write down what Rom you actually installed if you think you might forget (for example, my phone actually has "JRDNEM_U3_2.34.1" even though it reports 6.19.0 in "About Phone")

If you downloaded HandlerExploit's 3gFix, you can choose to follow his instructions or the ones below, which are basically the same as what is in his, except you enter the commands line-by-line instead of running them through a script. I prefer line by line because I like to know what I'm doing. Both methods should work fine.

If you are unfamiliar with basic command prompt commands (cd dir ls etc.) please see my reply later in this thread

Once you download the zip file, extract it somewhere, like your desktop.

Alright, time to get some ADB skills. Plug your phone in via USB and open a command prompt. First we connect to the phone by typing this, each command followed by the "Enter" key:

adb shell

Then you want to run some commands as a super user so type:

su

Quick! Look at your phone, and tell it to always allow superuser access. You only have to do this once.

You should have a "#" command prompt now (instead of a "$" like before) indicating that you are working as a superuser (#=superuser). Now some more commands to enter. (n00b tip: you can copy and paste each line into the command prompt by copying the line from this guide and right clicking "paste" on the command prompt window)

mount -o remount,rw -t ext3 /dev/block/mmsblk1p21 /system
chmod 0777 /system/etc/motorola/bp_nvm_default
chmod 0777 /system/etc/motorola
chmod 0777 /system/etc
chmod 0777 /system/app
chmod 0777 /system/lib
chmod 0777 /system/lib/modules
chmod 0777 /system
exit
exit

So now we have set CHMOD Permissions for some folders on your phone, and then quit the adb shell. Now we've got to push some files to the phone:

Navigate to the folder where you extracted the files from the 3g fix you downloaded above, for example, type:

cd c:\users\administrator\desktop\3gfix\

then enter:

adb push system /system

This will copy all the files in the subfolder "system" to your phone's "/system" folder, overwriting them (which is why we made a backup earlier). Then enter:

adb reboot

to reboot your phone. You should have 3G connectivity now - note that it may take up to a minute or so for it to appear the first time, and you may not see the icon at all if you have WiFi enabled (so disable it in your settings to test it out).

If it still doesn't work, try going to "Settings" -> "Wireless & Networks" -> "Mobile Networks" -> "Access Point Names" -> (settings button of four squares) -> "Reset to default". Also make sure the APN name is highlighted with a green dot. You may also have to go to "Settings" -> "Wireless & Networks" -> "Mobile Networks" -> "Operator Selection" -> "Select Automatically"

This is what the 3G icon looks like of course:

10) The phone is yours. You can:

Install some apps: Titanium Backup & Launcher Pro for example.

Weed out the bloatware, overclock, and scale: see Sorensiim's awesome guide here. I highly recommend doing this, just bumping up to 1000mhz overclock makes the phone's performance much more snappy. If you overclock, you should definitely use Sorensiim's scaling method and his scaling files -- it makes a very noticeable improvement in battery life.

Benchmark your phone: with Quadrant Standard Edition, available in the app market

Play Angry Birds all day: :-D

Here is my phone benchmarked, with no overclocking, no bloatware removal, no JIT/Deodex packages, just the stock JRDNEM_U3_2.34.1 firmware (note that the phone with the US Rom straight out of the box benchmarks a little higher at 987. I'm not sure why this is.):

Here it is after overclocking to 1000mhz and my own customized bloat removal (not as much as most people, i use some of the default apps), also still no JIT/Deodex. Obviously you can get it to go faster if you want to overclock more, install JIT/Deodex, and remove more bloat:

Edit: These are the apps I disabled for the second benchmark (renaming them using Sorensiim's guide )

AdService.apk

ArcPhotoworkshop.apk

ArcVideoEditorLite.apk

esmusica_2_0_0012_embed_Signed_2010-04-13_11-05-17.apk

FBAndroid-1.3.2.apk

Fota.apk

hiphopofficial_2_0_0012_embed_Signed_2010-04-13_11-08-31.apk

Kindle-1.0.2-OEM-SingleSign.apk

LiveWallpapers.apk

LiveWallpapersPicker.apk

MagicSmokeWallpapers.apk

MySpace.apk

Protips.apk

Quickoffice_BasicViewer_2.0.52.apk

revolver_2_0_0012_embed_Signed_2010-04-13_11-07-08.apk

truecountry_2_0_0012_embed_Signed_2010-04-13_11-06-12.apk

WeatherWidget.apk

Here is what I got to after JIT/Deodexed was installed on 2.34 - same apps removed, same overclock at 1000mhz. Removing VisualizationWallpapers.apk and YouTube.apk got me to 1308.