Update a Motorola Milestone from Motorola Firmware to CyanogenMod 7

Since Motorola abandoned the Milestone a long time ago, the only way to enjoy an (almost) up-to-date Android experience is to install a custom ROM. In this post I’ll explain how to root your Milestone, backup your data, install CyanogenMod 7 and restore your data again.

First of all, the usual warnings:

  1. This whole article only applies to the Motorola Milestone A853, the GSM version of the Verizon Droid. No other Milestone versions or other phones are supported!
  2. If you don’t know what you’re doing, don’t do it.
  3. If you mess up your phone (you cannot permanently brick a Milestone without a lot of knowledge and some serious bad faith, but you could easily lose all your data), don’t blame me or mr. muh, and don’t say I didn’t warn you.
  4. If you think you made a mistake and you don’t know how to continue, then don’t! Connect your Milestone to the wall charger and ask somebody for help; you could, for instance, start up an IRC client, connect to the freenode network and join #milestone or #milestone-modding. I (pontomedon) am usually there, as well as there are a lot of people who know a lot more than i do.

A few general things about the Milestone:

  • Motorola signed our boot (contains the Linux kernel) and recovery (contains the recovery) partitions, so we cannot replace either of those with custom built images. CyanogenMod 7.1.2 for Milestone (the current version at the time of writing) runs Android 2.3.7 on the original Motorola boot partition (=kernel) from Android 2.2, which is possible because of a number of advanced hacks i cannot explain in detail here (partly because they’re outside of the scope of this article and partly because i don’t understand them myself). Update 2012-11-05: Custom kernels are now possible using a workaround where the first (Motorola’s) kernel starts the custom kernel.
  • In case of the recovery the situation is similar, we cannot replace the recovery partition by a custom recovery, but there is a workaround to get all the functionality of a custom recovery: Due to a bug in the original Android 2.0 recovery code, it is possible to execute modified update.zip files, and it is also possible to create a special update.zip to extend the stock recovery with a lot of special features (this is exactly what OpenRecovery (OR) does, and it is also what the original root-exploit did). By the way, for those who are interested, the bug was instantly fixed after the Motorola Droid (the original, Verizon Wireless version of the Milestone) was rooted, but at that time the Milestone was already shipping with the bug on board.
  • From a not-rooted phone, the only way to replace the recovery partition with the vulnerable Android 2.0 recovery is to flash an SBF file. An SBF file is a proprietary Motorola format for mobile device images. Flashing an SBF file is done with RSDLite (a Windows only tool by Motorola) or sbf_flash, a Linux/Mac command line utility created by a member of the Droid/Milestone modding community, [mbm]. I’ll explain the process with both tools.

A quick overview on what we’ll be doing:

  1. Install OR (consisting of an update.zip and a directory with a lot of scripts) on the SD card.
  2. Install the recovery partition from Android 2.0, because this version contains the bug mentioned above.
  3. Boot into OR
  4. [Optional]: Prepare your SD card for Apps2Ext.
  5. Backup your data.
  6. Install CyanogenMod 7 for Milestone.
  7. Restore your data.
  8. [Optional, later]: Update your CyanogenMod to the latest version.

Before you continue: Make sure your battery is fully charged, you won’t be able to charge it while you’re booted into the bootloader or the recovery, and recovery eats A LOT of battery (it will be empty after two or three hours, so don’t take too much time to finish!).

  1. Install OpenRecovery

    • If there is a file called update.zip on your SD card, please delete it to make sure you don’t accidentally install a wrong update.zip in step 3.
    • Download OpenRecovery 2ndboot 1.1 and unzip the contents of the ZIP archive to the root of your SD card, preserving the folder structure inside the zip file. This download contains the original OpenRecovery v1.46, modified to include modules and libraries for SD card management (partitioning, support for ext2/3/4 file systems). Other modifications include fixes for the keyboard layout and baseband selectors. Most of the modifications were done by the creator of CyanogenMod4Milestone, nadlabak. For reference: the original, unmodified OR by Skrilax_CZ can be downloaded here, the original extension by nadlabak is found here. The latest fixes included in my download are, however, not available anywhere else.
      3daa6cdd85bb886b9da7287e21f2d79f  OpenRecovery_v1_46_SHOLS_inkl_ext_mmcfix_parted_update.zip

    • Update 2012-09-11: Nadlabak recompiled a few kernel modules, might fix some of the sd card errors during nandroid backup – they are now included in the download.
    • Update 2012-09-17: Please use the provided OR, it is the only way you get everything you need and the latest fixes. Many people seem to use different things like Androidiani or patching OR themselves etc and many of of those run into problems sooner or later. 50% of my effort in the comments below is wasted on of this.
    • Update 2012-11-05: Since custom kernels are not possible, OpenRecovery 1.46 has been updated to OpenRecovery 2ndboot 1.1. I removed all previous links, please use the latest version directly from google code.
    • You should now have a file called “update.zip” and a directory called “OpenRecovery” on your SD card.

  2. Install the “vulnerable recovery”

    There are two versions of this step, depending on your operating system. Windows users have to do part A, Linux and Mac users have to do part B.

    1. Flashing with RSDLite (Windows)
      • Download the vulnerable recovery to a directory of your choice (on your computer).
        02adc6275a555a3c7dafda399998b109  vulnerable_recovery_only_RAMDLD90_78.sbf
      • Download the Motorola Device Driver and RSDLite 5.6 and install both.
        de922742e1940283cf8f2af745e7e5d8  MotoHelper_2.1.32_Driver_5.4.0.exe
        eddaedf5590fdae8d6189cfecae0c721  RSDLite5.6.msi
      • Reboot your Milestone into bootloader mode by turning it off and holding the DPad-Up button while turning it on again. You should see some white-on-black text saying “Bootloader” now. It would be a good idea to write down your bootloader version now – it will be one of 80.89, 90.72, 90.73, 90.74 and 90.78.
      • Connect your Milestone to your computer and wait until Windows has successfully installed the driver.
      • Start RSDLite – the phone should be listed in the lower part of the window; model should be “S Flash OMAP3430″ and status should be “Connected…”. Click on that line, then the “Device Properties” section should be populated with information about your phone.
      • Open the SBF file by clicking the “…” button; the “File Properties” section should be populated now.
      • Very important: Read Step 3 to find out what your hotkey is and hold the hotkey all the time while RSDLite flashes. It is very important that you immediately boot into recovery after flashing it, if you boot into Android only once, chances are good that you’ll have to re-flash it.
      • Click the Start button and wait until the phone reboots. RSDLite will, after a while, complain that you should manually power the phone on, but you can safely close RSDLite as soon as your phone is booted into recovery (ignore any warnings when closing RSDLite).
    2. Flashing with sbf_flash (Linux/Mac)
      • Download the vulnerable recovery to a directory of your choice (on your computer).
        02adc6275a555a3c7dafda399998b109  vulnerable_recovery_only_RAMDLD90_78.sbf
      • Download sbf_flash 1.24 and save it in the same directory as the SBF file. You might also want to check here for a new version of sbf_flash.
        db8afd24f7a0dc6d3d78556dec811694  sbf_flash
      • Reboot your Milestone into bootloader mode by turning it off and holding the DPad-Up button while turning it on again. You should see some white-on-black text saying “Bootloader” now. It would be a good idea to write down your bootloader version now – it will be one of 80.89, 90.72, 90.73, 90.74 and 90.78.
      • Connect your Milestone to your computer.
      • Very important: Read Step 3 to find out what your hotkey is and hold the hotkey all the time while sbf_flash flashes. It is very important that you immediately boot into recovery after flashing it, if you boot into Android only once, chances are good that you’ll have to re-flash it.
      • Open a terminal emulator, cd to the directory with the SBF and type (as root)
        chmod +x sbf_flash
        ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
      • Your phone should reboot (into recovery since you’re holding the hotkey) automatically after the flash is done.

  3. Boot into OR

    How you can boot into recovery depends on your bootloader version. For the bootloader version 90.78, the hotkey is x (the letter x on your hardware keyboard); for all other bootloader versions, the hotkey is the camera button. You need to press and hold the hotkey while you turn the phone on. Once you see the triangle with the exclamation mark in it, you can release the hotkey. Now press and hold the volume-up button and press the camera button to enter the actual recovery menu. If you see yellow text, you’ve done it right. What you see now is the stock recovery menu, to enter OR you have to select “apply sdcard:update.zip” (navigation is done with the DPad on the hardware keyboard, DPad-Center acts as enter). After a few seconds you should see a different menu, and the top line should say “Motorola MILESTONE Open Recovery”. If not, then something might have gone wrong in step 1. If yes, congratulations, you’ve successfully entered OR!

    OR provides a more comfortable method of navigation, you can now use the volume buttons to navigate and the camera button to select. The first thing you should do is selecting the correct keyboard layout for your hardware keyboard:

    • Enter the “Settings/Keyboard Layout” menu and select the correct layout for your keyboard.

    Now we come to the part why booting into recovery immediately after flashing was important: Motorolas OTA updates install a script called install-recovery.sh into your system partition, which overwrites the recovery with the stock (non-vulnerable) recovery on every single Android boot. We obviously don’t want this as we just flashed the vulnerable recovery, so we have to remove this file.

    • Select “Console” to enter the OR console
    • Type
      rm -f /system/etc/install-recovery.sh

      It might complain that the file doesn’t exist, which is possible if you never did an OTA update, but i’d double (and triple) check for typos…

    • You can type

      to exit the console

  4. Prepare for Apps2Ext

    First of all: This step is completely optional, but it will dramatically increase the available space for installing apps on your phone. If you don’t care for more space, continue to step 4.

    Still here? Good! You’ll need a few things:

    • More than 1GB of free space on your SD card (actually, 1GB is the absolute minimum, the more, the better, but i suggest at least 3GB).
    • Basic knowledge of Linux and partitioning, as you could loose all the data on your sd card if you don’t know what you’re doing – don’t just blindly type the commands, use your brain!
    • [optional but recommended]: A backup of the data on your SD card.

    We’ll now partition your SD card, such that it contains a FAT32 partition for holding your regular SD data (like pictures, music etc) and an ext3 partition which can be used by CyanogenMod for your apps.

    Update (2012-01-21): I received a few reports of errors with tune2fs, and I’m happy to tell you that this issue is fixed. Nadlabak (the creator of CyanogenMod for Milestone) has provided an updated tune2fs binary (a statically linked one, in contrast to the old, dynamically linked one) which i have included in my OpenRecovery v1.46 download. Please download the updated version if you ran into problems with tune2fs before. After rebooting into OR you’ll have to unmount your ext partition before you execute tune2fs:

    umount /sddata

    For those of you who just started with this guide: you should already have downloaded the updated version in step 1, so you can safely ignore the last paragraph.

    • If you’re not in OR, reboot into OR as described in step 3.
    • Select “Console” to enter the OR console and verify that you selected the correct keyboard layout. If the layout is not correct you can type “exit” to exit the console and return to the OR menu, where you can change the layout (settings/Keyboard Layout).
    • Unmount your SD card.
      umount /sdcard
    • Start parted, a partition editor (inside parted, the backspace button doesn’t work, so take extra care not to mistype anything!).
      parted /dev/block/mmcblk0
    • Print the partition table of your SD card.
    • You should now see something like this, and it’s important that you write down a number now: the exact size of your SD card. There should be a line like
      Disk /dev/block/mmcblk0: xxxxMB

      (in my case: 7969MB). If you have more than one partition (i.e. more than one line in the table), please stop here and ask someone for help, as you don’t seem to have formatted your SD card from inside Android.

      SD card partition table before SD-Ext Preperation

      SD card partition table before SD-Ext preperation

    • Resize the FAT32 partition to leave 1GB of free space at the end of the SD card. The resize commands takes 3 arguments: The partition number (1), the new start of the partition (the start of the SD card, 0MB) and the new end of the partition (the size of the SD card – 1024MB, 6945MB in my case).
      resize 1 0MB 6945MB
    • Create a new ext2 partition (parted doesn’t support formatting to ext3) at the end of the SD card, using all the free space (1024MB). The mkpartfs command takes 4 arguments, the type of the partition (primary), the filesystem (ext2), the start of the new partition (we want it to start where the fat32 partition ends, so 6945MB in my case) and the end of the new partition (this is the size of the SD card, 7969MB in my case).
      mkpartfs primary ext2 6945MB 7969MB
    • Verify that everything’s ok, your new partition table should look approximately like that (actually that picture shows the partition table after the ext2 to ext3 conversion, at this point the filesystem of your second partition should be ext2):

      SD card partition table after SD-Ext Preperation

      SD card partition table after SD-Ext preperation

    • If everything went well, exit parted:
    • Convert the new partition to ext3:
      tune2fs -j /dev/block/mmcblk0p2
    • If you encountered no error messages you have successfully partitioned your SD card! Now exit the the console and return to the OR.

    Update (2012-01-17): To make use of this partition, you’ll have to install your apps to “phone memory” from CyanogenMod. Under the hood, your “phone memory” is extended by the 1GB ext3 partition on your SD card, but if you install an app to your SD card from within Android, it will go to the FAT32 partition (which we don’t want). CyanogenMod even offers a setting to always install apps to internal memory: Settings -> CyanogenMod settings -> Application -> Install location -> Internal. Another advantage of having an app on internal memory (i.e. on the ext3 partition) is that the app will be available even if your phone is connected to your computer. If the app is installed on the SD card (i.e. on the FAT32 partition) it will disappear as soon as you connect the phone to your computer.

    Update (2012-03-12): CyanogenMod will not display the extended space in the Manage Applications screen, only the internal storage will be taken into account. But you’ll notice that you’ll have much more free space than before (with the same apps installed).

  5. Backup and Root Phone

    Be sure to have at least 1GB of free space on your SD card for this step (If you’ve done step 4 the free space on your FAT32 partition will have decreased by 1GB, but you still need about 1GB of free space for the backup!).

    • If you’re not in OR, reboot into OR as described in step 3.
    • Enter the “Nandroid/Backup” menu and select “Backup All”

    OpenRecovery will now perform a nandroid backup, which is basically a full backup of your phone, including the Motorola firmware. If anything goes wrong you can always restore from this point. Nandroid backups are stored in a directory called “nandroid” on your SD card.

    • Once the Backup is finished, return to the main menu by selecting “Go Back” twice.
    • Root the phone by selecting “Root Phone”.
    • Reboot by selecting “Reboot System”.

    We have now created an emergency backup, but we’ll now create a second, more user friendly backup using an extremely powerful app called Titanium Backup.

    • Download and install Titanium Backup from the Android Market and start it.
    • Upon start up, the Superuser app will ask if you allow root access of Titanium Backup, press allow and yes (you might have to restart Titanium Backup afterwards).
    • Change to the Backup/Restore tab, bring up the menu and select “Batch”.
    • After calculating the different scenarios has finished, click the Run button next to “Backup all user apps + system data”, then click “Run the Batch operation” (this will take a while).

    I would also suggest to check whether your contacts are properly synced to Google: Open GMail, select “Contacts” from the drop down menu and check if all the contacts from your phone also appear there. If not, you might have stored some contacts to your phone memory instead of your Google account, I suggest to put them all on your Google account, they’re safer there. You can also use the chance to perform that long-overdue cleanup of your contacts :) .

    Now you can safely wipe (aka Factory Restore) your phone.

  6. Install CyanogenMod 7

    Installing CyanogenMod is rather straight forward:

    • Download the latest version from https://github.com/nadlabak/android/downloads and put it into the OpenRecovery/updates directory on your SD card.
    • You’ll also need the latest Google apps (Market, GMail etc); at the time of writing, the current version is 20111216, but you might want to check here if a newer version is available. Download the Google apps zip to the same directory you downloaded the cm7 update to.
    • If your current firmware is below 2.2, you need the following two update ZIP files as well: BPSW update, Devtree Update. Just like the other ZIP files, download them to the OpenRecovery/updates directory. If you’re unsure whether your bpsw and devtree are from 2.2 or not, just download those files, applying them twice is not harmful.
    • Reboot into OR as described in step 3.
    • Select “Wipe Dalvik Cache”.
    • Select “Wipe Data / Factory Reset” and confirm that you really want to clear all your data (we backed them up twice, so they’re safe).
    • Select “Wipe Cache Partition”.
    • Select “Apply Update”, select the cm7 update ZIP file and confirm that you want to install it.

    By the way, you can ignore the three update files starting with “test-”, those are only interesting for developers. If they annoy you, you can delete them from the OpenRecovery/updates directory of your SD card.

    • Select the Google apps update ZIP file and confirm that you want to install it.
    • If you downloaded the BPSW Update and the Devtree Update, then apply those as well.
    • [optional] If you have enough free space on your SD card you might want to go back to the main menu and make another nandroid backup.
    • When you’re done, select reboot from OR’s main menu and enjoy your first boot of CyanogenMod 7 (The first boot takes longer than the following boots, so don’t panic if it takes a few minutes).
    • Once you’re booted into CyanogenMod, check if you have 3G connectivity, if not, you might have to select a different baseband configuration in Settings->Device Settings->Baseband selection. Changing the baseband configuration requires a reboot!

  7. Restore

    • The first thing you have to do is install Titanium Backup from the Android Market again. When you start the app, it will (like before) ask for root privileges, press remember and allow (you might have to restart Titanium Backup afterwards).
    • Just like when you did the backup, enter the Backup/Restore tab, bring up the menu and press “Batch”.
    • Scroll down to the restore section and select “Restore missing apps with data” and confirm with “Run the batch operation”.

    You should now have all your user apps back, but your system app settings are still missing. You could, of course, just restore them all with the according batch operation (“Restore all system data”), but i don’t recommend that, because most of the system settings contain the default values from the Motorola firmware, and you’re better off with the new default values from CyanogenMod. There are a few system apps you’ll want to restore though; and we’ll restore them one by one.

    • On the Backup/Recovery tab of Titanium Backup, click the label “Click to edit filters” in the top-right corner, select the “System” radio button in the second row of radio buttons and click “Apply” in the top-right corner.
    • For each system app you want to restore, click the app, select Restore from the pop-up menu and confirm that you want to restore “Data only”. Apps that you’ll want to restore are, for instance:
      • Bluetooth Pairings
      • [BOOKMARKS] Browser
      • [CONTACTS/CALLS] Contacts Storage
      • [VOICEMAIL] Dialer
      • [SMS/MMS/APN] Dialer Storage
      • [SMS/MMS PREFS] Messaging
      • [USER DICT] User Dictionary
      • Wi-Fi Access Points

      If you’re not sure you absolutely need a specific system app to be restored, then don’t restore it, because if you miss anything in a week, you can still open Titanium Backup and restore it then.

  8. Update your CyanogenMod to the latest version

    CyanogenMod is updated quite frequently, I suggest that you check the CyanogenMod download page every few weeks, because you’ll have to install updates manually. It’s a really straight forward task:

    • Download the update ZIP file to your SD card, into the OpenRecovery/updates directory.
    • Reboot into OR (you can do this by selecting Reboot->Recovery from the power menu and you don’t even have to bother with the stock recovery anymore, CyanogenMod will reboot you directly into OR).
    • Wipe Cache Partition and Wipe Dalvik Cache (they contain only data that will be recreated during the next boot).
    • [Optional but strongly recommended]: Make a nandroid backup.
    • Install the update you downloaded from the “Apply Update” menu.
    • Reboot from the OR main menu (this reboot takes longer than normal).

Well. I’m not sure what to say/write as a closing rate, but i hope you have a lot of fun with your “new” Milestone. I’m sure you’ll discover a lot of really nice CyanogenMod features in the next few weeks, so … enjoy!

Upon request, I put a paypal donations button here – if you want to buy me a beer, feel free to do so, but remember I’m not asking for anything. Also I won’t use the money on anything specific, but on whatever I pay via paypal next :)

This entry was posted in Android, Microtutorials and tagged , , , . Bookmark the permalink.

617 Responses to Update a Motorola Milestone from Motorola Firmware to CyanogenMod 7

  1. Rafael says:

    One question: the step 4 can be done alone on a phone already using CyanogenMod, but with only the original partition (the one showed on picture 1)?

    • poseidon says:

      Yes, CyanogenMod will automatically move all the apps on internal memory to the SD-Ext partition during the next boot. I think you’ll have to re-add your widgets though. Remember to move all the apps you installed to your SD card before to internal memory after the partitioning, and set the preferred install location to “internal”.

  2. Barbossa says:

    A question about the Apps2Ext: I partitioned my 8GB SD Card, taking 1536MB for the ext3 partition. I see all the large apps installed on the phone memory (Talking Tom Cat, Battleheart [runs much better on CM7 than on FroyoMod], etc.), something that would not be possible before using Apps2Ext, but the free space shows as 197MB used/155MB free. Is this a known bug, or is there something wrong with my partitioning?

    • poseidon says:

      Isn’t 1536MB a bit much? Wonder if you manage to fill it up :) .
      The free space shown in CM is the actual free space on your phone memory (i.e. the flash memory), the SD-ext partition is not taken into account there. I don’t know if this is a bug or the expected behavior, but i agree that it would be nice to see the free space of the SD-ext partition as well.

  3. t0m3kk says:

    is it nessesary to convert the ext2 to ext3 ? because tune2fs didnt work for me, also after downloading the (16.12.2011) update for OpenRecovery which adds support for ext2/3/4 filesystem…
    but the mod works anyway :)

    I also would like to see the feature added to see how much of the ext partition i used.

    Thx for the good tutorial !!

    • poseidon says:

      Strange that the tune2fs command didn’t work for you. Did you download the OpenRecovery v1.46 file I linked? That file should already contain everything you need (support for ext2/3/4, parted, tune2fs etc).
      Ext2 will work just as well, but journaling adds some security, so i suggest to use ext3.

      • Mike says:

        I’m afraid it didn’t work for me either, and I installed the tools. I got the error message:
        link_image[1995]: failed to link tune2fs

        • poseidon says:

          Could you try to completely delete the OpenRecovery directory from your SD card and and download and extract the ZIP file again? (The one i linked in my last answer)

          • Gregory says:

            sorry, no change, still the same error :/

          • poseidon says:

            To all of you having problems with tune2fs – this issue seems to have been resolved, check step 1 for details!

          • Alex469 says:

            I have the following error message after issuing
            tune2fs -j /dev/block/mmcblk0p2 :
            “Segmentation fault (core dumped)”.
            Any ideas what happened and how to fix it?
            Thank you very much in advance.

          • poseidon says:

            when did you download the OR? i uploaded a patch a few days ago, if your copy is older, please download the newest one and try again.

          • Alex469 says:

            I downloaded not your (combined with patch) OR but http://code.google.com/p/cyanogenmod4milestone/downloads/detail?name=OR1.46_ext_mmcfix_parted_update.zip. I did it just today…

          • poseidon says:

            I don’t understand why everyone keeps insisting on using different versions of OR. My download contains everything from that file, but also including various fixes from the cyanogenmod4milestone developer that are not available anywhere else.

            Please try again with the file i linked in my last reply (best use a clean install by removing the OpenRecovery folder first) and report back if the issue persists.

            I can’t (and don’t want to) support anything different from what i described here.

          • Alex469 says:

            Finally tried your OR with patch included and tune2fs -j /dev/block/mmcblk0p2 works. Thanks a lot!

          • Alex469 says:

            Some comments on the Install Open Recovery section.
            If your OR download package “including various fixes from the cyanogenmod4milestone developer that are _not available anywhere else_” it is better to remove links to “OpenRecovery v1.46″ and an “update to it”. Actually I am using just OR (and not like Androidiani) and downloaded “update to it”. So the links just confusing (at least for me).
            Any way – thanks for the Guide and patience :)

          • poseidon says:

            Agreed. I changed the text to be a bit more clear. The links will stay, however, because I won’t host anything without giving proper credit.

        • Alex469 says:

          Thanks a lot one more time! The text is more clear.

  4. René says:

    after umount sd card i type in the order print
    i get an error saying Can’t have a partition outside the disk.
    What iám i doing wrong?

    • poseidon says:

      Could it be that you left out a command? If not, could you take a picture of the screen with the error message?

  5. Rene says:

    I think i have done it as discribed
    How do i make a sreenshot and send it to you

    • poseidon says:

      Unfortunately there’s no screenshot function in OR so you’ll have to take a picture with a digital camera (a second mobile phone?). I’d suggest that you upload it to ImageShack and post the link here.

      • René says:

        above the link with the photo from my milestone with the errormessage

        • poseidon says:

          Seems as if your partition table is messed up (it seems to contain an entry pointing after the end of the SD card). Backup all the data on your SD card, then you could try a few things: 1) Examine and possibly fix the SD card with a graphical partition editor (e.g. gparted) on a computer. 2) blindly type the resize command (you can use my numbers if you have an 8GB SD card) and then try the print command again. In any case, be careful!

          • Paul says:

            i am stuck in the same situation.
            so far i am not quite used to things like that so could you please explain to me what you explicitly mean by examining and possible fixing the sd card with a graphical partition editor on a computer?

          • poseidon says:

            That is a bit out of scope here and hard to explain non-interactively. Basically it involves booting Linux on a computer (probably from a live CD), and trying to repair the partition table with GParted. Do you know anyone who can help you with this? Otherwise i suggest that you leave step 3 for now and continue with the guide. You could also try to format your SD card in Android, that might also help.

  6. ranh says:

    I have MIUI installed on my Milestone,
    to change to Cyanogenmod, can I start directly from step 6?

    • poseidon says:

      In principle, yes. But I guess you’ll have to wipe data, so doing a backup (step 5) first would be a good idea, and if you don’t have an SD-ext partition yet I’d start with step 4. You might have to download the OR update or my OR ZIP file with the update applied (step 1) to do step 4, because the regular OR doesn’t have parted or tune2fs.

  7. Timmy says:

    Hey, when I tried converting ext2 to ext3, tune2fs told me to input somehow “journaling code”, I didn’t know what it was, and I just type a few letters and press enter, nothing happened then. Finally I had to unload the battery and reboot the device.

    So what code should I have input?

    • poseidon says:

      I’ve never heard of a “journaling code”, do you remember the exact message? what filesystem is reported by parted now? Could it be that you rebooted your phone after creating the partition? In this case you have to unmount the ext partition before starting parted or tune2fs:

      umount /sddata
  8. MoskmaN says:

    I currently buy a MicroSD 16gb C10 to replace the MicroSD 2gb C4 of my phone, i cant get to clone the old MicroSD to the new one, i can backup the fat32 partition, but how i buckup the ext2 partition? you know some aplication that do that (like Norton Ghost) ?

    • poseidon says:

      The easiest way would be to access your SD card from a computer with Linux and a card reader. You could either make an image of the whole SD card

      dd if=/dev/mmcblk0 of=~/sdcard.dd conv=sync,noerror

      restore the image on the other card

      dd if=~/sdcard.dd of=/dev/mmcblk0 conv=sync,noerror

      and then rearrange the partitions (move the ext partition to the end of the SD card, resize the FAT partition, easiest with gparted). The other way would be to copy the contents of each partition into a tarball

      cd /path/to/fat32/mountpoint
      tar --numeric-owner -cpWf ~/fat32.tar *
      cd /path/to/ext/mountpoint
      tar --numeric-owner -cpWf ~/ext.tar *

      Then you’ll have to manually format your SD card and restore the tarballs back to the partitions:

      cd /path/to/fat32/mountpoint
      tar --numeric-owner -xpf ~/fat32.tar
      cd /path/to/ext/mountpoint
      tar --numeric-owner -xpf ~/ext.tar
  9. Victor Moody says:

    I need some advice…with regards to openrecovery….I have Motorola Milestone with Bootloader 90.78 and 15G.8B memory card…I started resize (using Androidiani OpenRecovery 3.3) from 0Mb to 14.8GB about 60 minutes ago…I would like to know how long does it usually takes?

    • poseidon says:

      This issue was resolved in an IRC session.

      • Antti says:

        What was the resolution? I’m having a similar problem.

        • poseidon says:

          Androidiani didn’t work – remove the whole OpenRecovery folder and the update.zip from your SD card, download OpenRecovery from the link in step 2 and extract it to the SD card. Be sure to have a lot of free space on your SD card, the closer you get to the 1GB limit, the longer the resizing will take.

  10. MILESTONE says:

    I lost my Micro sd card but my phone is rooted and I have the lates Rom Cyanogenmod 7 (2.3.7), Do I need to do this all over again?

    • Rafael says:

      I think you don’t have to. If you used to store your apps on SD card, then one sideback is that you won’t have then anymore, once the card was removed. Of course, any data you had on card was gone to. But Cyanogen remains intact even with no card (poseidon can confirm this).

    • poseidon says:

      you’ll need to do the steps 1,3 and 4 (or only step 1 if you don’t want to use apps2ext). Actually CyanogenMod works fine without OR, but you won’t be able to update, make backups etc, so i suggest you do at least step 1.

  11. sandeep says:

    It would be a good idea to write down your bootloader version now – it will be one of 90.72, 90.73, 90.74 and 90.78.

    my milestone shows the bootloader as 80.89.

    do i need to update the bootloader, is it feasible?


    • sandeep says:

      Also my machine OS is windows 7, neither ubuntu or linux available to me.


    • poseidon says:

      no, you don’t have to update your bootloader, i simply forgot to list your version. I’m not sure what key combination you need for entering the recovery menu – volume-up+cam or volume-up+x. I think volume-up+cam will work, but you might have to try both. Would be great if you could report back which combination works, so that I can update the guide.

      edit: you can’t even download and burn an ubuntu live cd? But I think I will update step 1 with an RSDLite version for windows users as well, so you can either google it yourself or wait a few days ;-)

  12. sandeep says:


    Download RSD Lite 4.9 – http://www.mediafire.com/?ufxs9lft9q2xwnu (edited by poseidon, 4.9 is outdated, 5.6 is linked in the guide)

    also process for going into bootloader is Camera+Voluem-Down and then power.

    I will use rsdlite, but to flash vulnerable sbf, does the phone need to be rooted and open recovery installed with update.zip.

    alternatively i am downloading ubunto and will burn on a CD, will try if above doesnot work.


    • poseidon says:

      No, your phone does not have to be rooted to use RSDLite. That would be a chicken and egg problem, because you need the vulnerable recovery to root…

      I think your mixing up bootloader and recovery here. Bootloader can always be entered by holding DPad-up while turning the phone on; there will be a white font saying bootloader. Recovery can be entered by holding camera while turning the phone on, then you’ll see a yellow triangle with an exclamation mark. From this screen, you need one of the two key combinations (volume-up+cam or volume-up+x) to enter the actual recovery menu.

    • poseidon says:

      Ok, adding the RSDLite version wasn’t as much effort as i thought it would be – done!

  13. sandeep says:

    thanks, but flashing vulnerable sbf process using rsdlite failed in my case. it does show S flash OMAP 3430. moment i start flashing sbf, i get error after few seconds:

    Failed flashing process. PHone[0000]; Error sending JUMP command Device API Error: 0XE0020047 Address….


    • poseidon says:

      Did you install RSDLite to your windows partition (C: in most cases)? I read somewhere that this is necessary. You could also try an older version (3.9) of RSDLite: http://db.tt/F0gb3TR1 – please report back if it works.

  14. sandeep says:

    yes its installed on same partition. using same RSDLite i was able to upgrade to MIUI rom also.

    installed 3.9 version and tried, new error now:

    Failed flashing process:Unable to retrieve initialization values from INI file 0×7029; phone connected

    • poseidon says:

      Well if you had MIUI installed, you most likely already have the vulnerable recovery and can directly install OR (step 2). If you really have to flash the sbf (i.e. you get a signature check error when you try to start OR), i suggest to use the ubuntu live cd and use sbf_flash, as can’t remotely debug your RSDLite….

  15. sandeep says:

    after trying with ubuntu, below error comes:

    mobile shows: Critical Error: FEBE 0047
    Error shown in emulator is:
    >>uploading RDL03: 100.0%
    >>verifying ramloader
    >>executing ramloader

    RX(7): [02]err[1E]G[03]
    !! failed
    >> rebooting
    usb_bulk_read -110

    • poseidon says:

      hmm very strange.. However – did you try if you already have the vulnerable recovery? Because if you had MIUI then you must have had the vulnerable recovery, so chances are good you still have it.

  16. sandeep says:

    ok, i tried HONO just now, it failed. but i tried cyanagen 7.1.5, it worked!!!!.

    i erased existing openrecovery and used the one mention above. it worked after that. probably issue with openrecovery files in my sdcard.


  17. virgil says:

    dum question, can anybody help me , i’ve tried everything , but my milestone keeps rebooting, and i lost my backup
    please help

  18. virgil says:

    my phone is working fine ,it’s just rebooting it’s self randomly
    and i cant find a sbf file that fixis the problem,can you help me?

    • poseidon says:

      can you reboot into OR and restore the nandroid backup?

      If your phone is rebooting randomly after booting into android, then it’s likely because you didn’t format data and cache in OR.

      If you really need to flash an sbf, you can download the right one for your phone here.

      After flashing one of those, you’ll have to start over with step 2.

      • virgil says:

        my i can get it to boot or enter in OR the phone work’s pt it’s annoying. i’ve tried every single one of those sbf’s but nothing seems to soleve the problem.this is way i asked for a fresh backup,

  19. sandeep says:

    Do we have windows version text available for this:

    Prepare for Apps2Ext

    • poseidon says:

      This step is done exclusively on the phone, what exactly do you need a Windows version for? It would be possible to do it on Windows instead of on the phone, but you would need third party software like partition magic because windows isn’t too good at partitioning out-of-the-box…

      • sandeep says:

        am still with old OR, the attached OR version doesnot work for me. so thought if there is any utility which would allow me to do partition on my sdcard from my machine.

        thanks for response.

        • poseidon says:

          what exactly doesn’t work? Did you download the updated version with the new tune2fs binary? May i ask where you are from? Does the label under the battery of your phone say “Motorola MILESTONE”, or something like Milestone xt720?

          • sandeep says:

            am from india, mine is milestone xt720

          • poseidon says:

            well.. the Milestone xt720 is an entirely different phone. This guide (and CyanogenMod for Milestone afaik) works only on a Motorola Milestone. You can see a comparison here.

  20. wh0m says:

    just log in to say well done!

  21. Rod-Venezuela-Milestone says:

    Since lasts 2 updates using OR 1.46, the Milestone will reboot during OR at any time, including while flashing, scrolling using the D-PAD or in the terminal without touching any key. It does not happen ever inside the normal android boot… only running OR 1.46.

    I have buyed a new SDCARD to replace de old 8Gb that came with the phone. I managed to install CM7.12, and now CM7.15 but it stills reboots at any time inside OR. In fact. What I am trying to do now is to repartition following this guide, but I cant stay inside OR Terminal for more than a few seconds before the Milestone reboots.

    Sorry about my english!
    Does anyone have this issue too? Does anybody have a solution or at least, an idea about it?


    • Rod-Venezuela-Milestone says:

      EDIT: I suspect that it has to do with touching the hardware keyboard. ¿It is possible to follow this guide using adb and a Terminal from my PC… to avoid touching the phone?

      • poseidon says:

        yes, you can connect with

        adb shell

        from your computer

        • Rod-Venezuela-Milestone says:

          That worked in phone normal boot… but I don’t know if it is safe to repartition while the phone is running.

          I have rebooted in recovery… and the adb shell command could not find the device.

          Should I activate the adb in OR somehow before connect… or is safe to follow this guide inside the adb shell connected to a normally booted phone (mean, running CM 7.1.5)?

          • poseidon says:

            no, you cannot do this in android, because the parted and tune2fs binaries are missing there. adb should be enabled in OR (not in the normal (yellow) recovery, only in OR), but i cannot try currently, because I’m not at home. I’ll try later and report back.

  22. Rod-Venezuela-Milestone says:

    Thanks poseidon.

    I actually reboot again in Recovery and after connecting the usb and trying again to adb shell into the phone… stills no luck on that. But the interesting fact was that I barely touched the phone… also I haven’t opened the keyboard… only leave the OR main menu untouched and the phone connected to the PC… and suddenly it reboots without any interaction on my part.

    Usually, after this, the update.zip file gets erased from the sdcard… and I copy it over and over again. This is odd, because in the past it never erased de update.zip nor rebooted by itself.

    It is difficult enough to install a new rom, because I only have some seconds to do it… and it can and will reboot sometimes before a complete flash… leaving me without nothing for a while… forcing me to remove battery and sdcard… coping back update.zip and trying again and again until the flash works. Same for the gapps and radio updates. The strange part is that after all that, the phone works well without any issues.

    I am thinking in doing this last mod (the repartitioning thing) to have more memory free for apps… and stop changing things until this 2 year old phone dies by itself :)

    • poseidon says:

      That’s very strange. You can also do the partitioning on a computer, if you have a card reader capable of micro SD cards (or a micro SD to SD adapter and an SD card reader).

      Another thing you could try is to flash a 2.2.1 Motorola SBF for your region (giving you factory new state) and then start over from step 2. The service versions keep data intact, the non-service versions clear everything. In your case i would try a non-service one. That *might* help.

  23. AL says:

    My Motorola Milestone have firmware version 2.0 can i upgrade to CM 7?

    • poseidon says:

      yes, but be sure to download and install the BPSW update and the devtree update in step 5, otherwise you’ll likely get random reboots of the phone.

      • AL says:

        How about the radio how can i determine my radio version I’m From Philippines and here’s my build number SHOLS-U2_01.03.1.1259613207 should I install Radio update or not?

        • poseidon says:

          I’m not sure. I would try without; if you have 3G connectivity after flashing CM, then fine. If not, you can try to google what 3G Frequencies are in use in your region, and install the a radio update with the same frequencies (Singapore would be a good candidate because of the geographical proximity). AFAIK it’s a planned feature for CyanogenMod for Milestone to have all the different radio files on board and be able to change them from the device menu, so all the fiddling with the radio update files will soon be history, i think.

  24. Rod-Venezuela-Milestone says:

    Well. Thank you so far.

    Good news: I have downloaded your OR. Deleted the phones OpenRecovery contents (all but de Updates folder) and copied over with the new one. Also, replaced de update.zip with the new one.

    Rebooting in Recovery works without random reboots in the phone… and also, adb shell works too. The OR menu looks different from the previous one, so I assume that something I have done wrong when I updated to 1.46 some time ago.

    Starting to follow the guide, inside parted… it says in the resize that it is moving data… 1% time left 5:12… and it seems stucked :| The phone is not hang, because I can move the cursor over the menus… and the terminal from the PC is responsive (I can press enter, and it scrolls).

    ¿How much should it take to resize a 8GB sdcard? ¿should it give me percent numbers increments… or it will finish suddenly to 100%?. The fact is that it have allready passed 5:12 minutes… and no signs of progress :(

    • poseidon says:

      How long that takes depends on the free space on your SD card. If you are close the the 1GB free space, it might take quite long. Is it still @ 1% or is there any noticeable progress? If it’s really stuck, you have to try to quit parted, or remove the battery and start over as a last resort. I hope you followed my recommendation and created a backup of your SD data, interrupting parted is dangerous.

      • Rod-Venezuela-Milestone says:

        Yes, I have the backup… I think that I will stop it, and delete 2 more gigas (already backed up in the PC) and start over. Thanks!

  25. Rod-Venezuela-Milestone says:

    Repartitioning with the guide went flawless!!! :D Thanks man!

    Shoul I reflash de 7.1.5 rom to take advantage of it? do a wipe cache / dalvik? or simply start to move apps to the (newly expanded) phone memory?

    • poseidon says:

      If you have CyanogenMod 7.x then all you have to do is move everything to phone memory in the application management menu.

      If you’re on a lower version than 7.1.5, then i recommend to update, “new is always better” :) . Wiping Cache and Dalvik Cache is recommended on each update.

  26. Rod-Venezuela-Milestone says:

    Everything worked dandy, and also… confirmed that there is no problem with phone’s hardware keyboard… it wont reboot by itself in OR anymore :D :D:D thanks again!

  27. lucas says:

    Thanks for the tutorial, the cyanogenmod-7 is great!
    I was using shadowmodbr for a while but was not satisfied at all… The 2.3 android is looking fine and runing smoothly.

    I did the part 4 a little diferente from this tutorial, instead of using RO console / parted i did sdcard changes in gparted. Do you thing this is dangerous? (i opted in not backup anything)


    • poseidon says:

      No, doing the partitioning in gparted is just as good as doing it in OR. I decided to do the guide for the OR console only because there are so many variables when doing it on a computer (different Linux distros, different sdcard device names, different gparted versions etc etc). In OR, the only variable is the SD card size. Furthermore I wanted the guide to be as Operating System independent as possible.

  28. AL says:


    mkpartfs primary ext2 6945MB 7969MB
    i’m stock here at 21% what should i do??

    • poseidon says:

      If it’s really stuck, then remove the battery, reboot into OR again. Unmount both the fat and the ext partition (in case it’s already there).

      umount /sdcard
      umount /sddata

      after starting parted, see if there is a second partition with the print command. if yes, remove it with

      rm 2

      (2 should be the number of the second partition)
      then try the mkparfts command again.

  29. AL says:

    sir when i type print there is no second partition

    • poseidon says:

      then just try the mkpartfs command again

      • AL says:

        still 2% time left 1:00
        is it 1hr long?? to finish

        • poseidon says:

          it shouldn’t take that long. you could also try the following if it is stuck again:

          mkpart primary 6945MB 7969MB
          mkfs 2 ext2

          The first line creates the partition, the second one creates the filesystem. Are you sure your numbers are correct? is 7969MB the size of your SD card and does the first partition end at 6945MB (can be seen in the ‘print’ output).

          • AL says:

            can i use windows tool to delete the partion like minitool partion then start over again???

          • AL says:

            My SD card is only 4GB

            I used 1024MB then the remaining is 2941MB

          • poseidon says:

            Well, then that is your problem. Read step 4 carefully! If you want more free space on your FAT partition, then you can also make the ext partition smaller, a minimum of 512MB is recommended. So if 3965MB is your SD card size you can resize the fat partition to 0MB…3453MB and create the ext partition from 3453MB to 3965MB.

  30. AL says:

    ok thanks I will try again thanks i will post again if I encounter Errors again

  31. AL says:

    why there is no market when I finished flashed this ROM

    • poseidon says:

      because you didn’t install the google apps update.zip

      • Carlos Guerrero says:

        I have installed the google apps update.zip and I still don’t see the Market app, and this is not my first time that I upgrade the phone.

        • poseidon says:

          check if you have the file /system/app/Vending.apk
          If not, then something must have gone wrong when installing the google apps update.zip. If there’s any doubt you can safely reinstall it.

          • muffinimal says:

            I get a force close of com.android.vending after I entering my pin right after booting. This occurs right after a message on the bottom flashes by of some services being granted root access.

            * I applied the updates as instructed above. -> no luck
            * /system/app/Vending.apk is present on the system
            * I tried re-updating the 20111216 package from OR -> no luck
            * I tried applying the 20110828 package from http://wiki.cyanogenmod.com/index.php?title=Latest_Version#Google_Apps –> no luck
            * after this I tried the newest package again. No luck.

            I am running the newest CM build 7.2.0RC1. The same problem occured with 7.1.5.

            Any ideas?

            PS Thanks for all the help yesterday, pontomedon! Much appreciated!

          • poseidon says:

            i guess you did try to wipe the data of the Market (=vending) app? This can be done from the manage applications menu, look for “Market” or “Google Play Store” on the “all” tab. clearing market data is harmless.

          • muffinimal says:

            Sorry, I can’t reply to your reply here below. Wiping the data solved it. Thanks!

  32. virgil says:

    hy again i’m sorry to report that the update u give me did not work it only maked it wors, please help!!!

  33. Erna Besen says:

    Thanks, everything worked fine, a no-brainer, just right for me ;-)

    The battery symbol in the upper right corner doesn’t seem to work, it says “?” I’m using the “beautiful widgets” battery now, but will look out for a fix…

  34. poseidon says:

    Do you use an aftermarket battery or an original Motorola one? I heard there are some problems with aftermarket batteries. You could try to disable the 1% battery steps in the device menu.

    • Erna Besen says:

      It is the original battery. I Disabled the 1% battery steps as you told me – that did the trick! Great work!

  35. sandeep says:

    i have successfully ported CyanogenMod-7.2.0-MilestoneXT720-20120124-KANG-signed. which is for xt720.
    i have 8 GB card and want to partition it. i have terminal emulator on my mobile as part of this ROM. can i straight away use your instructions given above.

  36. Anil_Trinidad says:

    Hello poseidon. Thanks for the very useful guide. I managed to get through to the end of step 4 (backing up on Titanium), except for the Factory Restore. I am not ready to update to the new ROM as yet – maybe in a few days. However, I notice now that my Volume buttons do not work! I’ve rebooted a number of times – and still no go. Prior to nandroid backup I had to wipe the dalvik cache in order to get it to go through. I’ve wiped the cache before while trying to backup using G.O.T. OR (which the backup didn’t work) – and the phone continued to work fine. Do you have any ideas on that one?? Thanks.

    • poseidon says:

      Ok, first – you should re-do the backup just before you do the update to have the latest data in your backup.

      As for the volume buttons – i had this issue a few times myself, sometimes it works after clearing cache/dalvik cache in OR, sometimes i have to reflash the CyanogenMod update.zip to make them work again. I didn’t have this issue since the update to 7.1.5, so i guess it should be fixed in this version. I’m not sure what you G.O.T. OR is, but i recommend only the original OR, which i linked in step 1.

      • Anil_Trinidad says:

        Thanks. It’s good to know that someone else (yourself) had that issue. I will try clearing the cache again. The GOT OR is one from the Group of Ten guys [http://groupoften.wordpress.com/g-o-t-s-openrecovery/] that I had tried a couple of weeks ago. The backup didn’t work for me then. I used the OR you have in your guide above – and the backup worked fine last night.

        • poseidon says:

          Seems the G.O.T. OR is just horribly out of date, it is based on OR 1.14, whereas we use the current 1.46 here. Anyway I don’t really like all those OR clones, the original one is simply the best :)

      • Anil_Trinidad says:

        Well I was able to boot into exclamation triangle with X + Power, and Volume up + camera to get to OR. so I highly doubt that it is a hardware issue. I wiped the cache and dalvik cache (scrolling with the D-pad), but still the volume buttons don’t work in Android. So I have to use the onscreen volume adjustment. :( If you don’t have any more ideas – I will work like that for now, until I have some time to upgrade to the CM7 rom.

        • poseidon says:

          I talked to nadlabak (creator of CM4Milestone) about it – Did you use the keyboard layout change feature of GOT OR? That might have broken it. You can try to set the keyboard layout again in the “good” OR, but I just discovered that this breaks the keyboard in CyanogenMod as well. It can be fixed by flashing the CM update zip again. I’ll look into updating OR with proper keyboard files, but for now it seems you have to wait until you flash CyanogenMod, otherwise it would be a little too complicated to explain here.

          • Anil_Trinidad says:

            I didn’t touch the keyboard setting from the GOT OR. I did set the layout using the OR in this guide (to qwerty). I didn’t flash to CM yet, since I don’t know what radios I need. I bought an unbranded phone from Amazon (in the US), and I’m in Trinidad – but it’s not on a data plan – so I don’t know what frequencies will or will not work. I need to do the research on that yet.

      • Anil_Trinidad says:

        I just noticed the camera button isn’t working either!! :@ :@.

        • poseidon says:

          Nor is your hardware keyboard.

          • Anil_Trinidad says:

            Damn! You’re right! Only the on-screen keyboard. I may need to flash sooner rather than later… :(

          • Anil_Trinidad says:

            Well I finally upgraded to CM7 from Eclair. So far the hardware seems to work fine. The only thing I’ve found is that the volume buttons don’t work to adjust the focus on the camera – but there is an on-screen focus which is fine. I hardly use the camera anyhow. I just need to figure out on which radio to install for 3G. I haven’t tried the bluetooth yet.

          • poseidon says:

            Bluetooth should work fine. you can configure the behavior of the volume buttons in the camera menu -> advanced settings. The radio will likely be changeable directly from cm in a future version, then that will be much easier.

  37. Anil_Trinidad says:

    This CM rom has a sh!tload of settings – alot of which I’m afraid to touch, ’cause I’m not quite sure what they do. Maybe there needs to be a ‘CM ROM for dummies’ manual?

  38. Dirk says:

    I have gotten to the end of step 6, but my phone will not fully boot up, it stays on the cryongenmod loading screen. I did not receive any error messages during the process. Any help or suggestions of what to do now would be appreciated

  39. Engineer says:

    Just followed this guide to update a Milestone from 2.2.1 official to CM7.1.5 – worked like a charm.

    Only thing I might add is to be careful about restoring any phone or dealer settings from TiBackup; some will cause a conflict with the 2.3.7 dialed and push you into a force-close loop with com.android.phone. If you’re stuck here, the best option is to erase your data and start over.

  40. Colby says:

    I just installed Cyanogen Mod 7.5.1 on my milestone for the first time. I live in the US and bought an unlocked Telus milestone and it worked on AT&T (without 3G) just fine. Now I have my APN settings set up the same as before, I tried the Canada-Telus radio update and just the Canada one, but I can’t connect to the network. Wifi and all that works fine and everything else seems to work. What did I do wrong?

  41. Al F says:

    Thank you for the great write up.
    Upgrade worked smoothly except for an error from parted:
    Can’t have a partition outside the disk.
    I tried to fix with gparted from a linux system, which completely messed up my SD card. Android then offered to format it. After that I could partition the SD card with gparted as desired.

    I am now experiences difficulties getting my old input methods (OpenWnn and OpenWnn Flick for Japanese text entry) to work. I restored the apps using Titanium backup, but that didn’t help. I then tried restoring Android keyboard, but Titanium backup came back with an error message that the application wasn’t installed.

    Did anyone have any luck installing OpenWnn on the Milestone with Cyanogen Mod?

  42. new_one says:

    Hello, I’ve installed CyanogenMod-7.1.5-Milestone-KANG and I have a question about partition ext3. How can I check if my Cyan is using this partition and how can I chceck how much memory I’ve already used ?? In Settings -> CyanogenMod settings -> Application -> I can’t checked it “Use internall memory”

    • poseidon says:

      You can check by opening “Terminal Emulator” and typing

      df -h

      /dev/block/mmcblk0p2 is your ext partition.
      What do you mean by “you can’t check use internal memory”? When you click on Settings -> CyanogenMod settings -> Application -> Install location, a popup menu should open, letting you select one of three radio buttons – “Automatic”, “Internal”, “External”. You should also go to Settings -> Applications -> Manage Applications -> Tab: SD card and see if there are any activated checkboxes. If yes, you should “Move to phone” those apps.

      • new_one says:

        yes, I see and checked this radio button internal, but when you go to Settings -> CyanogenMod settings -> Application -> there are 3 checked boxes
        “allow application moving”
        “Use internal storage” (I can’t checked this one, and I don’t if this is normall)
        “Permission management”

        • poseidon says:

          “Allow application moving”: You can uncheck this, “external storage” means the FAT partition in this case, and we don’t want anything to go to the FAT partition.
          “Use internal storage”: Don’t know what this is for, but I can’t check it either.
          “Permission management”: Read this for details, I suggest leaving it alone.

  43. Uli_BW says:

    I tried to update from CM 7.1.2 to 7.1.5. I followed your installation routine, but it does not boot. It stops at the MOTOROLA logo. I tried it several times made a new download and whatever one can do, no sucess is just stopps at the logo. I did not make a full wipe (which seems not to be necessary according to you), as I wanted to keep my applications. Any suggestions?

    • poseidon says:

      i did exactly that update a few days ago, worked fine.. i guess you did clear cache and dalvik cache? I’d suggest to restore a nandroid backup and try again.

      • Uli_BW says:

        yes, I did clear cache and dalvik cache. I have already tried it 3 times. Downloaded the Zip file again. Always with the same result. It just stops at the logo, when I reboot it. Does the OR play any role, as I use a different one than mentionned above?

        • poseidon says:

          Yes it does. I encountered various problems with other OR mods.

          • Uli_BW says:

            But I had no problem with the OR I use to install CM 7.1.2. and have no problems to reinstall it with the nandroid backup. Could there not be another reason?

          • poseidon says:

            i have no idea what could be wrong. I suggest you join #milestone-modding on freenode – I’m sure there will be someone able to help you.

  44. MILESTONE says:

    I’m having problems with the re-sizing of the fat
    resize 1 0MB 3965MB
    error: Unable to satisfy all contraints on the partition
    please help!

  45. Markus says:

    Thanks for this great site!

    I wanted to get rid of this buggy Motorola firmware a long time and now I finally did it. Was smooth as a baby’s butt :-)

    But I have one question about the ext3 partition as “internal” storage. When I wanted to resize the SD card partition, it had no filesystem on it. So the resize didn’t work because parted didn’t see any partition. I used makefs to get a fat32 partition, then I was able to resize it and finally I created an ext2 partition. Changed it to ext3 with tune2fs without a problem.

    Now with CM7.1.5 I have only 194MB total internal storage – not that extra 1GB partition I created. Or is that partition not visible?

    Again – poseidon, you did a great job!

  46. Jer says:

    I’ve been using CM7 for a while on the milestone and it was generally zippy.

    And today before I updated to CM7.1.5 I did step #4, I found out that it became laggier.

    Could it be that the class of the SD card makes a difference here? It’s a class 2 that came with the phone.

    Also, the memory usage doesn’t really move much. I realised widgets and apps report 1mb for every 10mb actually used or thereabouts.

    • poseidon says:

      Yes, a slow SD card will cause some lag in certain areas (e.g. listing all apps, starting an app). I’m not sure what memory usage you mean, the memory usage in the “Manage Application” menu displays only the free space in the actual internal memory (i.e. the flash chip in your phone), the extra space from your ext partition is not taken into account. The reason for this memory to decrease is because application data is still written to internal memory, only the application itself (the .apk file) is written to the SD-ext partition, along with the dalvik cache and the download directory (used by the market to download apps/updates).

      • Jer says:

        I see, that explains why the memory doesn’t decrease.
        Only after I installed 10mb worth of apps then it drops by 1mb.

        Thanks for the explaination.

        Yes, I do find that screen unlock, scrolling through the apps drawer and starting an app is laggy.

        What class SD card is recommended? Can i take another 8gb SD card and clone the current one over?

        Earlier I did remove the SD card to check it’s class, and when rebooted it looked like a fresh CM7 install. I rebooted and everything came back. Launcher, apps, etc.

        • poseidon says:

          The faster, the better. A class 10 will really speed up things :) .

          Sounds like your SD card couldn’t be mounted for some reason, but if a reboot fixed it, it can’t have been anything serious.

          • Jer says:

            Won’t there be a limit as to the read speeds on the milestone?

            At the moment where I am an 8GB class 10 will set me back a handsome sum.

          • poseidon says:

            I don’t think so, CPU and RAM should be fast enough to satisfy any SD card, but I’ve never seen a comparison chart, so I can’t say for sure. If a class 10 is too expensive, even a class 6 will be a huge improvement over a class 2..

  47. Jer says:

    Thanks, I’ll look around.

  48. ChrisBrown says:

    Hi poseidon,

    first of all, great guide! Great work! I have a question regarding step 4. When I am in parted, I have “Disk /dev/block.mmcblk0: 16.0GB” and “Number 1, Start 4194KB, End 16.0GB, Size 16.0GB, Type primary, File system fat32, Flags lba”

    When I type “resize 1 0MB 15360MB”, “Warning: file system is reporting the free space as 143681 clusters, not 142861 clusters. Ignore/Cancel?”

    Any ideas as to what I should do here?



    • poseidon says:

      Seems your FAT filesystem is somehow broken. i suggest to copy everything off your SD card (to you computer, check twice that you included hidden files and folders!), then create the partition from scratch (“rm 1″ to remove the FAT partition, “mkpartfs primary fat32 0MB 15360MB” to create the fat partition, and the second mkpartfs command as listed in step 3). If that sounds too risky for you, you could also try to simply format the SD card from your computer, copy everything back and do step 4 as described in the guide.

  49. Jer says:

    I had some problem with the SD card initially, where inside parted it gave me this error:
    “Can’t have a partition outside the disk”

    What I did remove all my files on the SDcard, saved it on the computer.
    Use minitool partition wizard home edition to format the card while the card was in the MS connected to PC.

    After that somehow i couldn’t repartition it using that tool. But inside the milestone in android setting -> storage, I unmounted the card, then remounted it. Android seemed to automatically ‘prepare’ the card for me. After that I could use parted to partition the card inside console.

  50. Bruno says:

    can we update our Milestone CM7 with the original updates from CM site, or we must wait them to be hacked to milestone?

    • poseidon says:

      Even the downloads on the original CM site are device specific and there’s no official support for the Milestone, so no, you cannot install anything from the original CM site.

  51. Sergio says:

    When I run print in a parted console the file system doesn´t appear, then the resize give error because it can detect the file system, how to fix it?

    • poseidon says:

      copy everything off the sd card (including all hidden files and folders!) and format it using a computer or Android itself, then try again.

  52. actng says:

    What is the difference between Step 4′s “apps2ext” and “lib2ext” listed on CM7 website by nadlabak? http://android.doshaska.net/cm7

    In 7.1.2, there are instructions to run lib2ext which sounds like it does the same thing as what step 3′s apps2ext does but seems a lot less complicated. What are the differences, if any, and what are the pros and cons to each method?

    • poseidon says:

      lib2ext is an extension to apps2ext (it moves some more files from internal memory to the ext partition, but you need the ext partition first, so you can’t skip step 4). If you have enough free space in your ext partition, you can enable it. I omitted it because i didn’t see the need for it yet, i was never short on space in /data without it.

      • actng says:

        thanks for the explanation. i wonder why nadlabak doesn’t mention app2ext over on his site. i never had a ext partition and i never would if it weren’t for your site! thanks for posting the info.

        btw, androidiani worked for me no problems.

  53. ShankS says:

    Hello, i’m stuck at the triangle with exclamation mark. Did everything that was written on the instructions.

    • poseidon says:

      Some people find it hard to do the vol-up + camera button combination, but I’ve never heard of a Milestone where it didn’t work. All you can do is trying again.

  54. MILESTONE says:

    im having problems with the rebooting thing.
    after i did the step 4, i rebooted it then it has been an hour rebooting. Bootloop?
    please help! thanks!

  55. MILESTONE says:

    I checked my storange settings in my phone 197mb i don’t know why. I did the step 4
    resize 1 2965MB 3965MB

    • poseidon says:

      This question was answered more than once here – the memory information in Android shows only the internal memory, without the extension. you will notice that the free space decreases only very slowly, because only the app data goes to internal memory, the app itself goes to the SD-ext partition.

      But – just to repeat it one more time: This will only work on CyanogenMod. Plain Android will ignore the SD-ext partition completely.

  56. MILESTONE says:

    How do you delete a partition?

  57. Vishal Mulur says:

    after using the parted /dev/block/mmcblk0 command i am getting this error-
    bash: parted: command not found
    please help.

    • poseidon says:

      re-download OR and don’t use any other OR than the one i linked.

      • Vishal Mulur says:

        Thanks a lot. Got it right. but now after giving print command it is telling this-
        Warning: dev/block/mmcblk0 contains GPT signatures, indicating that it has a GPT table. However it doesn’t have a valid fake msdos partition table.
        It goes on to ask if this is a GPT partition table?yes/no.
        what should I do now?

        • poseidon says:

          i would backup all data from the sd card (including hidden files and folders) to a computer, then enter parted, (doesn’t really matter what you answer to the GPT question) and make a new msdos partition table. You’ll lose all your data with this, but you’ll have a clean partition table afterwards.
          Example commands for creating a new partition table and creating both partitions: (use your own numbers as described in step 4!)

          mklabel msdos
          mkpartfs primary fat32 0MB 6945MB
          mkpartfs primary ext2 6945MB 7969MB
  58. actng says:

    i did step 4 on feb 3 and everything seemed to work but for some reason today feb 10 my phone said “low storage” and I check i only had 20MB free.

    i cleared my cache and davlik cache and still the same thing.

    How come?

    • poseidon says:

      what’s your CM version? you can check the free space with

      df -h

      in the terminal emulator, look for the line with /sd-ext in the end.

      • actng says:

        CM 7.1.2

        /sd-ext is 918.9MB size, 109.8MB used, 760MB available, 13% use%

        • actng says:

          i found the culprit but still don’t understand why i ran out of space.

          the culprit was a chat program’s diagnostic logs stored in /data/data//logs

          i deleted about 121MB of txt files and regained exactly that much space.

          shouldn’t some of that have been stored on the sd card?

          • poseidon says:

            No, only the apps (i.e. the .apk files) are moved to sd card, the application data remains on internal memory, because most applications that write large amounts of data, offer to write them to the sd card (fat partition) anyway. obviously not all apps do that though ;)

  59. Red says:


    Is there a way to reverse this stuff? I mean: “Motorola Milestone from CyanogenMod 7 back to Motorola Firmware”
    I want to sell my phone and the shop want stock OS…

    • poseidon says:

      I would make that optional to the potential buyer, I think you’ll get more money for a Milestone running CM… If you really want to revert to stock Motorola firmware, you have to flash the appropriate SBF for your region:
      non-service versions clear everything, service versions *should* keep user data, so you’ll need a non-service version.

  60. h.dancker says:

    graet work ! after reading this website i have think that i’m able to to so.
    but after step 2 i lose all hope.
    my bootloader is 70.13 and the phone tells an version OMAP 3630
    and after flashing “vulnerable recovery” there it goes to error:
    Critical errror 0047
    so i stop all work and will take a question to you.
    is ist the wrong phone or what can i do ?

    thanks for help

    heiner dancker

    • poseidon says:

      Do you have an original Milestone (the first Milestone version)? Milestone 2, Milestone XT720 etc won’t work.. What software did you use to flash the SBF?

      • crazeemunky says:

        i have a milestone 2 as well with the same details :

        bootloader is 70.13 and the phone tells an version OMAP 3630

        is there anyway to do this? am quite a n00b here

        • poseidon says:

          sorry, this won’t work on a milestone 2, only on the original milestone (1). I don’t have a milestone 2 and i don’t know much about it, so unfortunately i can’t even direct you in the right direction… ask mr. google ;)

  61. Bridge says:

    Can I do this process to upgrade Motorola XT800 ?

  62. krzyg says:

    Is Clockworkmod recovery neccesary to perform nandroid backup?

  63. MIvan says:

    In Open Recovery Nandroid Backup during the ‘Compressing the backup’ process some progress bar would be nice.

    • poseidon says:

      hm I should include in the guide that it’s generally not a good idea to compress nandroid backups… it takes ages to complete…

  64. krzyg says:

    I followed the guide, but when I perform parted resize it hangs. I performed it 3 times and it hung at 5%, 0% and 60%. I’ve also performed nadroid backup and it hung 2 times at “dumping logo” and one time at “dumping system”. Each time I had to pull the battery.

    • poseidon says:

      Sounds like an SD card issue, I’d copy everything to a computer (include hidden files and folders!), format the SD card with Android, copy everything back and start over.

  65. Mazin says:

    Hi, I have a faulty keyboard, and when I type in parted, sometimes I get double input and other crap -.-, so it’s impossible to me to use parted with the console into openrecovery… there are any alternative solution?

    • poseidon says:

      ADB should be enabled in OR (i haven’t tested this, but I’m pretty sure it works), so you can install the android SDK on your computer and open an ADB sh. This is completely equivalent to the OR terminal. By the way the keyboard is easily replaced: buy here, install like here.

  66. heyho says:

    thanks for the good tutorial!
    Your download link for gbapps (http://www.multiupload.com/NQAPSYPKIW) doesn’t work at the moment, is there a mirrow available?

  67. Tim says:

    How long does it takes to make a Nandroid backup? He is dumping for about 30 minutes… is this normal?

    • poseidon says:

      If you selected “Compress Backup”, then yes. The CPU is really too slow for compressing that much data in reasonable time, therefore compressing is not recommended.

  68. Onur says:

    Great work thanks!.
    The following explanation is necessary at the end of the step 4 of the tutorial.

    you just don’t see the extended memory, you can check it with

    df -h

    in the Terminal Emulator after the reboot

  69. Simon says:

    Followed the instructions and have successfully installed Cyanogen mod 7.2 on my Milestone. A massive improvement over stock Android 2.1 – many thanks for the instructions :)

  70. JOSE LUIS says:

    Hi poseidon, thak you very much for this post, it was clear enough to change update my motorola milestone…

    But, the only problem I get is that I can’t install Gmaps. I installed gmaps and youtube without problem.

    When I tried to install Gmaps, the following message appeared: ‘This item cannot be installed in your device’s country’.

    I dont know what to do, in the previous version I could use Gmaps and the others google apps.

    Here some information of mine:
    - Location: Perú
    - Carrier : Movistar

    Thanks in advance =)

  71. Christian Schmitt says:

    It sucks a lil bit, that you can’t see more than 190mb app space. my app2ext works fine, but still only 190 mb available, still it moves the apps to the 1gb app2ext space, i hope this will get fixxed. seems to be a cynagonmod problem.

  72. Shmuel Krakower says:

    I cannot believe I’ve been working with CM7.1.0 RC10 for about 6 months now! Just updated to stable 7.1.5 and it is great!! super fast in compare to the RC I used till now… thanks :)

  73. nitsthegame says:

    i created an ext2 partition on my sdcard
    now when i try to use tune2fs it gives the following error:

    tune2fs: resource busy while trying to create the journal file

    what should i do?

  74. Ameya Milestone says:

    Hi, I am having trouble with Nandroid backup, The process always gets stuck at “System..Dumping” or “Data..Dumping”.

    This is the second time I am trying to Mod my phone. My phone was earlier running CM7 but had sent it to the service center and they did a full wipe and flashed a new SBF.

    Here is what i did–>
    I flashed the vulnerable recovery successfully.
    installed open recovery version you provided.
    Backed up Formatted and partitioned my SD card for a clean start.
    But still my Nandroid backup gets stuck at the same place.
    I also tried using FuFu mini mod open recovery and Andriodiani open recovery which had worked for me earlier, but I just am not able to complete the Nandroid backup.
    Any suggestions?

    • poseidon says:

      hm, very strange. is it possible that your SD card is bad? you could check it in windows. Do you have any data on the phone? because if you just received it from the service center, you can simply install cm7 without a backup…

      • Ameya Milestone says:

        Hey .. Thanks for all you help.
        My SD card is actually brand new and seems to be working perfectly fine.
        But i tried another SD card and got a successful nandroid backup.
        Running HO NO! CM7.2 … hope the ext3 partition works…
        Thanks again… :)

  75. Schas says:

    Thx, this site helped me through the prozess. It feels like a quick and new mobile phone :-)
    A few points:
    to Step 4 )
    I got a “error partition outside a disk” and no partition showed. Using
    “parted -> mklabel msdos” opend the possibility to
    parted -> mkpartfs primary fat32 0mb xxxxmb
    I got the hint from http://forum.xda-developers.com/showthread.php?t=534714
    “No Implementation: Partition 1 isn’t aligned to cylinder boundaries. This is
    still unsupported.”
    partition 1 is no bootable, but this ist not nessesary

    to step 4)
    I had do repeat step 1 and 2
    (funny enough, a part from this loop the new partition table was accepted with no serious data-loos)

    to Step 7.)
    small typo
    OR writes “Clear Cache Partition”, not Wipe

    have a nice day

  76. Ameya Milestone says:

    Actually i have been using my phone for a while, and the real reason i want a backup of this stock ROM is because this version of froyo that they put on my phone has by far been the most stable and snappy one which i ave come across till now..
    So any ideas on what i should be trying?

  77. actng says:

    I have lib2ext and apps2ext and they’ve helped free up space on internal storage, however I find I’m still running low on ram when running minimum apps. I heard zram would help? but I can’t find any info on how to enable zram?

    • poseidon says:

      lib2ext and apps2ext have nothing to do with ram usage. You can’t do much about it, sorry. zram would help, of course, but it is currently not possible with our kernel – people are working on it, though. (But nobody can say if it will ever lead to a usable result)

  78. tauseef says:

    I installed cm7 on my motorola milestone and it was running well I loved it. But now I am unable to reset factory data and also unable to get into recovery mode.
    what should I do??
    Plz anyone help.

    • poseidon says:

      a more detailed error description would be helpful… if you really cant get into recovery, you can *always* get it back by reflashing the vulnerable recovery sbf and unzipping OR to the sd card.

      • sinaibnu says:

        I did all the steps you’ve been wrote..if I re-flashing with vulnerable again, will it delete the partition?
        Colud you tell me how to do app2sd step by step? thanks

        • poseidon says:

          reflashing the vulnerable recovery sbf will overwrite the recovery partition inside the phone’s memory, it won’t delete anything important. I’m not sure what you mean by apps2sd, if you mean the thing with the ext3 partition, there’s a detailed step-by-step description in this guide. If you mean the Android “move apps to sd card” feature, then you have to enter the manage applications menu, click on the app you want to move, and select “move to sd card” (only available if the apps allows it).

  79. Derek Turner says:

    chmod +x sbf_flash
    ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf

    Just a note to say that Ubuntu/Mint users will need to preface the second command with sudo :)

    Otherwise it worked like a charm. Kudos. Thanks.

  80. Jef says:

    Hi, thx for a very nice tuto.
    I got stuck at step 2: when I boot in recovery I get:
    E:Can't open /cache/recovery/command
    below the blue menu.

    Then if I try to apply the update, I get:
    -- Install from sdcard...
    Finding update package...
    Opening update package...
    Verifying update package...
    E:EOCD marker occurs after start of EOCD
    E:signature verification failed
    Installation aborted.

    Any clue what’s going on?

    • poseidon says:

      you’re not using the vulnerable recovery, please install it (step 2).

      • Jef says:

        Problem solved, by booting recovery right after bootloader mode as you told me. My phone now works like a charm, much faster and smoother than with the Motorola Firmware. Thank you poseidon, for the tuto and the help!

  81. jekl says:

    Yes! Real great tutorial!!!

    I was always afraid of the root, cm mod and bricking stuff, until i found this here. :)
    For two years i had my stone with this bad motorola stuff on it. i waited so long cause i was afraid of killing my phone, so… now it is like a new phone!

    so you just spared the world some electronical waste, if thats an argument for you :) i don´t need a new mobile. now i´ll keep my beloved stone.

    real good work buddy!

  82. Jef says:

    What shall we do with the Nandroid backup we made at step 5 ? Is it fine to delete once we find that everything is ok with the new installation ?

  83. hf1344 says:

    Thanks x 100000000000000 !! the best tutorial i could find and the only one that allowed me to update stock froyo to Cyanogenmod 7.2 !

  84. Naeem says:

    What terminal emulator did you use

      • Naeem says:

        as in on Step 1B what terminal did you use to get the sbf file to flash

        • Naeem says:


          • poseidon says:

            being impatient just makes me take longer to reply, especially when it’s such a strange question.

            Anyway, here’s your answer: It doesn’t matter in any way, just use the terminal emulator provided by your linux distro. You can also use one of the virtual consoles directly (usually accessible with ).

            In case you wanted to know which shell you should use: That also doesn’t matter. I usually use bash, but any shell capable of running an executable (so… every shell) will be fine.

            I’m even answering a third question you didn’t ask: Yes, you have to run sbf_flash as root (how you do that depends on your distro, on ubuntu-like distros you will have to put a “sudo” in front of the call, other distros might requiere you to type “su” to enter a root shell)

  85. Naeem says:

    Im sorry for being impatient, i apologize can you provide with a link please thank you + do you do step 1B on your Desktop or on your phone?

  86. Naeem says:


  87. Ignacio says:

    Hi. I completed every step and finally instaled Cyanogenmod but when the cellphone tryed to boot it just doesn’t start. It keeps showing this blue android on the skateboard and the animation restarts itself (wich I don’t know if it’s normal, the blue guy enters all the time with the skateboard after the arrow completes two circles).

    Hope you can help me, I’ll try to reinstall it now. Thanks in advance

    • poseidon says:

      did you do all the wiping steps? (dalvik cache, cache, data)? If yes, i’d try again, clear everything, re-install cm7.

  88. Stu says:

    Thanks for this awesome guide.

    One question:
    I created an ext3 partition and I’m running cm7, I was planning to upgrade to cm9. Do I need to format my ext3 partition? Or will the data wipe do that?

    Thanks again!

    • poseidon says:

      I don’t think a data wipe will format the ext3 partition. You know that cm9 for milestone is still an alpha version?

      • Stu says:

        wow, thanks for the quick response!

        and yep! I know, but it looks largely functional though and I thought it would be fun to try out. :)

        So I need to format it manually? e.g.
        umount /sdcard
        parted /dev/block/mmcblk0
        rm 2 <- or whatever number the ext3 partition is.
        mkpartfs primary ext2 6945MB 7969MB
        tune2fs -j /dev/block/mmcblk0p2

        or is there an easier way to do it?
        Thanks again,

        • poseidon says:

          why not simply:

          cd /sddata
          rm -rf *

          (be careful, double check you’re inside the sddata directory before issueing the rm command …)

          • Stu says:

            So /sddata is the ext3 partition?

          • poseidon says:

            yes, you can check that by looking at the output of ‘mount’. /dev/block/mmcblk0p2 should be mounted at /sddata.
            removing the partition and recreating it will work just as well though. remember to add journalling, otherwise you’ll only have ext2.

          • Stu says:

            Many thanks once again.


  89. Satheesh says:

    After applying update.zip from android recovery mode.

    I have ths error instead of getting into openrecovery. kindly help.


    • poseidon says:

      Did you use the OR i provided? and did you copy both the update.zip and the OpenRecovery folder to your sd card?

  90. Vasu says:


    I am trying to tune ext2 to ext3 and stuck with the below command line.

    tune2fs 1.41.11 (14-Mar-2010)
    Creating journal inode:

    Tried several times and getting stuck with same problem. tried re-doing it from xrecovery reinstalling even no change.. once it work but unfortunately i tried making ext3 to ext4 and ext4 resulted in errors while booting. so formated it again and started from scratch and getting stuck in the same place.

    also can you please explain how to update /etc/fstab after partitioning.. may be that help me resolve this error.

    Thanks for yhpur Support.

    • poseidon says:

      did you unmount the ext partition before converting it to ext3? If not, do a

      umount /sddata

      first. What do you mean by updating fstab? What do you want to have in there?

      • Vasu says:

        Well I havent been there, once i partition the ext2 and give quit i am getting Information message like you may have to update /etc/fstab.

        then i give exit and come in and umount /sddata and umount /sdcard and try to tunefs its getti ng ahnged there…

        tried this way even, ext2 created quit, informtion meg, then umount /sdcard and /sddata and then tun e cmd still smae place stuck. I am pretty sure i didnt missed your steps.


  91. Vasu says:

    and i dont have permission to go to /etc/fstab by the way. So I did nothing there.

    • poseidon says:

      i have no idea what could be wrong with your sd card. if you have access to a micro sd card reader or a micro sd to sd card adapter and an sd card reader you can try to create the partition on a computer.

      You have to be a bit more precise about the fstab file. what do you want to edit it for? Android itself doesn’t have an fstab file that i know of, only the recovery has one, and this one already contains an entry for the sd ext partition. So what do you want to edit?

  92. Vasu says:

    lets forget about fstab editing. i am not ready to do it.

    can you please tell how to tune it in computer.. bcoz partition is done perfectly. i just need to tune from ext2 to ext3

    • poseidon says:

      The commands are the same on your computer, only the device name of the sd card block device will be different, but i can’ tell you that because it’s depends on your computer/linux distro.

  93. Thomas says:

    Seriously, it’s so frustrating ! In step 4 you have to select “apply sdcard:update.zip” and I did it but it always abort the installation -.-
    I’ve tried like 5times or something like that, so can you please help me?

  94. Vickx says:

    Thank you! It works fine!

  95. Rewk says:

    My Milestone was getting bored with its rooted stock version of 2.2.1, and an old version of Open Recovery. So, I just gave a try to this method, which, by the way, is great ! Even if it was only to upgrade my OpenRecovery, I thought that would still worth it.

    Thus, knowing the Nandroid Backups would avoid me a deep frustration, should anything go wrong, I attempted the install CM7.

    I encountered several issues, anyways, that made me revert to my backup :
    - Impossible to perform a Nandroid backup just after the cyanogen install. It remained stuck on bpsw.imp dump for at least 10 minutes. I had to remove the battery to exit. This issue seems to have been noticed somewhere on google, but no explication was provided… I still don’t know what happened. (I did not select to zip backups) (and i did not try to perform another backup after the first boot.)
    - I could boot in CM7, which looked to work great. Then i rebooted into recovery, to check if this was possible using the reboot to recovery feature of CM7. When I rebooted back to CM7, the physical keyboard had just ‘disappeared’. Even in landscape, with phone open, soft keyboard was displayed and no input was taken from physical one. (I did not find this issue googling for it.) Moreover, no settings for a physical keyboard appeared in keyboard and language section. It was just like my keyboard was unplugged.
    - The market appli was no present, but i wonder whether it is not because i didn’t logged into my google account. (Someone else seems to have had this issue here, also.)

    I will try this again tomorrow. Now, i’m a bit tired…

    • poseidon says:

      - The issue with the nandroid backup is strange, cannot reproduce.
      - Non-working hardware keyboard in CM: most likely you set the keyboard layout in OR, which overwrites the Cyanogen keyboard files with older incompatible versions. I’m still looking for a solution, but for now this can be fixed by re-installing CM, and can only be avoided by not setting the keyboard layout in OR.
      - the Market application should be present as soon as you install GApps, but currently the transition of Android Market -> Google Play is ongoing, your Market application might have updated itself OTA, the new one has no “Market” activity anymore, but is listed as “Google Play” in the launcher, iirc.

      • Rewk says:

        Thanks for this quick answer !
        Finally, I’m not that tired, I will retry at once. :)
        I will tell you if i stumble again on the bpsw lock.
        As for the keyboard, i guess it was the problem. Now, i will be careful NOT to set it in OR.
        I couldn’t have any data connection while i was trying CM. WIFI couldn’t connect, 3G neither. I don’t know why, by the way. I checked the bands to be 2100/900, as used in France. I hope this won’t be the reason I don’t switch to CM7. :(

        • Rewk says:

          Update : no problem with bpsw backup. But this time, I applied the PBSW_update.zip. My phone shouldn’t have needed it, and I really just don’t know how this could have been an issue. Maybe a
          Anyways, anybody getting an Open Recovery locked on “pbsw: Dumping…” should at least try this…

          This time, Market is here. Maybe my SD card has some issue…

          Thanks for this tutorial !

          • poseidon says:

            you might need to check the APN settings for your provider to get 3G working – but i have no idea what could be the problem with your wifi.

  96. Rewk says:

    3G worked eventually. It might have been when i selected “Itinérance Nationale” (I guess it must be something like “national roaming”, but this setting was not present in the stock ROM.) It may have been an issue with Free Mobile (the new french 3G operator) roaming setting, to use Orange antennas.
    As for WIFI, a reboot of the router seemed to make the network appear in the list. Don’t know why, because my TF101 was already connected to it and working. Anyways, it works now !
    Thanks again for your tutorial. CM7 will stay on my phone for a while… :)

    • poseidon says:

      who knows what the router software was doing… :)
      good to hear it finally works!

      • Rewk says:

        Hi again Poseidon.
        CM7 works so well on my Milestone it’s almost like if I had a new phone. I really should have tried this before. :)

        Still, I wondered why when the phone is connected to USB as Mass Storage Device, the ext3 partition can still be mounted on the PC, without being unmounted from the phone ? Unlike when the apps are stored on vfat partition of sdcard by “Froyo move to SD” mechanism, the applications were still usable while the content of ext3 partition was browsable from my PC.
        Is it a side effect of the mass storage sharing ? Like, unmounting vfat partition, but not bothering about the ext3 one and sharing the whole content of SD on USB anyways ?
        Could you please confirm (or infirm) my guess ?

        Otherwise, OR, on the other hand, still has some small issues with backup. It sometimes hangs on bpsw, or on cache partition. It looks that dump_image randomly gets stuck. mkyaffs2image does not seem to have any issue. I edited the backup script to remove the > /dev/null redirection from the non filesystem backups. That way, an error message might be displayed in case of failure, if dump_image is verbose enough…

        • poseidon says:

          I don’t see the ext3 partitition on the computer when i select mass storage mode, only the fat partition appears in windows. Very strange..

          Also the OR issue is strange, i never experienced any hang during a backup, i can only assume a bad SD card as the issue. (I think I remember one case discussed in IRC, where replacing the SD card helped, so I think it’s likely that that’s the reason..) You might want to check the fat filesystem, or reformat the fat partition and see if that helps.

          • Rewk says:

            It was automounted by my Ubuntu when the phone was plugged. Windows cannot display Ext3 (unless driver driver exists for it?). That’s why you never noticed, i suppose… Anyways, it quite startled me to see this partition mounted on the PC while still reachable on the phone, but it does not cause any issue whatsoever. :)

            As for OR, I will indeed try with another SD card. The randomness make it difficult to reproduce the problem… The last backup with added logs went fine, for example.

            Thanks ! :)

          • poseidon says:

            I’ll try on linux, but windows normally displays a message offering to format partitions with unknown filesystems, so I’m pretty sure it’s not exported from the phone. But i must say I formatted my SD card differently than what i wrote down here, probably my partition table is somehow strange :)

  97. Lester says:

    this works on motorola milestone cdma??
    just to be sure, is this the phone you all talking about??

    • poseidon says:

      there is no motorola milestone cdma, only the motorola droid, which is the cdma version of the milestone. this process, however, does not work on a motorola droid. but in contrast to the milestone, the droid is not locked down and officially supprted by cyanogenmod iirc.

  98. Cyberponcho says:

    Excellent tutorial, thank you so very much, if you don’t mind i’ll write an article about my experience on my blog and i’ll put a link to this page; thanks again! i love my phone even more now :-)

  99. dude61 says:

    Thanks for this detailed guide! One question after I performed the step 4- Prepare your SD card for Apps2Ext. Then after restart, all the apps that installed in the phone’s internal storage can’t be opened, their icons has changed to like losing the correct path of the application. Can you help me out? Thanks!

  100. Anthony says:

    Sir Poseidon, i’ll just make things clear, is this for Motorola XT720 phone also?? I just want to make sure!

  101. Anwar says:

    Thank u….this guide is absolutely EXCELLENTTTTT!!! and CM7 is wayyyyyyyyy better than the stock Froyo…wayyyyy faster…um really glad i updated!

    i have a problem now its that i lost the screen unlocker (the slider or ring or watever) it gone and i can’t get it back!! could someone help with that?

    • poseidon says:

      You probably deactivated the Lockscreen, see Settings -> CyanogenMod Settings -> Lockscreen.

      • Anwar says:

        i’ve been doin that…but there isn’t any option to cancel the screen lock or activate it!

        • Anwar says:

          thank u for ur quick response…i solved the issue though..had to make it unlock with pattern then cancel it ;)

        • poseidon says:

          how about:
          CyanogenMod Settings -> Lockscreen -> unlock options -> Skip on Security
          CyanogenMod Settings -> Tablet tweaks -> disable lockscreen

  102. M says:

    Anyone else having problem with WiFi on the 7.2.0 RC1?

    • poseidon says:

      works for me..

      • M says:

        After some testing on different networks I’v managed to get it working on two of them (out of four). The phone did connect to my home network before installing 7.20RC1 (before i had the original rom).

        rm -R /data/misc/wifi doesnt solve the problem.

        Any thoughts?

        • poseidon says:

          did you wipe data when you updated? if yes you can still try if a wipe fixes it, just make a nandroid backup before you wipe :)

          • M says:

            Yes I did. Gave it a second try and it didn’t work and to make things even better all my apps installed on the SD-card isn’t restored when running Titanium backup :(
            Gonna try to install RC0 to see if that solves it.

          • M says:

            No succes with RC0, 7.15 did the trick though.
            Just to wait for the next release to see if that one works :)

            Anyway, thx for a great guide, the best one I’ve seen so far.

  103. markcnz says:

    hi. thanks for this great info. i need some help getting my radio working properly. i followed the instructions and all went well with the update. but the wifi and radio take some time to turn on even from a sleep state. they stay white and look like they are working but the phone does not actually dial and the internet does not connect. then they turn green and start working after a couple of minutes. sometimes when their status is green they still do not work. any pointers? cheers, mark

    • poseidon says:

      the “first white then green” thing is normal, but it shouldn’t take that long, a few seconds at most. The only situation where it stays white for me is when i connect to a wlan without internet access. Does it happen both on wlan and on mobile data? if it happens only on mobile it might be a problem with your provider, a new sim card might fix it in that case.

  104. bappa says:

    well, all the tasks done, but wen i rebooted and starting cyanogen mod 7 its showing the starting animation….as u mentioned that it takes long tym to start for the first time,i have waited for an hour,still its not started :(

    • poseidon says:

      It shouldn’t take that long, only a few minutes – do you see the animation “restarting” from time to time? In that case you’re caught in a boot loop, you’ll have to remove the battery to try again or enter recovery. Did you wipe everything (i.e. cache, data, dalvik cache)? Thats a common reason for a boot loop.

  105. bappa says:

    ya boot loop…but thanks, ive done it, after a data reset it successfully started :) thanks a lot, i realy love it :)

  106. Roshaan S says:

    I am getting this error after putting CM7 into it and rebooting system


    Battery OK
    OK to program
    Connect USB
    Data Cable
    so i connected the cable and it said
    Transfer Mode:
    in the last two lines

    • poseidon says:

      reboot into recovery again and reinstall cm. seems as if there is a problem with your boot partition.

      • AdsWhite says:

        I had the same problem and fixed it by grabbing the latest version of CyanogenMod (7.2.0 RC1)

      • Roshaan S says:

        are you talking about sd card partitioning of the flashing the sbf file part?

        • poseidon says:

          no, i’m talking about the part where you download the cyanogenmod install zip file to your openrecovery/updates directory, reboot to OR and install it.
          you can transfer the zip file to your sd card in OR, select “toggle usb mass storage mode” and connect the phone to your computer.

          • Roshaan S says:

            tried both cyanogen stable and now the RC, same outcome :( did everything step by step again but no avail, i can put MIUI successfully but all roms based on CM dont seem to work

          • Roshaan S says:

            is it needed to create an ext partition? i didnt so it because it said optional and i didn’t need space for apps etc.
            what does this boot partition etc mean and what should i do now?

          • poseidon says:

            no, it is not needed to create an ext partition. What phone model do you have exactly? this tutorial applies only to a motorola milestone, not to an XT720 or any other milestone derivate.
            the boot partition is the partition that holds the linux kernel of an android system, which is signed (and cannot be changed to a not-signed one) on the milestone.

          • Roshaan S says:

            yea dude, milestone normal, just got a sbf file from here http://and-developers.com/sbf:milestone221
            seems to be much bigger than the sbf specified

          • Roshaan S says:

            ok see, what i am doing is
            go to bootloader and put the sbf file (pressing x to go to OR)
            then apply cm7
            then reboot , and i get this

  107. LGR says:

    Hay man thanks for the awesome tutorial.

    I just can’t re-establish my internet connection (3g).

    There is no baseband selection available in the device settings menu that you mention in your tutorial.

    Any help please and thanks!

  108. Vivian Abraham says:

    Hi I need help,

    I am stuck on the partitioning sd card part. could you help me via email?

    this is what i see

    GNU Parted
    Using /dev/block/mmcblk0
    Welcome to GNU Parted! Type ‘help’ to view a list of commands.
    (parted) print
    Model: SD SD16G (sd/mmc)
    Disk /dev/block/mmcblk0: 16.0GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number start end size type file system flags
    1 66.0kB 16.0GB 16.0GB primary fat32 boot, lba

    Can you help me continue? I dont what exact numbers to be put in, like you did with yours. Can you please help me?

  109. Vivian says:


    Can i please get in touch with you via email?

    I am stuck at the ext3 partion part area and would like to talk to about solutions



  110. Vivian says:

    this is the problem

    Hi I need help,

    I am stuck on the partitioning sd card part. could you help me via email?

    this is what i see

    GNU Parted
    Using /dev/block/mmcblk0
    Welcome to GNU Parted! Type ‘help’ to view a list of commands.
    (parted) print
    Model: SD SD16G (sd/mmc)
    Disk /dev/block/mmcblk0: 16.0GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number start end size type file system flags
    1 66.0kB 16.0GB 16.0GB primary fat32 boot, lba

    Can you help me continue? I dont what exact numbers to be put in, like you did with yours. Can you please help me?

  111. Vivian says:


    i just finished installing the cm7 update and gapps

    and rebooted now its stuck on the bootloader screen

  112. Vivian says:

    ok now i managed to fix and am running the cm 7 with kang :D

    but now the play store(market) keeps force closing on me. worked for first 5 min now not working at all.. help

    • poseidon says:

      clear the data of the play store app (launcher menu -> manage applications -> tab all -> Google Play Store -> clear data). you won’t lose anything important except for the settings of the play store app itself (like update only on wlan etc, not really much to do to set it up again).

  113. Vivian says:

    since i skipped the ext 3 step to go on to put in cm7, can i go back to the ext 3 step?

    is so, could tell me the numbers to be put in?

    thanks so much

    • poseidon says:

      i don’t understand what’s the problem with the instructions i gave in the post. you see the total size of your SD card, subtract 1024MB from this and write down that number. Then you resize the fat partition from 0MB to your number and create the second partition from your number to the end of the SD card (i.e the total size). just calculate the numbers yourself.

      If you don’t see the numbers in MB but in another unit, you can change the unit by issuing

      unit MB


      • Vivian says:

        ok thank you soo much ..:D:D

        Once i go back to ext 3 step and finish it, do i have repeat all the other steps below like wipein stuff and reinstalling cm7? or do i just reboot normally

  114. Vivian says:

    none of my messages have come back, i followed your steps, i got my contacts
    but my messages havent come back, in titanium the pop up only says (back up, run, wipe data) no restore, how do i get my messages back?

    • poseidon says:

      i have no idea to be honest. are you sure you backed it up? you could take a look at the nandroid backup, the path to the telephony storage is /data/data/com.android.providers.telephony. You can try to copy everything in there manually to the data partition..

      • vivian says:

        Well I did the steps u provided did the titanium backup and nandroid stuff. Which directory am I copying the file too?

        • Vivian says:

          hey could you tell me how to do that above thign you mentioned? Or would installing cm7 fix it?

          another problem i encountered was with titanium > it didnt load up all my apps, some are now missing and it is also missing from the titannium app

          please help

  115. timmy says:

    hi there, just a tiny question: app2ext just extends the /data/app directory, am I right? Is there any way to extend /data/data directory, which becomes larger and larger when more apps are installed and run?

    • poseidon says:

      not that i know of. if you really need even more space in /data you can move application libraries to the sd-ext partition: quote from nadlabak, the creator of cyanogenMod for Milestone:

      – lib2ext script (and support for it in installd) newly included. It is not active by default. It can free huge amount of space in /data by transfer of applications’ native libraries to sd-ext. Make sure you have enough free space (at least 100MB-200MB) in /sd-ext before you enable it. To activate it, run “su” and then “lib2ext 1″ in terminal on phone. The libs will be moved during the next boot.

      • timmy says:

        Is it stable to move the libs? And is there any way to do reverse operation?

        • poseidon says:

          yes, it is just as stable as apps2ext, and no, there’s no automatic way to reverse it (though it’s possible with some effort)

          • Vivian says:


            could you give me a link or a more dummied version of how to restore my messages?? I dont understand what you said.

            I looked at the nandroid through file manager all show as boot imgs etc.

            through the usb same thing.

          • timmy says:

            i’ve done that successfully, thanks.

            an additional question: what if i re-install or update an application, do i need to re-do lib2ext commands?

          • poseidon says:

            I’m not absolutely sure, but i think once you rebooted after issueing that command all libs (newly installed as well) will automatically go to the ext partition.

  116. meg says:

    Howdy poseidon,

    I have to say I’m really impressed with the clarity of your instructions and how much effort you put into helping people in the comments. You are ridiculously awesome.

    Here is my question before I start: I have a Motorola Droid from Verizon. The box says MOTA855. Is your tutorial here the one I want to be following?


    • poseidon says:

      Thanks! And no, you don’t have to follow this guide, you’re in a much better situation than we milestone users – your phone is officially supported by cyanogenmod and you can follow the instructions provided in the cyanogenmod wiki.

  117. Pingback: How to restore messages after flashing ROM - Android Forums

  118. Vivian says:

    Hey could you tell or link me on how to go back to stock rom? I want to see if i could get my messages back from there


  119. Vivian says:


    for people who might run into the same problem here is what i did.

    1. i downloaded a stock sbf of my phone >

    2. Plug the USB and shut your Milestone down

    - 3 : Boot it in bootloader mode (press the D-PAD UP key while pressing the power button)

    - 4 : Launch RSD Lite, your device should be in the list

    - 5 : Select your .sbf file and click on start ans let it do, your phone will reboot at the end.

    When my phone when back to stock, I then went into Open Recovery and when to NANDROID and restored it to a previous backup, which had all my apps, SMS, COntacts and Call log :D :D:D

    here is the site where you can find download links for stock SBF files for various phones


  120. TheMrcool212 says:

    i dont understand very much how to use the ‘sbf_flash’ and ‘vulnerable recovery’ file to flash the sbf in my milestone in mac/linux,I’m using mac


  121. NitwitMN says:

    I came across your site due to a bit of research I’m doing to fix a
    troublesome Motorola Milestone that had CyanogenMod installed when I
    purchased it.

    Recently, the “Back” “Menu” “Home” & “Search” buttons behave
    erratically, if at all. Also, when I unlock the phone, it will act on
    it’s own… open a Dolphin browser session, etc. Also screen will jitter. The pull-down notifications tab will sometimes not respond, sometimes will scroll open/shut

    Am I correct that one rememdy would be to just reinstall the Cyanogen
    Mod once again without performing all the steps outlined in adapting the
    phone to accept Cyanogen the first time?

    Thank you for any assistance/insight you’re able to provide.

    • poseidon says:

      If cyanogenmod is on the phone you can be pretty sure that you have the vulnerable recovery, so you can skip step 2. i wouldn’t skip step 1 though, you don’t know what flavor of OR the previous owner used, so I’d remove the OpenRecovery folder from your sd card (if it exists) and install OR as described in step 1. Step 3 and 4 are optional, step 5 is recommended if you have any data on the phone. Step 6 is mandatory (Oh, Really?), step 7 optional.

      I must say that your problem sounds like a broken touchscreen digitizer though, a thing that often breaks on the Milestone. Fortunately it’s not very hard to exchange the part on your own, and it’s not very expensive on ebay.

      good luck!

      • NitwitMN says:

        Thank you SO much for your schnell reply!

        I suspect you may be correct about the screen requiring replacement. It fell yesterday moring onto a carpeted surface, but that may have been enough to compromise the screen.
        The one thing I noted is that the back, menu, etc. buttons ‘sometimes’ work.

        I really appreciate the ebay link you included too.

  122. bappa says:

    got a problem…..strange!!! i ve installed cm7 and using it….but recently while trying to restore nandroid i cannot boot into open recovery mode!!!!! i kept update.zip and openrecovery folder in sdcard.but wen i reboot into recovery mode it doesnt appear to the open recovery mode.it restarts and come to stock recovery mode.then when i click update.zip, it says “such file doesnt exist”. i copied that update.zip in sdcard several tyms, but wen i click update on stock recovery,it says that it doesnt exist.and strange! it realy vanishes from sd card!!!!!!no idea wer that update.zip file goes!!!!!! got that prob???? any idea???

    • poseidon says:

      i don’t have the slightest idea. the only thing that comes to my mind is that you might have a virus on your computer and the file actually arrives at your sd card. did you check with an android filebrowser whether the file is there? another possible reason is malware on your phone, it’s really easy to write an app that is started when you shutdown the phone and that app could just remove the update.zip file each time you reboot. you could try to put the file on the sd card with an external card reader an boot directly into recovery after inserting the card. last but not least your sd card could be broken, or at least need a reformat.

  123. Goverdhan says:

    I am trying to upgrade to cm7 from officialy OTA upgraded 2.2.
    I am having problem with install-recovery.sh

    As mentioned here I have done
    rm /system/etc/install-recovery.sh
    and it gave me error stating Such file doesn’t exist. I tried 3 times.
    Then i gave
    rm -f /system/etc/install-recovery.sh
    now it did not give me any error

    But still when i reboot into OR again, I get the stock recovery menu and not the modified one.

    Can you help me with this

    • Goverdhan says:

      Will there be any problem perse if you don’t delete the install-recovery.sh file, except that I will have to re-do the whole process again when ever I want the OR.

      • Goverdhan says:

        Further, I have formatted the sdcard from android before i actually started the whole process of updation.

        • poseidon says:

          so you get the signature verification failed error each time you try to boot into OR? Remember, booting into OR requires that you boot into stock recovery (you can’t distinguish the vulnerable and the fixed one) and then apply the update.zip each time. Once you installed cyanogenmod, the apply-OR-update will be done automagically, but until then, it must be done manually. You only have the install-recovery.sh problem if you get a signure verification failed error when you try to apply the OR update zip, because that means that the vulnerable recovery that you flashed from the sbf was replaced by the fixed recovery again. (And that is the only way to distinguish between the vulnerable and the fixed recovery.)

          • Goverdhan says:

            thanx for the quick response.
            No i didn’t get the signature verification error.
            But i continued with the cm7 updation.
            Now when i reboot to recovery from power menu, it automatically installs the update.zip file and i see the modified menu.

            but i haven’t tried rebooting to recovery by gud old method of pressing & holding the hotkey. will update upon doing so.

  124. Goverdhan says:

    hi again,

    I tried the old method as well and I am be see the modified OR.
    So, I can say now that I have successfully followed your instructions without any problems and the phone is working way much better than it used to with stock 2.2.1
    I thank you for your instructions and your quick & timely response.

    One more, well a dumb question, I am not able to lock the phone. Can you guide me on this please. I tried Location & security but its just not happening.

    Secondly, when I dock the phone on the Car Mount, earlier Car Home used to load automatically as soon as I dock it. But now its not happening. is there any setting that I need to do. Car Home is launching properly when I launch it manually. Disable Dock Observer is unchecked.

    any help on this appreciated.

    • Goverdhan says:

      One more thing. when i try to restore the messages (data only) from TB, after reboot it says com.android.phone has terminated and requires me to wipe the data again and reboot.

      What can be the problem………..Well solution;-)

      • poseidon says:

        you can try to manually clear the data of the Dialer and Dialer Storage app to fix the force closes. You can then try to copy everything from the Titanium Backup (/sdcard/TitaniumBackup/com.android.providers.telephony--

        • Thomas says:

          Had the same issue regarding the com.android.phone crashes. Fixed it by
          1: switching on flight mode to stop the error / PIN input loop.
          2: Using an app (I used minimaltistic text widget) to start the APN activity (found under Settings) (the APN option is normally unreachable in flight mode), when in the APN menu, press menu button, ‘Reset to default’, when turning off flight mode, this should stop the errors, but won’t restore broadband internet data connections (apn settings are shot, and input via ‘add apn’ fails due to some sqlite error)
          3: enter in a shell (‘terminal emulator’ or ‘connectbot’ set to local) with root permissions (su): ‘rm /data/data/com.android.providers.telephony/databases/telephony.db’, ‘cd’ to that directory and verify that telephony.db is no longer listed with ‘ls’. Leave the other ‘telephony.db.*’ files alone.
          4: reboot.

          After rebooting, the default APN settings should have been loaded automatically from ‘/system/etc/apns-conf.xml’
          At this point GPRS / 3G / HSDPA connectivity was restored on my Milestone, and the APN list / add menu worked.
          Haven’t tested it myself, but you probably would be able to skip step 2.

    • poseidon says:

      you might have the disable lockscreen option activated, it’s in cyanogenmod settings -> tablet tweaks. car mount and desk dock work just fine here, very strange. you could check the logs with aLogcat while you’re inserting the phone into the dock, or just take a magnet and move it around the back of the phone for testing if the sensor works.

  125. wvufan29 says:

    Hey i was just wondering if anyone knew how to deal with a rooted/unrooted phone? I had rooted my milestone when i had crashed the last one and rooted it, well gingerbread came out and i upraded to it before unrooting my phone(lack of smarts on my part) Is there anyway to get fully unrooted? When i try various programs it either says cant root or im already rooted because now su is stuck in my phone like it came factory. So any help would be awsome thanx.

    • poseidon says:

      To reset the phone to factory new state (complete reflash) download the right sbf for your carrier/region from here and flash it with RSDLite or sbf_flash. (Scroll down on that page to get the newer firmwares, or might be on 2.0 again after the flash …) Beware that this also clears all your data.

  126. TheMrcool212 says:

    I’m here again,i have a problem.i cannot open the update.zip in the android system recovery.when i try opening the update.zip top open OR,it says this :

    E:Cant’t open /cache/recovery/command

    – Install from sd card…
    Finding update package…
    Opening update package…
    Verifying update package…
    E:failed to open sd card /sd card/update.zip(No such file or directory)
    E:signature certification failed
    Installation aborted

    when i power on my phone,i go to file manager,i check the file on sd card,the file is still there,but why it didn’t to open the update.zip file?

    • poseidon says:

      That error indicates that you have the fixed recovery. So you either didn’t flash the vulnerable recovery yet or you didn’t remove the ‘install-recovery.sh’ file immediately after flashing. Please read the guide carefully it’s all described there.

  127. Goverdhan says:


    thnx for the information. but be4 that i hv another problem here.
    much more serious.

    I am not able to receive incoming calls but I am able to make outgoing calls.
    When somebody calls me, they hear one single ring and then a message is heard as to line is busy. I have not received a single incoming Voice call since the upgrade.

    3G works fine. Outgoing works fine. I receive SMS. not tried mms.

    What might be the problem?

    • poseidon says:

      You can try if a data wipe fixes it, just make a nandroid backup beforehand so you can restore to your current state afterwards if it doesn’t help. If it doesn’t help, i suggest that you try a different sim card, i heard of a few cases where the phone didn’t cope too well with older sim cards. If it works with a different sim card, i’m sure your operator will exchange your sim for a newer one for free.

      • Goverdhan says:

        I tried both the options suggested. but unfortunate of me both did not work. what else can i look at?

        • Goverdhan says:

          Gud news. I did clear dalvik cache and data wipe in the same order and voila…….. I am able to get the incoming calls.

          thank you for all the help.

  128. Goverdhan says:

    r u currently on irc client. my id is gkudligi. you can ping me there. bit urgent.

  129. milo993 says:


    I followed your great explanations and at least superficially understood what I was doing and it seemed to work until the last reboot. Now I happen to have a bootloop-problem. I used: update-cm-7.2.0-RC1-umts_sholes-KANG-signed.zip and gapps-gb-20111216-signed.zip
    Was looking for you in the milestone-modding channel on irc, but wasn’t lucky to meet you. So now I post here – I would be super glad if you would come back to me via email and maybe give me an idea what I did wrong.

  130. Monica says:

    Hi there, thanks for this awesome guide. I’ve figured out that I need more space, but I have one problem:

    I try to resize the FAT32, but I get error message:
    “Unable to satisfy all contraints on the partition”

    What can I do?

    • poseidon says:

      I need a bit more information to be able to help you, like the output of the “print” command in parted, for a start…

  131. Marcelo says:

    Thanks a lot for this tutorial. My milestone is like a new cel!

  132. John Hole says:

    Hi there great step by step by the way, i followed every step but on the step where it says backup on OR i get to the backup part where it says “system….dumping…” and it takes much longer than i thought plus it eats the battery! please help i really want to back up my phone!

    • poseidon says:

      Do you have the OR i have linked in the post? if not, please install it, there are some bugs with the other versions. A faulty SD card might also be a reason, you can try to copy everything (be sure to include hidden files and folders!) off the card, format it and copy everything back.

      • John Hole says:

        Hi there i tried this and i got one succesful backup but i will try it again to see if it stalls , Thanks for the advice!

        • John Hole says:

          I tried again but it just stalled what should i do? ad its a huge pain moving files back and fourth from my device and my pc.

          • poseidon says:

            I don’t know what could be the reason, other than the sd card being broken somehow. But even if you have to copy everything off to get a working backup – you don’t have to do it very often, only when you update cm. If you have one working backup, i suggest you continue with the guide and think about the problem again when you want to update cm the next time :)

  133. OneWorld says:

    Thank you for the detailed and up-to-date instructions!

    How do I set my keyboard to German QWERTZ layout? The setting inside OR is just for the console.

  134. jotabr says:

    My cel is amazing now. Thanks a lot, Poseidon! You’re da man! :-)

  135. Jack says:


    is there a need to set the ext3 part with exactly 1024MB or can it be a bit larger (1-3MB)?
    If it doesn’t set to exactly 1024MB, detect cyanogen it anyway as an internal extansion?
    Thx for your help.


    • Jack says:

      Sorry, i didnt say thank you for the great guide!
      All works fine with german Milestones too ;) .


      • poseidon says:

        The size is completely arbitrary. you can use 1337 mb if you want to. And thanks!

        • Jack says:


          another question in this case

          in the cyanogen settings the menu point “Nutze internen Speicher” (“Use intern memory”) is greyed with the with the text “Dieses Gerät hat keinen erweiterten internen Speicher” (“This device got no extended intern memory”).
          Did i anything wrong or use cyano the ext3 partion naturally?


          • poseidon says:

            That’s ok, I don’t know what “extended memory” this is referring to, but the milestone apparently doesn’t have it. You can check your free space (and also how much space is used on the ext partition) by typing

            df -h

            on a terminal emulator. /data is your internal data partition, /sd-ext is the ext partition on the sd card.

  136. Tom says:

    thanks for the great guide — my previously sluggish old phone is now faster than it ever has been, I’m enjoying it a lot!

    One little problem though: I don’t have Gmail or G Calendar, and G Maps was not installed either until I got it via Play Store (which was installed from the beginning, as was Latitude). The GApps package was gapps-gb-20111216-signed.zip which seems to be current. I installed it as described in the guide and have just tried it a second time (reboot into recovery, update, select it, it seems to install).

    Maybe I’m an idiot and the apps are in fact installed, but they’re certainly not in my apps list.

  137. Thanks for the post! Greetings from Venezuela!

  138. dima says:

    sorry I got an error
    read this :
    I have a serious problem with my SD Card ..
    I followed your guide in how to Prepare for Apps2Ext and I have accidently Shrinked my FAT32 partition so now I have 3GB and I dont see the rest of my memory
    So do you have any suggestions how can i fix that?

    I know that i did a big mistake but i hope that you’ll help me fix it.


    • poseidon says:

      what do you mean by “I dont see the rest of my memory”?
      Can you post how parted reports you partition layout? (the ‘print’ command)

  139. TheMrcool212 says:

    thanks for teaching me to do this.im now running ice cream sandwich in my milestone.i created the ext3 partition but i cannot mount the ext3.it says this:

    tune2fs: Device or resource busy while trying to create journal file.

  140. popo007 says:

    hello sir, I have a problem booting to bootloader. my power and volume rocker keys are busted, I tried adb reboot bootloader and using an app quikboot but it doesnt work, is there any other way to get in the bootloader. thanks

    • poseidon says:

      hm none that i know of, sorry. the problem with adb reboot bootloader is (iirc) that it reboots to an obscure fastboot bootloader, wich doesn’t have fastboot.. you could join the irc channel i mentioned at the top, someone might know the answer there.

  141. Juan says:

    Thanks for this superb tutorial. I’m having troubles trying to have 3G, in the Baseband selection only the 2100/900 (default) EMEA, APAC set works, if I choose anything else (any 2100/1900/850 set) after reboot I have no radio at all (as in emergency only), no GSM / EDGE / 3G. I tried with Venezuela Movistar and Movilnet (using Movistar and Movilnet Venezuelan sim cards in Venezuela) and with Movistar and Claro in Argentina (using Movistar and Claro Argentinean sim cards in Argentina) and rebooting after each change (I travel between the two countries and I have several sim cards). All the companies I mentioned use 1900 or 850. Should I apply another patch? I installed cm-7.2.0-RC0a and later cm-7.2.0-RC1 but nothing changed.

    • poseidon says:

      does the problem persist with all your sim cards? did you install the bpsw and devtree updates? if not, you can try to, and you can even try to reinstall the cm update zip after those two. Don’t forget to clean cache and dalvik cache after installing.

      • Juan says:

        Thanks for quick response. Yes, it persists with all the sims, all the operators use the 1900/850 bands, I tried everything and nothing changes.

        I bought this phone from Amazon and it came with a 2.1 EMEA firmware, it seems as if no matter what firmware I flash the 1900/850 bands are missing and only the 2100/900 baseband works (2G only).

        If I flash a 2.1 or 2.2 Telus or Movistar or Personal (LATAM operators) firmware designed for 1900/850 operators I only get no radio / emergency only, just after upgrading to CM7 and changing to 2100/900 works with 2G only.

        I don’t know if it is a hardware issue or if something at a lower level of the operating system is disabled / missing / fixed at 2100/900 and is not being changed by the different firmwares flashes.

        Is there something not being overwrited by the firmwares? is it possible to get it and flash it?

        • poseidon says:

          I don’t know anything else but what i already said – flashing BPSW/Devtree, clearing everything (data clearing might also help), reflashing cm. sorry i can’t help more.

          • Fer Troya says:

            Hola Juan, I’m from Argentina too. My carrier is Telecom Personal and I was having the same problem you have.

            In my case I hadn’t manually changed the baseband in “Settings->Device Settings->Baseband selection”, probably you missed that too.


  142. Unrat says:

    First of all:
    Thank you for this great “how-to”. With it CM works fine on my Milestone.
    Now to my problem:
    i flashed CM because i wanted the option to use Call-record on my Milestone.
    Before, it wasend even able to record the call´s so, i had files with 0 Bytes.

    Now with CM it records file´s and has bytes, but when i want to hear it, theres just silence. Is there any Solutions? Ideas? Work arounds? Thanks for any answers!

    • poseidon says:

      i heard that you have to start the recording after the connection has been established, it doesn’t work when you start the recording earlier.

  143. Marcelo says:

    Little question, when Im Update to the latest version, did I have to reinstal all aps from market, reconfigure the mail acconunt and all other personal settings?
    Or the update keep al personal configuration?
    Thanks in advance!

    • poseidon says:

      you don’t have to reinstall anything when you update. Be sure to wipe cache and dalvik-cache when you update, they don’t contain any important user-data, but there might be problems if you don’t wipe them.

  144. Horst says:

    Thank you for the excellent installation description and work you have invested!

  145. Trevmo says:

    Hey poseidon

    This blog and your follow up posts are awesome.

    I am having a problem that booking into OR for the second time is not working. No matter how many times I press camera and volume up I get no response and the phone sits at the triangle. When I let the phone boot the volume buttons do work.

    Do you have any advice that may help me?

    Thanks so much!

    • Trevmo says:

      It just takes a lot of pressing and patience! Got there in the end!

      • poseidon says:

        yeah, it’s easy once you know how to do it, simply pressing the two buttons isn’t enough, you need the right timing :)

  146. Jay says:

    Does a 64gb card work with the above instructions?

    • poseidon says:

      I don’t know and i can’t try… I don’t even know whether the a 64gb card will work in a Milestone at all…
      If you try it, please report back if it worked :)

  147. Pingback: Link2SD sul Milestone che non funziona - Pagina 2 - Forum Android Italiano

  148. faisal says:

    hi there
    just wanted to say Thank you :)

  149. Syed says:

    Hi poseidon,

    Great post and happy to know that you follow up with reply to comments. I am about to flash my milestone from stock 2.2 (UAE version) to CM7. A quick question, could you please indicate average time required to do this, to complete all steps.

    Thanks, cheers

    • poseidon says:

      hm hard to say, there are not many steps that take longer than a few minutes (copying from/to the sd card and backup/restore). If I’d do it from start to end I don’t think it would take longer than an hour, 90 minutes at most. I think you should have a running CM in 2-3 hours. It’ll then take a while to setup your homescreen again, entering wifi data and other settings etc etc. A Sunday afternoon will be more than enough in any case :)

      • Syed says:

        Thanks mate, I started the process its taking long time to backup from OR as in step 5. BTW my phone is still connected to my pc via usb cable should i disconnect is it something which is standing in the way of backup….?

        • poseidon says:

          I heard a few reports of hanging backups, most of the time this seems to be related to the SD card. Try aborting the backup (pull the battery if necessary), copy everything off the card (including hidden files and folders!), format the card (best done directly in Android) and copy only the OR stuff back, not more than you absolutely need. IIRC formatting the card will preserve the ext partition, but you can easily check by firing up parted once more.

  150. Syed says:

    Do I need to repeat step 2?

    • poseidon says:

      Not if you removed the install-recovery.sh file (if it existed).

      • Syed says:

        Thanx, I formatted and it went smoothly from there on. Its really very good work the cm7 is much better than the stock 2.2, actually there is no comparision.

        Thank you very much again.

  151. Jurek says:

    Marvelous job :-)
    Thanks very, very much. My old Motorola after installing Froyo 2.2 firmware update was unbearably slow. I was thinking of throwing it away. Now the same phone runs so fluently I can hardly believe.
    If you are hesitating on applying this mod – do not hesitate even a single minute!!! You will have a completely new phone and you will like it as you did before.
    Again – thank you very much guys for such a great job. It made me smile :-D

  152. Pingback: Da froyo 2.2.1 a cyanogemod 7.2.0 rc1 con partizione sd in ext3 - Forum Android Italiano

  153. notafish says:

    Thanks. My first everything (rooting, modding, etc.) on a phone and this went flawlessly thanks to your detailled and pedagogic approach. Phone runs smoothly and I’m loving it!

  154. Vighnesh says:

    It gives me error when I apply sdcard:update.zip in Android system recovery(2e) like-
    E:Signature verification failed
    Installation aborted.

    I put update.zip in sdcard n also in OpenRecovery/Updates

    Plz Suggest me some Answer.

    • poseidon says:

      please read the instructions carefully. that error means that you have the fixed recovery, without the signature checking bug.
      that means that you have to restart from step 1, and don’t forget that you have to boot directly to the recovery after flashing, if you boot to android only once, the install-recovery.sh script will flash the fixed recovery again.
      the openrecovery update zip has to go to the sd card root, the cm update.zip has to go to the OpenRecovery/updates folder.

  155. swamy says:

    hi, i am using milestone xt 800. can i update my phone? please help me.

    • poseidon says:

      i wish anyone was able to use the search function of a browser. if you search for “800″ on this page, you’ll see i already answered this question twice in the comments. to save you one second – no you can’t.

  156. hla htun says:

    hi .. pls kindly help me. i had done something wrong while i was rooting and upgrading the ROM.now my ph (milestoe XT720) was totally can’t boot up. while i try hard reset, there was warning shown “E:Cant’open /cache/recovery/command” in yellow color font at below. so, when i do “reboot system now”, it didn’t boot up, still stuck at home screen. then i found ‘apply sd card:update.zip’, then i do it but it shown Motorola file system verification failed. pls help how to get back my phone on.

    • poseidon says:

      sorry i can’t help you, the milestone xt 720 is an entirely different phone. You should be able to recover by flashing an sbf though, but i don’t know where to get sbf files for the xt 720. google is your friend.

  157. Syed says:

    Hi Poseidon,

    I have been enjoying the CM7 on my milestone. I would highly recommend all who are in doubt to go ahead and install this ROM.

    I wonder if there is similar stuff for Samsung Galaxy SL (i.e.,i9003) and Galaxy Tab (p1000).


  158. oculus says:

    Thank You for your instruction on how to install cyanogen mod on a motorola milestone! Now it is also running on my phone and it runs great!

  159. Vivian says:

    Hey, I am back,

    I got a problem, I am trying to upgrade to CM-7.2 but i am running into this problem

    I have the motorola droid and downloaded the stable version of cm-7.2.0-sholes and saved it on sdcard in the folder sd/openrecovery/update

    I follow all the steps outlined here

    wiped cacha, dalvik and data.
    then i apply update, choose the zip above and the installation of cm 7.2 started and completed sucessfully.
    After i reboot the system it appear a black screen.
    Err: A5, 69, 35, 00, 23

    Battery ok
    Ok to Program
    Transfer Mode USB

    this keeps happenening, good thing i backup with nandroid to revert, but would you what is causing this, i would really like to upgrade


  160. Romas says:

    Same issue with error:
    Err: A5, 69, 35, 00, 23

    Battery ok
    Ok to Program
    Transfer Mode USB

    After some googling found this ROM update-cm-7.2.0-RC1-umts_sholes-KANG-signed which is working with no error. Poseidon, can you compare ROM above with usual ROM? Maybe this would help resolve this error…

  161. Charly says:

    I installed the ROM as follows from Froyomod:

    3 wipes
    Restore retail froyo nandroid
    3 wipes
    update CMOD
    update Gapps
    3 wipes

    Now, in the first boots, (touch the droid to start) I get the camera focus sound and the phone hangs or reboot. after 2 reboots I get access to launcher but with random FC and reboots.
    when i Cant access to the launcher, usually the SD preparing icon is on.

    What I did wrong?

    • poseidon says:

      you could try to install retail froyo from SBF, then install the vulnerable recovery, wipe everything and install cm and gapps. the symptoms you are experiencing are usually caused by not wiping, but if you did that…. if it boots fine after installing froyo from the SBF, it should also work on CM. You might also want to check the SD card for errors, you probably install a broken CM update.zip over and over again because of filesystem errors on the SD.

  162. bleh says:

    I have a friend with a Milestone, and it does look like just the pictures, but it’s CDMA, yet not on Verizon Wireless (Illinois Valley Cellular is his carrier, they are strictly a 800Mhz CDMA2000 network).
    Does anyone think he shouldn’t try this out since the CM7 files say sholes-umts? I have a feeling it won’t matter since the radio drivers and scripts should be the same, but I asked since CDMA and GSM android phones do have some differences, and I don’t want him to end up with a brick (well, a two year old brick). I am pretty sure it is a Milestone, but the sholes-umts on the CM 7.2.0 release kinda scares me off.

    • poseidon says:

      Afaik there’s no cdma milestone, I’m pretty sure your friend has a re-branded droid (yes it looks exactly the same). And no, this won’t work on a droid. But feel free to try if you’re comfortable with flashing an sbf, you cannot severly brick a milestone/droid by installing an update, you can always recover by flashing the right sbf. (but don’t ask mit to find the right sbf for you, i’m don’t know much about the droid)

      • bleh says:

        thanks for the quick response. What’s weird about that is it was sold to him as a Milestone, I clearly remember that. I’ve taken the back cover off and looked all over and there was absolutely no place for a sim card, lol. I’m guessing the company just sold it as a Milestone to avoid the Droid trademark licensing issue with Lucasfilm.
        So because it’s a droid, does that mean the bootloader is unlocked? I can’t find too much information on these things anymore, as they’re so old and still only run 2.2 lol.

  163. Thomas says:

    I am getting problems in the Step 4 of the tutorial.
    When I try to create a new partition the parted stops working and the process get stuck and never reaches 100%.
    This is what appears on the screen:
    “writing per-group metadata… 23% (time left 01:37)”

    Everytime I try to create it happens, it stuck in random %.

    Does anyone know what I could do?

    • poseidon says:

      Experience has shown that most of those errors can be fixed by copying everything off the SD card, formatting it (best from inside Android) and then trying again. The reason may be filesystem errors in the FAT partition, or even a broken SD card..

      • Thomas says:

        Well, I did what you said and didn’t work too. I think that the problem is my SD card.
        Thank you for your attention.

  164. Arindom says:

    i have updated my milestone from Eclair (which it came with) to CM6 and then on to CM 7. the update worked fine for the last 3 months but now i have problems with it:
    1. the back button stopped working all of a sudden 4 days ago and i see that the touch screen area above it is not responding as well. the area is a rectangle of length top to bottom of screen and width of the back button below it.
    2. the phone switches screens by itself, launches apps on/off by itself, starts/stops services, switches the leds on/off and other such acts. trying to close apps results in other apps opening in its place!
    3. whenever i connect the phone to my car audio system via aux cable, the phone plays random tracks and i m not able to close the music player; the only way to close it is to disconnect it from the car system.
    4. youtube videos load and start playing but halfway through the music player cuts in by itself and starts playing.
    5. the screen does not respond properly to inputs, sometimes responds and sometimes not at all. even unlocking the screen is an issue! it locks and unlocks by itself and carrying it around is now a big problem.
    6. if i try to go to another panel, it will get stuck halfway through or not change. trying to launch an app has become quite tricky as i do not know what might actually load.
    the phone starts up normally. i can hear the camera lens “scrit” and adjust. but after that it is altogether different behavior. the phone has been showing problem no. 2 for a while. i did not pay much heed to it then. the back button stopped working and as a workaround to it, i downloaded button savior from the market and it works fine.
    i have downloaded the latest versions of CM 7 and have applied the updates. so far, nothing seems to have fixed the problem. as i am writing this, i have just updated to 7.2.0 and still nothing!
    my phone details are:
    android ver: 2.3.7
    baseband: 3gsmepu91a_u_91.09.04i
    kernel: wfp018@zbr05lnxdroid03#1
    processor: armv7 proc rev 3 (v71)
    CM version: cm 7.2.0-umts sholes
    can you please explain to me what is going on? and tell me how to go about fixing it?

    • poseidon says:

      The issue with the softbuttons and the screen sounds like a broken touchscreen digitizer, a part that is known for breaking on the Milestone. Buy a new one here and exchange it yourself, just google for a tutorial.

  165. massna says:

    hi i had cm7.1 formerly but during the upgrade to cm 7.2 unfortunately cant install cm7.1 neither cm7.2. i followed your instruction but i cant enter to OR and wipe….(i jumped step 4 ) after reboot the phone and the page named android system recovery(the page before running vulnerable) appears ,i have done it several times and also used androidiani OR but the same problem occured
    some useful info about my phone:2.2.1 uk official rom/90.78 bootloader version
    thank you so so much

    • poseidon says:

      You might want to read the instructions really carefully, to enter a custom recovery from the stock recovery you have to apply the recovery update.zip (each time you want to enter it). if you then get a signature verification error you have to re-flash the vulnerable recovery sbf. And please don’t use androidiani OR – I’ve had so many people complain about issues with that..

  166. massna says:

    finally done!thanks very much you are fantastic thank u for your attention

  167. massna says:

    just another question :in cm7.1 there was an option in phone options(pressing power button) to restart directly to the OR but in cm7.2 its deleted i ask this because my google aps doesent install despite of installing them with rom
    thank you again

    • poseidon says:

      I’m on 7.2.0 and the option is still there.. Probably you deactivated it accidentally? but don’t ask me where to do that..

  168. Murilo Andrade says:

    Thank you! This tutorial helped me a lot! I was trying to update my milestone but all the posts I have seen before failed… All of them install the “Telus image” to use the bug on recovery but it didn’t work on my milestone… Your method is pretty simple and, the most important, works perfectly! :)

  169. dan says:

    Great tutorial. Is there an equivalently good CM tutorial for Milestone2 somewhere on the web?

    • poseidon says:

      I don’t know any :)

      • dan says:

        ah well, I’ll go with the bare bones info that’s out there. After practicing your tutorial on a milestone1 how hard can it be?

        I had a bit of trouble with the milestone1 and thought it might be useful to let others know the workarounds employed.
        1) resizing FAT32 partition failed, error was “FATs are not equivalent” or something like that. I went into Android and formatted the SD card then back to OR and resizing was ok.
        2) could not create ext2 partition from parted. Tried this many many times and it usually halted at 1%, sometimes at 2%, once at 11%. Instead I used Hiren’s Boot CD to run a partition wizard in MiniXP, connected in USB Mass Storage mode and it had no trouble creating the ext3 partition.
        3) in CM7, soon after restoring backup settings from Titanium, I got com.android.phone crashes every 5 seconds. Switched to airplane mode and (after many failed attempts to cure the problem) went back to OR and performed a factory reset. No crashes since.

        Milestone is now 1000% better than it was yesterday. Many thanks for your excellent guide.

  170. Darling says:

    dear friends, i have the self problem mi bootloader is 90.78 and my telephone is a milestone a853, i did have android ver 2.1, i did try to put other ROM,

    this is my problem

    Battery OK
    OK to Program
    Connect USB
    Data cable

    how repair????

    • poseidon says:

      Please provide more details – what rom did you flash, and how? What you see is the bootloader telling you it can’t find a suitable linux kernel to boot (i.e. you probably installed an unsigned boot partition).

  171. Fiddl3r says:

    Cannot flash vulnerable recovery.
    Screen says:

    Critical Error:


    • poseidon says:

      Is this a Motorola Milestone? This guide won’t work on other phones, including Milestone XT720, XT800, Milestone 2, Milestone 3 etc.

      • Fiddl3r says:

        Yes. Its a cellular south motorola milestone A854.

        • poseidon says:

          the a854 is actually a rebranded droid for sale on cdma networks other than vzw. you can go ahead visit the official cyanogenmod webpage and install the official mod, this guide only applies to gsm milestones (a853).

  172. Alejandro says:

    Hi, I’m from Argentina, so I’m sorry for my bad english.
    DUDE!!! You did an awesome work on this guide, I just installed cyano on a milestone wich has 2.1 I guess, form the telephonic company, It work very well. Thanks!!!

  173. alexkingnz says:

    CM 7.2.0 was working great on my milestone for about 8 hours, but now the phone radio is not working. I suspect the radio selection feature (Device Settings/Baseband Selection) is not working right. I have it set to 2100/1900/850 New Zealand (retail). I get “emergency calls only”. In network operators, I get just one entry (2degrees), regardless of which Baseband Selection is selected. In my other phone (backflip), and in original firmware, I get 5 entries. I suspect the “2degrees” is a 2100 3g signal.

    Tried so far:

    Switching Baseband Selection to other values and back (rebooting each time).

    Flash back to original firmware, the phone works fine (so not a hardware bug,) but back to CM7 and straight in to emergency calls only. I’ve tried wiping data partition (factory reset) to no avail.

    Tried 2x Sims (from the same provider). These work in my other phone (and in the milestone on original firmware).

    Additional info:

    The phone was initially registering on the network and sending and receiving calls after the CM7 upgrade. The problem started when I tried to set up the correct APN to get data. Data works on stock firmware.

    On the backflip, Network Operators search gives:

    Telecom NZ (most likely 850 3g)
    NZ Communications New Zealand (most likely 900 2g)
    Vodafone New Zealand (most likely 900)
    NZ Communications New Zealand (most likely 2100 3g)

    I think only the 2100 signal is being picked up by the phone. It seems neither 850 nor 900 is working, 2g or 3g, regardless of which Baseband is selected.

    How can I debug this?

    Thanks for the great work.

    • poseidon says:

      did you wipe both caches as well? how did you restore the official firmware? which version did you restore? did you apply the devtree and baseband updates when installing cm for the second time?

      • Alex King says:

        Yes. Wiped both caches as well each time between swapping firmware.

        The phone was 2nd hand, the “official firmware” was what came with it, I did factory reset, delete all data and caches and saved it using nandroid/backup all, as in the guide. When I went back to it, I wiped data/caches from OR and restored everything IIRC. Worked fine.

        Then I went back to CM7 again using nandorid/restore all again, selecting the CM7 backup I made. After this and the phone still wasn’t working, I loaded the devtree and baseband updates; I wasn’t sure if they would have reverted or not. This didn’t fix it either.

        Next I’m going to try starting at step 6 again, applying the devtree and baseband updates, wiping all cache and data again and loading CM7 from update.zip.

        I really want to know how to find out how to debug what the radio is doing though…. eg. what frequencies are being used when it picks up a signal, and how to know from the phone which radio file it is using (besides looking at what I told it to use in Device Settings).

        I found an interesting page through Custom Shortcut, called “Phone info” (aka Phone Info(.RadioInfo)) which shows lots of info including signal strength, but no band info.

        • poseidon says:

          Let me know if reinstalling fixes the problem. About debugging – i honestly don’t know. you can join #milestone-modding on freenode and ask nadlabak, I’m sure he’ll be able to help you with this.

          • Alex King says:

            No luck, reinstalling didn’t work either.

            Now I’m back to stock 2.1 firmware and customising, I’ll probably have another go at CM when I get more time.

            Thanks for the help.

  174. Pingback: Blog von Ronny Chilinski

  175. Vitor says:

    Hello! Nice tutorial, but my A853 doesnt enter on the OR Menu.
    The /!\ appears but I try press a lot of times and combinations like VolUp+Cam, VolUp+X, VolUp+VolDown, X+Cam and nothing work.

    My bootload is 90.78, and I’m repeating ur steps perfectly. Please, help me and sorry my bad english, i’m brazilian.

    • poseidon says:

      some people find the vol-up + cam combination a bit hard – but i never heard of a milestone where it doesn’t work. i think the easiest way is the following: once you see the /!\ sign do the following:

      • press and hold vol-up
      • press and release cam
      • release vol-up
  176. anup says:


    milestone A853(india)
    androidini open recovery 3.3
    my device stuck at the boot when i install cm-7.2.0-sholes or any other mod on my milestone a853 , i have done this before many times , which worked like a charm .
    but a few days back i lost all my root-needed files (sbf, rds lite, drivers, open recovery 3.3)in computer crash .i think the error is with .sbf file , i have tried many sbf files .
    even when i apply update of cm-7.2.0-sholes it shows update complete , but then my cell stuck at boot .help me out , can u give me the link for proper sbf file for my device

    • poseidon says:

      all the files you need are linked in this post, together with a nice description how to use them. please don’t use the androidiani OR, i’ve heard nothing but complaints about it. Plain OR with a few fixes from nadlabak is the best thing to use (yes, it’s also linked in this post).

  177. Rohit Kaundal says:

    Hi Rohit Kaundal from India . I’ve have a Motorola Milestone 1. I got it updated to android 2.2 from the service center last year it was working fine. But from last two months this fone is acting weird. Whenever I’m on call with some one and the other person disconnects the call, My fone goes blank. I have to take out the battery and restart it. It has some hanging problems as well. This has become a big problem for me. I tired updating the software with “Motorola Software Update” suite ( Downloaded from Motorola’s website). It shows that the software update is complete but when i restart the fone I don’t see any changes. As per my understanding when you update the software it removes all the applications, contacts and messages from the fone. But it didn’t happen in my case. Plz help me.. & sorry for the long story ;)

    • poseidon says:

      there are two types of updates, some delete everything, some don’t. in your case moto tries to be nice and retain your data, which is not what you want, because your data seems to be buggy somewhere. you can simply factory reset the phone from the android settings menu (under privacy). you’ll lose everything on the phone, but it will be as good as new.

      I’ll recommend following this guide though, you’ll get android 2.3 and much more functionality, additionally to a working phone ;)

  178. Bruno says:

    First of all, amazing guide and clarity, i’ve successfully installed CM7 and am quite happy with the performance results.
    My only problem is that i cannot connect to 3g; i have made sure my baseband settings are correct and the network operator is correct also…
    In the past i always had this problem because my milestone was locked to TELUS and i unlocked it to run on FIDO. when i did that, all apn settings were reset so my MMS didnt work anymore. I had downloaded a miracle application called tweakker and it had automatically changed my apn settings for all data to work properly.
    Now i cannot see any 3g connection anymore…

    • Bruno says:

      and the application is not working anymore either

      • poseidon says:

        You need to edit your APN settings manually: Go to Settings -> Wireless & Networks -> Mobile Networks -> Access Point Names, delete all APNs that you currently have and recreate them with your operator’s settings. You normally have two APNs, one for web, one for mms – a quick google search turned this up: http://forums.fido.ca/t5/forums/forumtopicpage/board-id/Smartphones/thread-id/768 – the third post by FidoJonathan should have all the information you need.

        • Bruno says:

          Before i even tried tweakker i had tried these settings and they didnt work. Since i have completely changed the rom i wanted to give it another shot but as soon as i go into APN settings and try to create a new one(because there were none in there already) the device just doesnt do anything! i have in the past been able to create APN’s but for some reason when i click new apn it doesnt let me create one!

          • poseidon says:

            seems you have some faulty data related to the APN, propbably caused by trying those applications. It’s always better to edit such things directly, not through helper applications, they might screw things up.

            You might have to factory reset again to get the APNs work again, but first try a cache+dalvik cache clear, that might be sufficient.

  179. Estebs says:

    First, I want to thank you a lot for this guide. I am tech-savvy but was reluctant to mess with my phone… this went smoothly for the most part.
    One note that perhaps is worth of clarifying in the text is that the red flashing led light when doing the backup or formatting the SD does not mean the battery is about to die. It freaked me out and so I forced a shutdown, losing all data in my SD, when it had a lot of charge on it.
    One thing I don’t really like about CM7.2 is the very, very intensive battery drain! It is lasting half than before (about 8 hours on a full charge!). Can you point me to some useful tips to preserve battery life? I tried setting down idle processor speed, screen brightness to the minimum; and yet using the 3G connection for a few minutes makes it drop by 5-10% :(

    • poseidon says:

      Strange, i get idle times of several days, and at least 20 hours with moderate usage. I must say i already have the second battery though (bought about a year ago). Check the settings what’s causing the massive battery drain…

  180. Conrad S says:

    Interesting article….
    I went from the original ROM to the Cincinnati version, then to CyanogenMod 6.3.0 RC3. The camera on the milestone is amazing, and is 8MP-wide on the original and Cincinnati ROMs. However, on 6.3.0, it is only 8MP. Pictures taken are not the entire length of the screen, in landscape mode. The wide option is not there. Is this the same with CyanogenMod 7?

  181. bertieblighnout says:

    Just installed kabaldan’s CM7.2.1, available at https://github.com/nadlabak… also had some battery drain with the previous version, but I think I still have the original battery, which is probably about 2 years old. No changelog available yet from 7.2.0 to 7.2.1, lets see how she runs!

  182. bertieblighnout says:

    … first impression is that ram usage is much improved…

  183. mce says:

    love this tutorial!

  184. Marc says:

    Great tutorial. It’s like a having a new phone. Thanks poseidon

  185. Art says:

    Man, I followed your instructions, word by word, and it worked to perfection. Thank you so much for posting them.


  186. Alex says:

    sorry I have a little problem …in step 6 when I try to install update.zip it says: failed to verify whole-file signature …installation aborted …what should I do ?

    • poseidon says:

      you don’t have the vulnerable recovery. please start over and read very carefully, especially the thing with “reboot right into recovery after flashing, DO NOT reboot into android after flashing”.

  187. ck ng says:

    model: SD SU08G (sd/mmc)
    disk /dev/block/mmcblk0: 7948MB
    sector size (logical/physical): 512B/512B
    partition table: msdos

    number start end size type file system flags
    1 512B 6945MB 6945MB primary fat32 boot
    (parted) mkpartfs primary ext2 6945MB 7948MB
    writing per-group metadata… 23%(time left 00:29)

    and then it gets stuck there, and i have tried multiple times and it always ends up like that even waited half an hour with no progress

  188. robert says:

    Thanks for this wonderful tutorial. The only one amongst many, many, which really worked in my case. Excellent.

  189. Francisco Amestoy says:

    Looking at the huge amount of comments I find kinda difficult for you to answer me ^^ but would be great.
    I completed every single step to the end, and achieved a successful result, however the pone owner came very mad at me with his phone booted in Open Recovery, saying that every time he turns on the phone it goes like that. Is that possible? Would be great if you can tell me how to fix it.

    • poseidon says:

      It is possible, that the phone auto-boots into recovery, otherwise the “reboot to recovery” option of CM wouldn’t work. this should only be temporary, however, how are you rebooting from recovery? have you tried with the reboot menu option? it should boot android then, i guess. if not, i’d try reflashing CM and see if that helps.

  190. Luke says:

    Great tutorial, Poseidon. I have a few questions before I imbark on attempting Step 4.

    Here’s my situation – I already rooted my Canada Telus Milestone and upgraded it to CyanogenMod using the instructions from Daniel A’s blog with no problems. Works like a charm. Makes me wonder why I stuck it out with 2.2 for so long, when CyanogenMod is soooo much better.

    Then I come across your tutorial here and am now considering doing Step 4. Could you please confirm if this is safe to do, after I’ve already rooted and installed CyanogenMod? Or do I have to start all over again and redo all the steps?

    The reason I’m thinking about doing Step 4 is because I’m assuming and hoping it will fix my issue of constantly running up against the low memory/disk space notification msg I get on my Milestone whenever I have less than 10% free of my 197 MB of usable memory (which then stopstext msgs, downloading other app updates, etc). Is this what Step 4 fixes? Or does it fix a different disk space/memory issue?

    Now, assuming the answer is yes to both of those questions, here’s my next questions -I already tried to run through the commands in Step 4 but they failed. I suspect it’s because I’m missing all the “executables” or whatever they are called in my OR install. Based on Daniel A’s posting, I downloaded my OR from http://code.google.com/p/androidiani-openrecovery/downloads/list and it looks quite different from your install. Can I just replace my OR with yours? Or can I consolidate both versions? Or is there a download install zip with just the commands/executables that I need for Step 4? I’m hoping there is a way so I can do Step 4.

    And lastly, does doing Step 4 impact the performance of apps, the phone in general? I have a Class 10 32 GB SDcard installed so I’m hoping it wil be fast enough. Or will it take longer to launch apps because they’re on the SDcard now?

    Thanks for listening to my ramblings. I just want to make sure it’s ‘safe’ and worthwhile for me to do Step 4 before I try.

    Again, thank you for posting this great tutorial and thank you for helping me and all the others here. I look forward to your reply. :)

    • poseidon says:
      • yes, you can simply do step 4. because you already have the vulnerable recovery, steps 1 and 2 are not needed, and i guess you know how to boot into it (step 3).
      • yes, it will fix the out of memory problem. There will still be something on the internal memory, but only the application data, not the application itself, which is much less. the app itself resides on sd-ext then.
      • you need to completely remove your OR (delete both the update.zip and the OpenRecovery folder from your sd card) and download the one i linked here.
      • performance will not be impacted, at least not on my phone, and i have the 8gb class 6 (i think) sd card that came with the phone.

      I suggest to update to the latest cm7 before you partition your sd card.

      • Luke says:

        Excellent! Thank you for getting back to me so quickly with all the info.

        Thanks to your instructions in Step 8, I already upgraded from 7.1.5 KANG to 7.2.2 a couple of days ago. I was fearful of doing it before because I thought I’d lose all my apps and data. But with your instructions, wow! So easy. CyanogenMod has impressed me again with how clean and low risk it actually is. The only gotcha for me was I had to run the Change Baseband step again after the 7.2.2 upgrade. After that, everyhing was exactly the way it was before, plus 7.2.2 fixed my Bluetooth issue.

        Back to Step 4, I thought of a couple more questions to ask before I try it.
        - If I have existing data on my SDcard, will I lose any of it when I do Step 4? ie. Should I be doing this on a clean SDcard and then restore all my data later?

        - Is this a one shot kind of thing? What if I find out later that I made the new ext3 partition too small, or too big for that matter? Change I readjust the size later? For that matter, what do you recommend for size? I have a 32 GB card right now with about 16 GB free so I’m leaning towards 4 GB, possibly up to 8 GB. Too much? Not enough?

        - I was also thinking about running through Step 4 using another test SDcard that I have. Is it safe to do that and then if it works, I go through the same steps with my 32 GB card? Or will that cause problems? Once I go through Step 4, will I be able to use the phone with a different SDcard that doesn’t have the ext3 partition on it? Or use the phone without an SDcard completely? I assume all my apps that have been installed on this extended memory will be missing or will they just have “broken” shortcuts and fail?

        Again, thanks for all your help, poseidon. Keep up the good work. I know it’s very appreciated by me and from the postings, a lot of other people too. :)

        • Luke says:

          Oops, sorry – one last question

          - Once I go through Step 4, is there a way to back out/revert back if I don’t like it, or it doesn’t work, etc?

          • Luke says:

            PS – Is there any way to tell how much space all the apps I have installed is using (internal memory on the phone and on the SDcard)? That would certainly help with my decision on how big to make the ext3 partition.

          • poseidon says:

            Hm none that i know of. apps are stored in the .android folder on the SD card, you can see how large that one is. internal memory is 192 mb, so just add that.

          • poseidon says:

            I’m not sure how, but i am sure it’s possible to revert somehow. but you might have to factory reset to do so.

          • Luke says:

            Woo hoo! Finally got the guts to do it this weekend, after getting more frustrated by the lack of free space. I used GB, instead of MB, in your commands and they handled the change with no problems. My space jumped from 20MB free up to 160MB. Amazing! Thank you thank you! I now have a usable phone again.

            PS – I decided on adding 4 GB of extra space. There has been no negative impact to performance; in fact, I’d like to think my phone is faster now but I think that’s because I upgraded my CM at the same time.

  191. Lisa says:

    I am having trouble getting the sbf_flash to work and I am wondering what I am doing wrong.
    I have a mac, so I followed the steps in section 2B. I rebooted my phone into Bootloader mode then I plugged my phone in and followed the directions in terminal.
    After typing in the command
    ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
    I held down the camera button and sbf_flash started to run. However, it stops at “waiting for phone” and then nothing else happens. I waited for a while, but I am pretty sure something is going wrong here. Would anyone know what my problem is?

    • poseidon says:

      What does it say on your display?

      • Lisa says:

        On my phone? It had the same menu that was there when I first loaded it into the bootloader mode.

        • Simon Hania says:

          I have exactly the same issue on iMac with OS X 10.8.2.
          Using RSDLite on Windows7 in a WMware VM does work though: that’s how I was able to flash vulnerable recovery.

    • Arup says:

      Hey, I am facing the same problem. After i ran sbf_flash, it just stops at “waiting for phone”.

      Were you able to resolve your problem ?

  192. Cory says:

    THANK YOU SO MUCH! This has made my milestone an entirely new phone. Your instructions were comprehensive and I never had a single problem, YOU ARE MY HERO THANKS FROM CANADA!

  193. Luke says:

    Well, I started Step 4 but chickened out…for now. It detects my SD card size as 31.4 GB. When I plug in your commands, do I convert the 31.4 GB to MB (x 1024) and use those numbers or do the commands recognize GB sizes as well?

  194. Erik says:

    You rule!

    Unlike many other guides, this one is well thought-out, complete and easy to follow. I stumbled on two minor pitfalls, both easy to work around:

    1 – There might be a minor bug in bootloader 90.73. Text on screen says navigation goes via the Dpad, but I had to use volume-down to start update.zip and get into OpenRecovery.

    2 – I originally unpacked your combined ZIPfile of OpenRecovery via file-roller (standard ZIP application under Ubuntu). Bad idea; by default it did NOT recreate the directory structure from the ZIP file. Took me a few minutes to figure out why OpenRecovery started but failed to show its menu :-)

    After that, my Milestone was rooted without a hitch. You deserve a big Thank You.

    P.S. I couldn’t find a ‘Donations’ button on this page. Does that count as a bug? :-)

    • poseidon says:

      @1: afaik there’s no navigation in bootloader, only in recovery. in stock recovery you have to use the dpad, in OR the volume keys are used.
      @2: well a zip app that doesn’t take the directory structure into account by default is just not a good zip app :)

      @P.S.: fixed :)

  195. Rafael Roland says:


  196. David says:


    I hope to install CM7 in the next week or so, but I have a question.

    On https://github.com/nadlabak/android/downloads, I see that the last few packages are called, e.g., cm-7.2.4.-umts_sholes.zip, whereas all the previous ones start with “update-”. Is there a difference between these packages, or is it simply that the naming convention changed recently? I imagine there isn’t (other than the recent ones being more up-to-date), but I don’t want to take any chances.

    Great set of instructions! Thanks for creating this!

  197. rezendevous says:

    Possible silly question here,

    But for the partitioning step within console, I can’t seem to type numerical digits for any of the commands/arguments.

    Is there something wrong with my milestone’s keyboard?


  198. rbdev says:

    Hi poseidon,

    I already create an ext3 partition few mount ago,
    If I want more spaces, It possible to resize the ext3 partition ?
    If Yes how con I do it ?


    • poseidon says:

      first resize the first (fat) partition to leave free space between the two partitions. then move the ext partition to the front, so that the free space is at the end of the sd card. finally resize the ext partition to fill up the free space. check http://linux.die.net/man/8/parted for details on the commands.

  199. Syed says:

    Hi Poseidon,

    Great Work.

    Im currently on CM 7.2.4 (2.3.7), custom kernel but the open recovery is old one which was installed when i rooted first.

    My question:
    Is it must to install 2nd boot recovery or shall i continue with the OR i already have. Will it give some advantage?

    Can I directly install 2nd boot recovery if required or is there any specific things i need to be careful of?

    Thanks and keep up the good work.

    • poseidon says:

      2ndboot recovery is recommended – it has a few advantages like charging in recovery, better compatibility with various sd cards and also offers a few new features. I suggest a clean installation for every OR upgrade, i.e. delete the update.zip and the OpenRecovery directory before unzipping 2ndboot recovery.

      • Syed says:

        Thanks Poseidon. I was wondering how to install CM10 is it the same as above or you have any other blog posted for installing cm10 for those who have CM7.

  200. Kaio says:

    Hello, Poseidon.

    So …
    Actually, I have on my Milestone 1 to CM7 ROM (7.2.0-RC2). I want Apps2Ext on my device, but how? I have to do all the steps explained or, only, put “update 7.2.4a” in the file “update” in “OpenRecovery 2ndboot” normally? Don’t know if you answered this question before, and sorry to ask you again, if any, but I need your orientation. Oh, I’ll have to format my sd before this process?

    [Do not note my english. I'm the guy Brazilian xD]

    • poseidon says:

      updating to the latest cm and enabling apps2ext are two different things. to update do step 8. to enable apps2ext, do step 4.

  201. Issac says:

    Thanks for the information.

    But I have a little problem. When I am doing step 3, after I selected the keyboard layout, my milestone just reboot itself! I can’t do the following. What can I do? I tried it twice.

  202. Fabio says:

    hi, when i boot into open recovery it automatically reboots the phone after a few seconds, why is this happening?

    i get the stock recovery screen:

    i apply update.zip and it goes into OP:

    and after 10 seconds or so, phone reboots.

    • Fabio says:

      *im on stock 2.2.1

      • poseidon says:

        Please try to clear the cache before starting OR (in the stock, blue recovery); that could fix your problem.

        • Fabio says:

          Thank You.
          Performance improved tremendously.

          one last question: every time i instal a cm update its like installing a new rom right? i mean y should backup my things before updating?

          • poseidon says:

            i usually make a nandroid backup before updating, but i never needed it, so updating is pretty stable if your battery is charged (and since the new 2ndboot recovery is able to charge, this is not so much of an issue anymore). I also clear cache and dalvik-cache before updating.

        • Piet says:

          I’m experiencing the same problem. How do I clear the cache? (what’s meant by; ‘in the stock, blue recovery’?)

          • poseidon says:

            look at the two screenshots posted by Fabio. The first one shows the stock recovery with blue font. There’s a menu item: clear cache partition.

        • jalsina says:

          It´s been only today I have tried to get all this to work in my phone and I got stuck in the OR part. I have the very same problem Fabio had. I guess it has to do with 2nd reboot 1.1 as this is a pretty new OR version since you started last January. I tried to clean the cache (as Fabio) with the stock -blue- Recovery (4th entry) but it did not work for me. After about 10-15 sec even while I stay idle or am changing the keyboard or already in Console writing the .sh script removal, it always reboot. I am trying to do this over the original 2.01 ROM version with which my provider sold the cell. My bootloader is 90.74 (camera button). And finally I have flashed the recovery at least six times.
          Thank you for your help.

          • jalsina says:

            Greetings Poseidon,
            Ok, I got it all working.
            Last night I was able to get a recovery screen without rebooting. I am not sure how I got into it. At first glance it seemed it had to be with not using the pad to navigate (just the vol up & down) but ptobably had to do with what I will explain below. So I went into step #4 and #5. I had some trouble with typing inside “parted” but finally I repeated the process and it worked fine, all down to conversion of partition to ext3. In #5 I got to root the phone before going to sleep.
            This morning I tried to go again into vulnerable recovery via the stock recovery, but the reboot ghost kept coming several times. No need to say that at every intent I cleaned the cache, but every time it rebooted. Finally I discovered that if during the hard reset I switched my pressing of the power button to high volume (before I got the stock recovery triangle) a new logo came into scene (an archive box). That was the door to a stable non-rebooting vulnerable recovery. So I went into downloading and installing the mod, google apps and the 2 files needed -when under Android 2.2. I guess the vulnerable recovery was accesible thanks to the rooting I did in step #5.
            I am right now with everything fine with CM7 rocking and a much faster Gingerbread (please Motorola Froyo LA programmers: learn from others).
            Nothing else to say for the moment except an OUTSTANDING THANK YOU for all the time you have dedicated this year to answer everybody comments and questions.

        • Otávio says:

          Hello; Just for information, I had the same issue, even after I clean the cache, the system restarts after some seconds using Open Recovery 2ndboot 1.1. So, I try to use the old 1.46 Open Recovery, and works…I was using recently flashed Telus 2.2.1 Rom and boot loader 90.78.

  203. Kaio says:


    after I installed the latest update, I noticed that the Market does not show updated applications. how to fix this problem?

    thank you!

    • poseidon says:

      you can try to clear the data of the google play app in the application settings.

      • Piet says:

        This isn’t working either. I cleared the cache and even tried the ‘wipe data/factory reset’ option. After i’ve rebooted in OR, the phone reboots within 10 seconds or so. Are there other options?

  204. Simon Hania says:

    In case you cannot get vulnerable recovery installed, while you are sure you are correctly following the procedure above:

    My Milestone had an Italian operator (WIND) latest 2.2.1 ROM. I could not get vulnerable recovery to “stick”: after flashing vulnerable recovery and immediately booting into recovery, the OR update.zip failed signature check consistently. Downgrading to 2.0, also WIND specific as suggested elsewhere, didn’t work either: same results.
    I downgraded to the British/generic EMEA 2.0 ROM and with that was able to successfully install vulnerable recovery and OR. The Milestone stock ROMs I used are here: http://sbf.droid-developers.org/umts_sholes/list.php

    I’m now on CM 7.2.0, as 7.2.3 and 7.2.4b are giving me to many spontaneous random reboots. But 7.2.0 in itself is a great improvement over stock 2.2.1., so I do not mind.

    • Mark says:

      Hi, many thanks for taking the time to create a guide. I am having the same problem with the reboot after getting to the OR menu. I have tried using 2.2 but also 2.0. Is there any other information I can provide to assist? Thanks in advance.

  205. dedalus says:

    First, thank you for this guide!
    I rooted the phone and installed the cyanogenmod 7 almost a year ago. What I didn’t was to create the ext partition on the sd to increase the space available for te application. I’ve done it this time. I create the partion following the steps describibed in point 4, using OpenRecovery 2ndboot 1.1.
    After that I installed the last update available for cyanogenmod (7.2.4b (2.3.7)).
    Everything is functioning besides the fact that the sd card is only readable. The application can’t write on it nor my pc with the card reader (it ask to format it).
    Any idea what can cause the problem? Thank you in advance.

  206. Matheus Sartoretto says:

    What should I do if my Device Proprerties shows this:
    Technology: N / A
    Software Version: N / A
    Flex Version: N / A
    Bootloader Version: v0x009078
    DRM Version: N / A
    AP Die ID: 1ea0010202950304000000000400
    BP Die ID: 0000000000000000000000000000
    AP Public ID: 73d026be3e30334b1da456d5afe7e88d3e399c41
    BP Public ID: 0000000000000000000000000000000000000000

  207. Artur says:

    hi, I can’t resize first partition, when i’m trying to do it, it says: Could not detect file system. http://f.cl.ly/items/0K3Y43262a0H282O3s2a/image.jpg

  208. Gabi says:

    Thanks for this great manual! Unfortunately I’m stuck at Step3: I managed to enter OR but after a few seconds the phone is rebooted! If I react fast I manage to enter OR again, try again, but it reboots again. What can I do or what did I wrong?

  209. Mike says:

    In 3point of this tutorial, when I entered OR, my phone always restarts itself. Sometimes I have time to change keyboard to qwerty but I never get to console to remove script becouse my OR keep restarting.
    Waiting for some help :)

    • Mike says:

      I cleared cache partition in orginal blue recovery, then opened OR and also cleared cache partition and dalvik-cache. After this I still getting restarts…

  210. Michal says:

    Actually I had the same issue as Luke above, meaning my card was detected by parted as 31.9GB and actually I managed to resize it that way (by typing “GB”), no errors thrown, so I guess it’s ok.
    My issue is that now I cannot install/update/uninstall apps, because the phone just hangs :-) Something had to go wrong and I’m not sure what, was it the partitioning or my update to 7.2.4b (I didn’t do a factory reset, as I forgot to backup stuff and didn’t want to interrupt the process).

  211. Terence Talbot says:

    hi Poseidon
    Thank you for the great tutorial.
    I am experiencing the same issue FABIO posted: “when i boot into open recovery it automatically reboots the phone after a few seconds,”
    I tried your suggestion: “Please try to clear the cache before starting OR” – it didn’t work. Phone continues to reboot while in OR”
    I followed your steps as indicated in the original article, and flashed the “vulnerable_recovery_only_RAMDLD90_78.sbf” and “OpenRecovery_2ndbootOR_v1_1.zip” .
    I also tried clearing another cache within OR, before it rebooted on me – the “Wipe Dalvik Cache”. But the phone just keeps rebooting.
    Any ideas you could help me with?
    Thank you,

  212. jaxi says:

    Thanks for this awesome guide.

    One question:
    I created an ext3 partition and now i want to delete my ext3 partition !
    How can i format my ext3 partition ?
    And also how i can delete that partition and have my whole space again ?

  213. Ord0 says:

    I am also getting the random crashes in OpenRecovery, I tried clearing the cache both in the original recovery app and in OpenRecovery and it did not help.
    Re-downloaded and re-applied openrecovery, still did not help.
    Any ideas?

  214. Marcelo says:

    Another question, there is already a stable version of cyano 9 for milestone.
    How to install it? just like an update (download the .zip, upload the file to the restore folder and from open recovery “apply update”)
    Thanks in advance

  215. Arup says:

    I reached step 2. and then couldn’t progress. This is what i did.

    - Booted the phone into bootloader. The version is 90.78.
    -Tried to flash by executing the command mentioned. However the process was stuck with a message “Waiting for Phone”. Please help

    Macintosh-2:cynogen einstien$ ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
    SBF FLASH 1.24 (mbm)

    === vulnerable_recovery_only_RAMDLD90_78.sbf ===
    00: RDL03 0×82000000-0x8204CFFF F125 AP
    01: CG47 0xB0EE0000-0xB12A07FF 679E AP

    >> waiting for phone: Connected.
    >> uploading RDL03: 100.0%
    — OK
    >> verifying ramloader
    — OK
    >> executing ramloader
    — OK
    >> waiting for phone:

  216. Bernardo says:

    Hi Poseidon,

    Great work!

    Befor uprading from 2.2.3, I have 3 questions:
    1- I have a 16Gb SD card, what do you recomend 14Gb by 2Gb?
    whats the data that goes to the ext3 patition, do I need a bigger ext3?

    2- This version support right to left writing (Hebrew)?

    3- This version shows Hebrew menus?

    Thank in advance
    Merry Christmas and
    Happy New Year

    • Bernardo says:

      I have run the entire manual and it works just great.
      I can tell you that I also update to cm10-20121225-NIGHTLY-umts_sholes with no noticeable bugs.
      Also I used a 16GB SD card, and in the partition manager I input the numbers in GB: resize 1 0MB 13.0GB and mkpartfs primary ext2 13.0GB 16.0GB.
      The hebrew support is excellent, in the dialer keypad you can input the hebrew name that you serch, and it finds them in the contacts. Also almost every menu is in Hebrew.

      Thanks and keep up the good work.

      • Bernardo says:

        Well, after 2 days with cm10, as you wrote, it is not ready for use yet.
        The reception suddenly disappears, some apps wont start, and there are noticeable lags when switching from one app to another.
        I downgrade to cm9.

  217. Sebastian says:

    I’m having that “Unable to satisfy all constraints on the partition” error some people mentioned. This is the output of parted print:
    Model: SD SA08G (sd/mmc)
    Disc /dev/block/mmcblk0: 7973MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number Start End Size Type File system Flags
    1 66.0kB 7973MB 7973MB primary fat32 boot, lba

  218. Sebastian says:

    Shouldn’t users be advised to use the official Android/CM Apps2SD rather than the unsupported Apps2EXT?

  219. Tim says:

    Great article thanks. Very well written!
    I have found that for your step 3 (rebooting into OR), that upon first getting into OR, it keeps rebooting. I thought, like one of the other commenters, that it was key-pressing that caused it… but eventually found that by letting it reboot, then immediately press the hot key (x), and let it boot into OR again it succeeds and no more reboots.

    Any idea why parted throws an error “Error: Could not detect file system.” when I try the resize command? I suspect it’s due to the print command not showing what file system the partition is eg when I do print it shows (I’ve added commas):
    Number, Start, End, Size, Type, File System, Flags
    1, 4194kb, 7948MB, 7944MB, primary
    No file system of flags shown… When windows shows it as FAT32

  220. Hi.
    Here my phone is in a “eternal loop”
    Moto Logo > 2ndBoot > Cm7 [skate] > Moto Logo > 2ndBoot > Cm7 [skate]…
    Sometimes its freeze one the Cm7 screen
    Can someone help me? Any idea?

  221. andrew says:

    greetings, i have encountered a problem, the phone just shuts down after I boot into OR…tried it for a couple of times, made it into console but it just powers off after a while in OR. got any ideas why this would happen ?!?

  222. I have a milestone with broken hard keys, and I already have the 2.3.3 CM7 mod installed and I want to install the 2.3.7 version. Is there a way of doing this through fast boot or something that doesn’t require me to press keys on the phone? :/

  223. Joe says:

    @ poseidon
    Yesterday I installed the CM7. Verry fine. Great thanks for instruction.
    But I`ve 2 questions.
    1) During parting the SD-card my screen in OR is like there:

    1 512B 6945MB 6945MB primary fat32 boot,lba
    2 6945MB 7950MB 1005MB primary ext2

    But without the Flag-Data “boot,lba”? What this? What can I do?

    2) Could I install the CM9 how “Update CM7-version”?

    Kind regards and Thanks for your help. Sorry for my bad english.

  224. Leo says:

    Thank you. It was almost flawless here. My only problem was that it kept rebooting while I was wiping data/cache and installing CM, before completion. I tried many times and eventually it worked.

  225. Joe says:

    @ marcelo

    I´ve founded a way for CM9.
    Nandroid-backup from CM7. Later it can be erasured.
    Download the “GParted”, with this formate the “ext3″-partition, then “boot into OR”,
    backup not forgetten, then step 6 in the instruction.
    It works good, but I tink, the milestone with CM9 is a little slowly then with CM7??
    Sorry for my bad english, speeking is better. ;~)

  226. Shrikant says:

    Hi there.

    I was looking for detailed guides to install cyanogenmod on my motorola milestone A853. currently I have the stock firmware 2.2.1 installed on my phone. I found ur guide to be the most detailed and elaborate and wanted to give it a try. I have downloaded all the needed files however after after installing the vulnerable recovery using RSDlite when I am trying to boot the phone in system recovery mode all I am getting is till the yellow exclamation mark. on the exclamation mark screen when I am trying to press the volume up key+ camera key, just nothing happens. ‘ve tried it several times and I am not able to get through it.
    plz suggest me what needs to be done as I desperately need cyanogenmod on my milestone.
    thanx in advance.

  227. dx says:

    Hi there, I hope you read these comments, because you should update the github downloads link of cm7, it’s outdated (github doesn’t allow new uploads anymore)

    The newest one is always linked from http://android.doshaska.net/cm7

  228. Tim says:

    Hi Thanks – awesome instructions and fantastic build.

    Unfortunately my GPS does not work any more. Is there anywhere I can find a fix, or anything I can do trouble shoot the problem? Not sure where the logs are.
    Thanks again

  229. Dennis Boller says:

    first of all, thanks for the how-to-it-manual. Changing to Cyanogenmod 7 really was easy. But I have a problem with audio streams:
    I cannot start audio streams from m.yourmuze.fm
    I tried the standard player and some from the market like mVideoPlayer and RockPlayerLite. Other things like youtube are working fine.

    I checked the internet. I found some entries for android 2.x that there was a problem with aac streams from a rtsp server. I don’t know what this means but … it looks like the problem was fixed for Android a couple of months ago. Is the problem still existing in cyanogemod 7 or am I to stupid?

    oh … I am using Cyanogemod “cm-7.2.4e-umts_sholes”.

  230. Hello guys,

    I have the following problem: After successfully booting in OR, a few seconds after that the device reboots and starts Android. I cannot complete the rest of the steps because it keeps rebooting and it doesn’t give the enough time. Any help would be appreciated.


  231. Miko says:

    I have the same problem like stanislav and andrew. plz help.

  232. Miko says:

    I tried to format the card now to install OR 1.46 and i can’t seem to have access to the card on windows anymore , can someone help ? I’m lost

  233. Miko says:

    ok i figured it out by myself and with help of external sd reader : ) many thanks for guide ! if your OR is quitting by itself install 1.46 !

  234. SRK says:

    Thanks for everything. Your instructions are comprehensive.
    My Milestone now has CM9.1.0d

  235. ericc says:

    Wanted to say thanks for a great guide. I took a “new old” Milestone and installed CM7 for my kid to use. The partition editing step is awesome. Thanks for going to all the trouble.

  236. Chris says:

    Great work. Just changed to CM 7 and I am excited!
    My Problem is I tried to create a ext3 and couldnt ‘unmount’ , get the message ‘bash: unmount: command not found’ besides that I could do the complete ‘process’ of installing CM7 .
    Well in the first boot of 2nd boot I had a message in yellow like ‘couldnt load command’ , so my q would be what went wrong loading the command in the first place. I used only the posted links.
    Thx in advance and again great work !

    • Bert says:

      That is to be expected. The command is not “unmount”, but “umount”, so without the ‘n’.

  237. Chris says:

    Hi, i installed the cyanogenmod version cm-7.2.2-umts_sholes with the gapps-gb-20110828-signed is this ok, i checked out a table with this information in that official gapps website.

    The PROBLEM is that when i restart the phone all the information is gone and the welcome screen cames back everytime i turn on the phone.

    Please help me, thanks

  238. Pingback: [Milestone ROM] CyanogenMod 7.2.4d (2.3.7) [27.12.2012] by Kabaldan / Nightly 28.12.2012 - Strona 435

  239. Pingback: Motorola Milestone Launching January 26 Telus | blog.spotnews.info

  240. Ali says:

    Thank you for the instructions, but I run into the same “waiting for phone” problem like Arup, above. Also on a Mac.

    Tried looking around, and it seems a few other people have the same problem. There’s an IRC discussion but it doesn’t go beyond explaining the problem:

    Any suggestions?

  241. Ali Tobah says:

    Still wondering if you have suggestions.
    As I mentioned, I’m trying this using a MacBook.
    I have bootloader version 90.73, and I had previously installed Update 1 on the phone, so I probably don’t have the version with the bug.

    When installing the vulnerable recovery, step 2, I get the following output:

    SBF FLASH 1.24 (mbm)

    === vulnerable_recovery_only_RAMDLD90_78.sbf ===
    00: RDL03 0×82000000-0x8204CFFF F125 AP
    01: CG47 0xB0EE0000-0xB12A07FF 679E AP

    >> waiting for phone: Connected.
    >> uploading RDL03: 100.0%
    — OK
    >> verifying ramloader
    — OK
    >> executing ramloader
    — OK
    >> waiting for phone:

    where it stops, and the phone doesn’t reboot.

    I understand this step should complete quickly.
    Should I wait longer? I’ve waited up to 10 minutes.
    Or is there something wrong with the phone settings that I’m missing?

    Any ideas would be appreciated.
    Thank you.

  242. Lindsay says:

    Hi I followed all instructions and I got to holding up volume and camera button all I get is Blue writing and a yellow line saying E can noy find file update.zip.
    I have un zipped open recovery to my sd card and I end up with the two files.
    Am I saving these files wrong or do I need to do something on my phone or do something to my sd card before I download these to my sd card.

  243. Alex says:

    Hi, really great guide! The best I ever saw so far.
    But I’ve got one problem with my phone, maybe you can help.
    Every time, I boot into OR, I’ve got some time and then the phone just restarts.
    I think, it is about 20 – 30 seconds, that I can navigate through the menu, e.g. set the keyboard layout and then without any warning, the phone just reboots.

    The phone battery is fully charged.

  244. Yoel says:

    Hey !

    I wanted to personally thank you for this AMAZING guide.
    So simple and FOOL proof.

    Got my Milestone to CM9 in NO TIME !

    Thanks again,

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>