You are here

CyanogenMod 7 for Milestone A853 (with custom kernel, finally)

Main credits:
Obviously, it's the CyanogenMod team and all CM contributors in the first place.
Besides that and my own humble work, CM for Milestone would not be where it is now without the essential works of Skrilax_CZ (2nd-init, OpenRecovery, lot of work on custom kernel, 2ndboot fixes and more), Czechop (hack to the kernel usb initialization code that allows to keep BP working after 2ndboot to custom kernel), f_pasha (gkisystem semaphore patch), Tiago Sousa (author of the original overclock kernel module) and contributions from others that I forgot to list here ;) .
Also worth mentioning is a lot of notable work done by the Defy developers: Epsylon, Quarx and Maniac103
The original 2ndboot code is by Dmitriy Taychenachev and Eugen Maksimov.

Please note that Milestone is not officially supported by CyanogenMod.

Issue tracker:
Build from source:
github repos: &
my recent commits to official CM:,129
2ndboot OpenRecovery:

Full guide from stock Motorola Android to CyanogenMod 7 for Milestone
- by pontomedon (many thanks)
- it includes instructions on how to partition sdcard directly in OpenRecovery (to resize existing fat and create ext3)

New era with custom kernel via 2ndboot
Czechop (Milestone 2) managed to create a hack to the kernel usb initialization code that allows to keep BP working even after 2ndboot to custom kernel.
(See )
Thanks to Skrilax_CZ, the issue of low performance before the first device suspend has been resolved (L2 cache remained disabled before).

Note that a lot of work on the custom kernel for Milestone has been done by Skrilax_CZ.

Main new features:
- Kernel Samepage Merging enabled
- ZRAM (compcache) can be enabled under CyanogenMod>Performance settings (will be active after reboot)
- additional swap file (or partition) can be used, if desired

(older CM builds: and )

7.2.4f (2.3.7) 10.03.2013
- the libaudio that allows beepless call recording has been made optional, because some users reported BP panics on incoming calls
-- you can enable it under Device settings > Experimental libaudio (the change requires reboot)
-- the experimental libaudio received new binary patch that may (or may not) fix the BP panics (testing and confirmation from users is needed)
- several additional fixes done to the call recording code
- added CPU stats kernel module
- the moto RIL data connectivity workarounds introduced in 7.2.4c can be optionally disabled by ro.telephony.ril_class=motow3gplain in /system/build.prop (the default value that includes the workarounds is "motow3g")
- ringer audiofocus fix (by maniac103)
- omap3 hwrng is now exposed by kernel and used by userspace rngd to feed the entropy pool

7.2.4e (2.3.7) 30.12.2012
- call recording: fix recording for calls with asterisk in phone number
- fix typo in /system/etc/init.d/12swap script
- use better way to implement 'Disable Dock Observer' option (fix issue 637 - )

7.2.4d (2.3.7) 27.12.2012
- add built-in call recording option; no beeps every 10s during call recording any more
- wifi: disable 802.11n support by default (HT_Enable in tiwlan.ini) to prevent stale data connections when using certain N routers
- kernel: reverted doubling of the DAC fifo size to 16384 (to prevent audio drop-outs) as it caused broken audio playback in certain games
- fix /system/etc/init.d/12swap script

in case you're wondering why the new build is not uploaded to github as before, see

7.2.4c (2.3.7) 11.12.2012
- kernel: increased DAC fifo size to 16384 to reduce the chance of audio drop-outs
- fix unwanted lcd-backlight activation by camera button while the screen is off (was related to the light sensor workaround that allows to use camera button to provoke sending of light sensor data without waiting for ALS interrupt)
- better handling of Baseband Processor panic (by maniac103) - instead of immediate reboot like in stock firmware, user is notified and can choose to postpone the reboot (e.g. when he's got some work to finish first). Note about the reason of reboot is displayed after restart.
- workarounds for some motorola RIL issues that cause occasional data connectivity problems (by maniac103)
- build: in-line kernel building
- optional swap activation on boot via /system/etc/init.d/12swap
-- requires swap partition present as third partition on sdcard
-- swap size (in kB) is determined by persist.sys.swapsize property
-- no persist.sys.swapsize property defined or set to 0 means no swap activation

example how to set persist.sys.swapsize property in terminal:
setprop persist.sys.swapsize 16384

7.2.4b (2.3.7) 09.11.2012
- kernel update: 10MB more of a free RAM (when the camera is not active)
-- allocate the LSC workaround memory only for the time while the ISP is actually in use

7.2.4a (2.3.7) 03.11.2012
- overclock: vsel entries restored to proofed values
- 2ndboot: updated pre-built binaries
-- a fix instead of a workaround for the GPU performance, proper ATAGs passing (thanks to Skrilax_CZ), etc.
- Music.apk: fixed music playback resume after a phone call (thanks to Danny Baumann)

7.2.4 (2.3.7) 23.10.2012
- the bad GPU performance on low CPU freq fixed via workaround during init (temporary insmod of stock pvr driver)
- updated kernel:
-- we're now on (thanks to Skrilax_CZ)
-- new interactive governor backported from jellybean (with input-boost feature activated by touchscreen events)
-- camera helper buffer (allocated during boot) reduced by 6MB (thanks to alef78) > more free RAM available
-- optional 5 point multitouch fixed
-- fixed usb tethering (only in the 2nd uploaded 7.2.4 build - sorry for the confusion)
- bootinfo hacks could be removed thanks to new 2ndboot update by Skrilax_CZ

7.2.3 (2.3.7) 18.10.2012
- older builds are hopelessly obsolete from now on


7.2.1 (2.3.7) 01.09.2012
- GPU drivers (SGX PVR) updated to 1.7 (latest Gingerbread release) from 1.5 (Froyo), despite the locked kernel
-- it allows less hacky surfacefliger/libui/egl code. Most notably, some workarounds had to be used for some apps to prevent occasional crashes on screen rotation before. Most prominently it can be seen in Gallery app. Before, the view had to be reset on each rotation (to make sure there won't be a crash), now it can work more naturally. Similar hack has had to be used for Google Maps as well...
- the proprietary patched to report 265 DPI to match the physical characteristics of the Milestone's display
- "stay away from zombie content providers" race condition fix - before, randomly, apps could get suddenly killed (after they attached to content provider that has been already killed, but its zombie process still there). This race caused apps to suddenly disappear e.g. after the search function has been initiated (reported e.g. in the case of Google Maps before). It should no longer happen after this release.
- a recent Google Maps update changed a part of the name of the always running background service from NetworkLocationService to GoogleLocationService. This change has been reflected in ActivityManagerService code, so the GMaps hack is working again.
- lots of fixes and also new features from upstream CyanogenMod is included, e.g. the increasing ring tone volume option.

7.2.0 (2.3.7) 16.06.2012
- 7.2.0 release
- the most notable 'last minute' fix is the elimination of the occasional 'mute' incoming call (while the two-way call recording ability is retained)

7.2.0 RC2 (2.3.7) 01.06.2012
- fixed initialization issues leading to bootloops or stalled boot if the ext partition mount took too long
- fixed lockscreen button behavior (notification power widget) where the lockscreen couldn't be enabled again after a while (thanks to maniac103)
- Toggle2G built from source; removed the need for root permissions
- usb: usbd built from source (thanks to Skrilax_CZ), disabled usb notification sound, usb tethering can be enabled directly from usb notification menu
- wlan: updated kernel drivers, disabled adhoc support in tiwlan.ini to prevent connection issues for some APs
- possible workaround for mute call issue (more feedback is needed to confirm or disprove its effectiveness) - Issue 752
- LatinIME is run in SystemUI process to spare additional 2MB of RAM
- added protection of Mms app if its service is doing a work. It shouldn't be necessary to keep the Mms app in RAM all the time to prevent lost sms anymore
- added possible recovery from DSP Bridge failures (its effectiveness needs to be confirmed) - Issue 672
- updated fonts (to fix special Romanian chars)
- install process wipes the dalvik-caches automatically
- etc.

7.2.0 RC1 (2.3.7) 23.03.2012
- various fixes under the hood

7.2.0 RC0 (2.3.7) 21.02.2012
just a quick fix build:
- make sure that services don't start before sd-ext has been mounted (if present)
- fix LED in charge only mode

7.2.0 RC0 (2.3.7) 17.02.2012
- wide screen video recording now captures in 848x480 resolution (was 720x400)
- two way call recording is now possible (recording has to start after the lines have been connected, not sooner)
- UMTS baseband (2100/900 vs. 2100/1900/850) can be selected in Device settings, the selection will persist even after future system updates (please do not use the baseband switching via Open Recovery anymore)
- fixed in-call and SIM PIN unlock screen layouts for landscape orientation, e.g. for phone in CarDock or DeskDock
- additional information about call can be indicated (e.g. that an incoming call has been forwarded, that the call is on hold on the remote side...)
- workaround for broken proximity sensors - camera button can be used to generate fake 'proximity far' event
- many other important fixes and improvements
note: CMWalpapers and Androidian and Cyanbread themes are not included anymore as more space in /system was needed for the libraries that enable the higher quality video recording. Themes and wallpapers can be installed e.g. from market separately.

7.1.5 (2.3.7) 21.01.2012
- ics animations (including rotation) backported to gingerbread
- renderer updated with rotation support - proper playback of videos with orientation hint
- adhoc disabled in tiwlan.ini (may help few people with wifi issues)

7.1.4 (2.3.7) 19.01.2012
- native wifi tethering finally works (proprietary 3G Mobile Hotspot removed, no dun apn dependency anymore)
- T9 dialer
- new 'Holo' ring lockscreen style
- increased net buffers for wifi, added values for hspa
- internal: switched to init built from source, wifi: switched from system/wlan/ti to hardware/ti/wlan, gps: gingerbread lib (from Defy GB firmware) is used instead of froyo lib + gpshim wrapper
- other things I can't remember now ;)

1) 7.1.3 skipped to distinguish from the intermediate version used as base for the last HO!NO! Mod
2) If you encounter wifi issues after update:
reboot to recovery, open console and enter
rm -R /data/misc/wifi

and reboot. You will have to re-configure your wifi networks after this.
Also make sure you have the correct Wifi Regulatory domain selected:
Settings>Wireless & network>Wi-Fi settings>menu>Advanced>Regulatory domain.
Select the appropriate value (11-US, 13-EU, 14-JP), then menu>Save

7.1.2 (2.3.7) 13.12.2011
- fixed recurring events in lockscreen calendar widget
- fixed possible egl surface creation failure (in PewPew game and possibly other apps); reworked egl config selection
- added optional revamped ring lockscreen style
- fixed bugreport service (left shift + del), report files are stored in /sdcard/bugreports/
- added /etc/powervr.ini for some PowerVR SGX tweaks (> less RAM used by surfaceflinger)
- internal storage changes:
-- dalvik.vm.dexopt-cache-only disabled by default ('no free space left in /cache' issue)
-- return back to 07app2ext moving also dalvik-cache to sd-ext
-- 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.
- etc

rest of changelogs:

download links:
CM 7.2.4:
Google Apps: -
same as the official gapps-gb-20110828 with:
- Market (Vending.apk) updated to 3.4.4 version
- CarHomeGoogle updated to version (it seems to fix Sygic launch issues)
- new talk with audio/video chat included to make a single gapps update package again
- updater script fixed to be fully compatible also with odexed ROMs

Additional downloads:
- BPSW (2.2 - Froyo):
if you are updating to CM from 2.1 firmware, you can use this package to update your baseband processor software to 2.2 version
- devtree (2.2 - Froyo):
if you are updating to CM from 2.1 firmware, you can use this package to update your devtree to 2.2 version

- the main init scripts are located in /system/etc/rootfs
- clocking options (frequency table, vsel table and governors) can be set in /system/etc/init.d/10overclock
- Adobe Flash can be downloaded and installed directly from Adobe web or from Android Market

- use OpenRecovery Apply Update menu to install the zip copied to /sdcard/OpenRecovery/updates
- data wipe/factory reset is highly recommended when you are upgrading from another rom/fw or from 0.01/0.02.
- if you are in France, you should replace ro.product.brand=MOTO_RTEU with ro.product.brand=MOTO_RTFR in /system/build.prop (the ap_gain_france.bin will be used then)

OpenRecovery with battery charging added and writing to certain sdcards fixed:

archive links:
CM 7.0.1 (0.08-11.04.24):


Hi, I just have an amateur question. I keep reading this is version 2.3.x. Does this mean this is gingerbread? or is this a CM7 installed over froyo kernel?

It's still running on the 2.2 kernel, so it's not "really" 2.3, but when using it, it'll feel like gingerbread. Things like the enhanced word selection and screen off-animation are included.

I can see that nadlabak has verified the problem report with the DSP. Is awesome his effor for make better this release. Keep going friend!

We translate the rom cm7 to Hebrew
We are in the process of translation apk files
We want if you can please send you all the translated files sting.xml add the possibility of a complete Hebrew in your rom.
Fonts have been updated


lockscreen look bad when phone in landscape mode (slide up the hw keyboard)


I installed the 0.07-11.02.09 build and then downloaded the newest Youtube app (2.1.6), but upon start it force closes. I already tried to clear cache and data, but had no luck. Any ideas on how I can fix this? The version I got was offered as an update by the Market.

Besides that, so far everything's good! It's running stable enough for daily use. Thanks nadlabak!

the google apps offering download the youtube app and if new update will be available then offer to download from market.
i installed with no problem, and working flawless.

btw, i install a fresh CM7 not an upgrade from CM6

I upgraded from CM6, so I decided to uninstall the youtube app and reinstalled it from the market and it worked! Thanks for the feedback.


does anyone see that google email icon is not install after install the google apps ?

i tried now force again the gapps but no sucess.

what can i do to get access to my gamil account on MS?



download the market enabler from the market- switch to verizon or something else - search for google mail in the market and install it :)

1: SMS toCDMA can't be read, Character encoding error

2: No ring at frist call

if you need more space in the internal memory you can move this three directory safely to the sdcard ext2 partition:


no hangs, no crash or force close and no slow down. CM7 fast as a ferrari :)

after move theese three directory you need to create a symbolic link from ext2 partition to the internal storage!

Interesting! Can you write step-by-step guide how to do this? I don't have any linux experience at all.

first you need to partition your sd card, create an 1gb ext2 parition at second. you can find many partitioning program, just google it.

1) reboot into recovery, use Openrecovery.
2) pick up the console menu
(all of this a shell command below)
3) mkdir /sd-ext
4) mount -o bind /sddata /sd-ext
5) mkdir /sd-ext/app
6) cp -af /data/app/* /sd-ext/app/
7) ls /sd-ext/app
(check that all files copyed succesfully)
8) rm -r /data/app
9) ln -s /sd-ext/app /data/app
10) exit
11) reboot the phone

use this method similar for the other directory.

/sddata directory created in the OR and mount your ext2 partition at the boot process automatically, so you dont need to do anything with that.
/sd-ext directory use in the CM, same as the OR sddata, mount ext2 parition automatically to this directory at boot, so that reason need to create symlink to /sd-ext

well thats all :)

Thank you. will try later. Cheers!

you can download a program to do this from the market, called S2E

Please help spread this as quickly and widely as possible - I'm challenging Motorola Europe to show that they love their customers by unlocking our bootloaders, starting with the Milestone A853 on Valentine's day. I know it's a short deadline, but it should be attainable if they really care about us at all (beyond squeezing as much money out of us as possible).


Firstly great stuff, i have a problem with the milestone performance becoming v.laggy as i use it for more time in the day, so laggy that i need to reboot, using launcher pro 0.8.3 and overclocked to defaults, please fix in next build...

GPS fix time is just awesome....

i experienced slow performance only when install CM7 from stock 2.1 firmware, try to install the latest leaked firmware and then install CM7. much better :) btw i dont use launcper pro.

Looks like a memory leak somewhere, ADW.Launcher is getting swapped out constantly (opening the market is enough) and then it takes ages to rebuild the widgets. The strange thing is that it's getting worse every day. Well, it's alpha after all :)

Great work, nadlabak, hope you can fix this soon because otherwise it's already a fantastic ROM!

lock adw launcher app in main memory. it is use a minimal amount of extra memory but the home screen is always in main memory and much more faster. you can fine tune this settings in CM menu

Ah! Good idea, thanks!

Thanks for this tip.

I have been testing some other tweaks and now I'm not sure what exactly bring my phone faster.

1. JIT Off, I read in a tread for CM6 to try out this.
2. Reduce VM size to 24.
3. CM menu to lock home screen to memory (your tip)
4. And last update to 11.02.10

So far is working just fine, but again, not sure was what the exactly tweak or if it was a combination.

I think last one was crucial, cause nadlabak confirm some fix regarding memory. Excellent ROM dude!!

I just think its some sort of memory leak currently, tried the adw and the option for lock in memory works fine but as i use applications in the course of the day, the system becomes v.slow and unstable, contacts / screens etc take ages to open, i hope the developers see it and fix it....

Currently i've moved back to Cronos, does anyone know how to make the GPS lock quickly, like in the Cyanogen 7 rom, it takes ages in Cronos

It's due to some extra logging which was implemented when nadlabak, f_pasha and others were in the process of making CM7 work on Milestone. It should hopefully be turned off soon, which should get rid of this issue.

I am a canadian CM7-milestone user, who is currently using an unlocked Telus Milestone on fido network.

I have no problem sending/receiving unicode SMS to Rogers/fido users,
However, it seems like the Unicode SMS do not get sent properly (unicode characters end up looking like "ii8o@!#"), while I can receive SMS from Telus users (tried with iPhone4 users and an unlocked Xperia X10 user).

I used to have this problem on cm6.1.2, but it was solved (I don't know how) after cm6. update.

Does anyone have solution to this?

I've had problems with SMS getting lost. Someone send me several, and not all of them reached me, despite the fact she got send-confirmations.
GSM to GSM. In the German Eplus network. Anybody experienced the same? We did not try to reproduce it yet, but I switched back to CM6 because of this.

when open the sms, it will close in seconds and the GSM singal will be lost
hope to fix in the next build.

How much does the job pay? freeones

Withdraw cash nudetube

Is this a temporary or permanent position? freeadult
4178 wtfpeople
:-)) vidsvidsvids

Do you know each other? bimatoprost 0.01 eyelash growth Peterson declined to talk about the relationship he had with the boy. He went to see the boy in a Sioux Falls, S.D., hospital Thursday. The mother's boyfriend is charged with aggravated assault and aggravated battery.

Installed it last thursday. Everything seems to work just fine so far, except google mail was missing at first. So I installed it from the T-Mobile US market (with a little help from MarketEnabler).

I can't confirm any of the other problems described below. No lags, no crashes, no bad performance. Plus there seem to be some great improvements in power consumption. With CM6 I could never go much more than a day without the wall plug. Now I didn't cahrge it for over THREE days and it's still not empty.

Greetings from Germany,
keep up the good work guys!


I must say the new release 0.07-11.02.12 has improved memory performance however its not completely gone away...less refreshes of the launcher and screen freezes...still a lot of work required to improve memory performance....

All this all once this is done this is a killer ROM...GPS fix is unbelievably fast...9 sec to fix....used to use Cronos which took 70secs....

What makes the gps fix this fast...any clues....Cheers

the launcher problem is solved, read the comments below

I keep running out of memory, even on the newest (02.14) version... I've literally hit 0MB free (saw that in Settings -> Apps -> Running Services) a few times. I guess this is what's giving me problems (notifications not showing up, music player stops randomly, apps close randomly, etc...).

Is the SMS fixed in the version 11.02.14? On the version 11.02.10 I was unable to receive SMS messages.
Tip for those who are running out of memory. I installed Zeam as launcher and I have between 40 and 50 MB of RAM available now.

hi kabaldan,

With the recent 0.07-11.02.14 release, i am having trouble connecting to 802.1 eap wifi. It always stays disconnected..I have also tried the forget network and add network method but it is not working. I did not experience this problem in version which is weird because most users have praised the new wlan files. I am wondering if you may extract out the wlan files in and possibly create and update file and post it?

Any help would be much appreciated.


Deleting and readding the network in question helped me with this

It's great ...
But in my example I use an Israeli service provider named SPIKKO.
I can not call others but others can reach me.
I checked the settings and tried all options under the built-in application - Not Working ...
While when I use application: CSIP everything works great ...
Still I prefer the built-in application will work for maximum comfort of the device please if you can fix it ...
More problems from time to time the device got stuck.

Tank's Elad

Hey guys,

I've been using this since the 02.07 version, and I've noticed that RAM use is pretty high. It's always between 35-41mb free, and anything I use means ADWLauncher closes.

By leaving the cellphone on for various days, I've seen the system indicate that ADWLauncher ITSELF was responsible for 8% of all battery use, so coupled with that I figured the greedy little pig here was ADWLauncher itself. And yes, it was. Right now I have 51mb of ram FREE after tweaking a few settings over here.

Let me describe what I changed (Settings/ADWLauncher)
1. Screen preferences: disabled Wallpaper Scrolling
2. Drawer Settings: disabled Animated Drawer and Fade app labels. Also, I've set the background color to #ff000000, without alpha (transparency)
3. System Preferences: disabled Wallpaper Hack, changed Scrolling cache to DISABLED
4. UI Settings: disabled show desktop indicator (ok now, I use ONLY ONE desktop, so that's related. I believe it does help with RAM use).

That was it! You might want to restart ADWLauncher to see the extra 10mb of ram available for you. If you don't see that, use a Task Killer to see what decided to run and steal the free ram, and deal with it. For example, I had Colornotes, Youtube and Clock running for some reason after these changes.

nadlabak: you might want to set those settings by default on the next build, since RAM is precious. Thank you for such an awesome work!


good catch!

work perfect :)

hi, nadlabak

Please fix the memory issues in the ROM as priority...i think that is the most important thing for us....We love ur rom but have to keep restarting it every few hours...

I have only 30 MB max ram available and once i use MAPS or some other application the ram never returns to 30 MB which causes constant refreshes in Launcher Pro and laggy system and i have to reboot...

I no longer used the Dalvik comiler...

it will be fixed soon i think.

in the mean time try this app:

its free and far the best autokiller app available on the market, it work perfekt for me. 60mb free ram :)

Thanks a lot, it's a very useful app.

And web site explain every detail about it. Interesting.

I think we should stop crying about RAM memory 'cause it's a hardware issue, Motorola didn't ever think about upgrades far as 2.1.

yes, it seems to be :(

motorola obsolate milestone too soon and push forward milestone 2

milestone is a good phone, rock hard solid case, well desgined and elegant :) i love it

froyo and gingerbread use less memory than eclair and faster too. i dont understand motorola why not upgrade to the newer android.


Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.