Motorola Milestone - How to make the best of it - Custom ROMs

Well, I've been waiting quite a while to write this post. Many asked me to write a post on how to install a custom ROM. My answer until today was, I won't. Why? Because there was no custom ROM that was as stable as the stock ROM. CyanogenMod has been the closest ROM to stock stability-wise. It had it's pros and cons. The biggest con it had was the video recording bugs. Even with the phone clocked at 1GHz, the video would freeze half a second here and there while recording. I was following CyanogenMod 6 for the Milestone, until it was abandoned by it's maintainer, nadlabak. He concentrated on porting CyanogenMod 7 for the Milestone, which I think is way too much for the Milestone to handle. Maybe now that Google owns Motorola, we'll finally get an unlocked bootloader, and with swap enabled, we would be able to run CM7 too. But until that day comes, CM6 is my custom ROM of choice.

Lately, milaq has got the handles of CM6 for Milestone, and he will be maintaining the ROM for the time being. He just released a new update, namely CM 6.3 for the Milestone. This is the most stable ROM, and for my 4 days of use, I found no bugs whatsoever on it, besides the camcorder nag. So I thought I would check out the differences between CM6 and the stock ROM regarding the camcorder. And I struck gold. I found that in an attempt to improve the camcorder image and audio quality, the CM6 developers changed the default media profiles to use the h264 encoder instead of the m4v default. Also the audio was switched from amrnb to aac. So I tried various combinations and tried to keep the video quality and audio quality on balance, but unfortunately the Milestone has a hard time keeping up with the new codecs. So I switched them back to the Motorola ROM defaults, and guess what? It works!

Another step I took to make the CM6 ROM worthy was to keep the CPU clock lower than the CM6 default. 1GHz is too much for the Milestone because it gets too hot, and eats battery life like crazy. So I clocked it at 700MHz, which is only 100MHz higher than what the ARM A8 CPU was intended to run, namely 600MHz. So now, the Milestone is cool even after playing games for a long time. The 700MHz keep the UI snappy and I could not feel the difference between 1GHz and 700MHz, to be honest.

So, if you want to apply these changes, you need to apply my patch after installing CM6 on your phone.

Let's go trough the steps needed to install CM6 on your phone:

1) First you need to override the bootloader of your phone. Download the file from here and place it on your SD card root.

2) Second, you need to install RSDLite on your Windows machine(download here) and the USB drivers unless you already have them installed (from here).

3) Now you are ready to flash the Vulnerable Open Recovery to your phone. Download this SBF file to your computer

4) Now you need to power off your phone and boot in the bootloader mode. To do that, first power off the phone and then slide open you keyboard. Now you need to press the arrow up on the D-pad(as you are looking at your phone in landscape mode), keep it pressed and press and hold the power button. When the Motorola logo appears, keep both buttons pressed for 2-3 seconds and then release power button. When the bootloader screen appears, you can stop pressing the arrow button. You are now ready to flash Open Recovery.

5) Connect your phone to your PC and wait until Windows installs the drivers. After the drivers are installed, open RSDLite. Click the "..." button next to the Filename text field and browse and select the SBF file you downloaded earlier. You should see the device in the list below as Model A853. Now you need to press the start button, and wait until the progress finishes. Your phone will reboot in the process. DO NOT UNPLUG YOUR PHONE FROM THE USB CABLE! YOU WILL BRICK IT!

6) Next you need to download the latest CM6 from here. Go to the end of the first post and download the ROM file and the Google Apps file.

7) Turn off your phone again. Now you need to enter Open Recovery. After the phone turns off(the USB cable should still be plugged) slide the keyboard open and press and hold the X key on the keyboard. While holding the X key, press and hold the power button. Do not let go of the X key! Keep the X key pressed until you see a list on your screen. Now we have two cases here: first, you can find yourself directly into the Open Recovery menu(a menu printed in red color) or you can find yourself in the Motorola recovery menu(printed in blue). In the second case you need to navigate(with the D-pad) to the "Apply sdcard:" option (second option) and click the D-pad center button. Now the Open Recovery mode should be available(the menu printed in red).

8) Navigate to USB Mass Storage option and press the D-pad center button. Now you are in mass storage mode, and your phone should appear as a memory card on your computer. Browse the sd card on your phone and go to the root folder, and then to the OpenRecovery folder and then to the updates folder in it. Copy the CM6 file and the Google Apps file downloaded at step 6 here(sdcard:\OpenRecovery\updates). If you want to apply my patch, you have to also copy it here. Now you can click "Disable mass storage" on the phone.

9) Before installing CM6 you need to wipe the data on your phone because CM6 is not compatible with the stock ROM. Just to make sure in case something goes wrong, make a Nandroid backup. Use the Nandroid menu -> Backup -> Backup all.

So after the Nandroid backup is done, wipe your phone by using the following options from the Open Recovery menu, in this exact order.
a) Wipe Data / Factory Reset
b) Wipe Cache Partition
c) Wipe Dalvik Cache

I'm not sure if you need all three actions, but just to make sure, do them all.

10) Navigate to the "Apply update" option in the menu. Here you will see more than one option. First choose the and then confirm the update.
After that is done, you should also apply update, in order to have the latest Google Apps installed. If you want to install my patch, you need to apply it here too.

Now, use the Go back option to return to the main menu. Now use the Reboot option to restart the phone.

Congratulations, you are now using CyanogenMod 6, patched my yours truly!


Some things I forgot to mention... First of all, to get more RAM out of the CyangogenMod 6, you must disable the JIT compiler. To do so, go to Settings->CyanogenMod Settings->Performance settings and uncheck the "Use JIT" checkbox. Reboot your phone and you're done.

Another thing worth mentioning is the launcher. Michael Bentz, the man behind Zeam launcher managed to get some magic working and now Zeam Launcher eats 10-12MB of RAM with 3 homescreens full of widgets and shortcuts. I prefer it over the default ADWLauncher.

And the last thing... In order to avoid the homescreen restart every now and then, I checked the "Lock homescreen in memory" option in CyanogenMod Settings.