If your Milestone does not auto-mount to /media/milestone (and it probably doesn’t), adjust the first step to account for your path. Additionally, these instructions assume you are using a Linux workstation to install CyanogenMod. If you are using an alternative operating system, you’ll either need to adapt these instructions, or boot a LiveCD.
Set Up Your Path
$ export DEVICE='/media/milestone'
Connect Your Phone to Transfer Files
- Connect your phone via USB.
- In your notification area, tap “USB connection”.
- Select “Memory Card Access”.
- Tap “OK”.
Download and Install OpenRecovery
$ wget http://android.downloadspark.com/milestone/recovery/OpenRecovery-3_3.zip
$ unzip OpenRecovery-3_3.zip -d $DEVICE/
Reboot your phone into Bootloader Mode
- Power off your phone.
- Holding the phone in portrait mode, hold right on the d-pad, and power the phone on.
- Connect your phone via USB
You should see the following (your bootloader version may vary):
OK to Program
Flash a Vulnerable Recovery
$ wget http://android.downloadspark.com/tools/sbf_flash
$ wget http://android.downloadspark.com/milestone/exploits/vulnerable_recovery_only_RAMDLD90_78.sbf
$ chmod u+x sbf_flash
$ sudo ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
If you run into problems with this step, try another USB port.
Reboot into OpenRecovery
- Power off your phone.
- While holding the camera button, power the phone on.
- When presented with an exclamation mark in a triangle, hold the camera button and tap volume-up.
- Using the phone in portrait mode, use the d-pad up/down to navigate the menus and “click” to select items.
- Select “apply sdcard:update.zip”
Enable USB Mass Storage Mode in OpenRecovery
- From the Main Menu, select “USB Mass Storage Mode”
- When you finish transfering files, select “Disable” to return to the Main Menu.
Download CyanogenMod and (Optional) Google Apps
With minor changes, you can use these steps to install any Custom ROM compatible with your device, though the examples here only cover CyanogenMod 6 and 7. Also, while installing Google Apps is (strictly speaking) optional, most users will want to, if only for access to the Android Market. Nearly every guide I’ve seen that does not explicitly include this step generates questions such as “Why can’t I access Market?”.
Option 2: Install CyanogenMod 7.1/- (based on Android 2.3.3 “Gingerbread”)
$ wget http://android.downloadspark.com/milestone/roms/cyanogenmod/update-cm-7.1.0-RC3-11.05.15-Milestone-signed.zip
$ mv update-cm-7.1.0-RC3-11.05.15-Milestone-signed.zip $DEVICE/OpenRecovery/updates/cyanogenmod.zip
$ wget http://android.downloadspark.com/google-apps/gapps-gb-20110503-signed.zip
$ mv gapps-gb-20110503-signed.zip $DEVICE/OpenRecovery/updates/google-apps.zip
- From OpenRecovery, select “Apply Update”.
- Select “cyanogenmod.zip”.
- Select “Yes”, when prompted to “Confirm installing update package”.
Congratulations and welcome to the new world! If you have made it this far, you are now running CyanogenMod, arguably the most actively-developed community ROM available for Android devices. There are a few more steps you should consider before rebooting, but the bulk of the work is over.
If you are unable to connect to your mobile data service after installing CyanogenMod, don't panic! Specifically, if you can make and receive calls, connect to WiFi, and only your mobile data is unavailable, try the following steps to resolve the issue. Your mobile data service should work now. Interestingly, if you repeat the steps and disable roaming data, the problem does not recur (even after rebooting).
$ mv Disable_recovery_check_by_OTA.sh $DEVICE/OpenRecovery/scripts/
While I have only found this issue with one device, these instructions are here for when it happens to you.
If you are unable to connect to your mobile data service after installing CyanogenMod, don't panic! Specifically, if you can make and receive calls, connect to WiFi, and only your mobile data is unavailable, try the following steps to resolve the issue.
Your mobile data service should work now. Interestingly, if you repeat the steps and disable roaming data, the problem does not recur (even after rebooting).