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):


Anybody having trouble playing H.264 video files from the stock player? Every one I try says the video format is not supported.

no problem using the stock player.

Hi nadlabak,

thanks for this great version of CM7. Everything is working really smooth.
But something bothers me. It's not really a problem, more an inconvenience.
In CM6 i got used to closing apps, e.g. games, by force close which is
enabled under preferences --> apps -->development --> close app.
I can still choose the option and when i press the back-button longer
the notice "app closed" still comes up, but nothing happens.
As i said, it's not really a problem but i hope you or someone in the community may have an answer

best regards and keep up the excellent work!

The 0.07-11.03.12 RC3 Version is really stable. Only the auto brightness function is not working properly so that my Milestone is empty after 12 hours. The battery information tells me that 40% ist consumed by the display only 4% by the Android System. The reaction to changing ambient light is slow. The original brightness control works better...

Same here.


Same here


The CM7 is still too slow and has too low free RAM. There is almost no multitasking, the programs are slow and choppy, some of them are useless with this MOD, the phone reboots all the time, the screen freezes sometimes, if I get a call, have to wait many seconds before the screen turns on, etc. You should handle the low memory with main priority, without normal RAM management this MOD going to be a useless crap soon, all the updates are much worse than the last ones.

I appreciate your work, the CM6 is great, CM7 is a good start, too, but it is useless at this point. Why do you call it release candidate? Alpha, maximum.

I'm having the same issues.. we seem to have written almost simultaneously ;)
It'd really be great if this could be fixed soon - because CM7 really rocks! And if it wouldnt be for the bad memory, this was the killer ROM for our stones. Motorola could get lost with their Froyo development for the Milestone (if there should are any efforts at all in this subject...) .

Same problems here. The phone is extremely laggy. Almost unworkable and crashes regularly. Thanks for your effort though, I hope you can get it fixed.

yep, i've got the same problem. rom is not usable like this =(

The same problem here.
In the background there is just Whatsapp and even so it's hard to use Facebook, for example. It just kills it in a few minutes because it has not got free RAM.

It's a pity because the ROM is sooo great, but this problem makes it sooo bad to live with CM7....

So, I've got a question. When you go to settings, applications and see the amount of RAM the phone has got, it shows a max of more or less 190MB. It shouldn't be 220-250? I'd like to know why thnks :D

Hey there - first of all: thanks soo much for the great effort you put into this ROM! It really revives the good old Milestone ;)

But I'm having one big issue with the current versions of this ROM, its the high memory consumption. Am I doing anything wrong? I always have almost 0 Byte free mem, therefore multitasking is impossible. As soon as I free up some space by ending running services (such as WhatsApp, DroidStats etc.) the other services instantly consume all the free space. Whenever I start a new app it takes up to fifteen seconds for it to start. And often apps lack enormously or sometimes even force close for no reason (probably a mem-problem?).

And then there's the heat issue. My phone seems to apply for a new job as a cooker, sometimes it gets so hot its getting hard to hold it. The heat comes from somewhere close to the camera, probably where the CPU is built in? Is this normal, or should I start worrying? I already clocked the phone "down" to 700 MHz, still having this problem. Sometimes I also encounter reboots, then the phone has almost always reached a critical temperature..

Is there anything I can do (except wait for the official release of the 2.2 kernel...)? I currently have JIT enabled, the VM-Memory set to 32 MB and clocked the phone to 700 MHz set on interactive governor.

I'd appreciate any help - thanks! And thanks again to nadlabak for porting the great CM7 to our stones!!
-- nic

How many apps do you have installed that try to run in the background? If you have lots of background processes running (WhatsApp I'd assume runs in the background for notifications, etc. - DroidStats as well I'd assume because it keeps track of traffic, calls, sms, etc.) or widgets, that would suck up resources like crazy. Is it also safe to assume that your battery life sucks, too? Lots of apps/widgets running = more memory used & processor running more (heat issue) = crappy battery life.

I'd try getting rid of any apps/widgets that you don't really need, as limited memory is already a bit of an issue. That, I believe, would get 2 birds stoned at once :P


Well, I do have quite a few apps instlled, but not many running as a service.. And those which do run as a service are really needed, otherwise making use of my phone'll be hard.
With other ROMs this amount of apps has never been a problem.. Is there no other work around then uninstalling needed apps?


1. milestone often freezes (very often when using gmaps, sometimes when playing solitaire)
2. milestone sometimes reboots
3. milestone starts "heating": in my case it's the email.apk, which sometimes starts consuming cpu 80 to 90 percent - until the battery is empty! phone really gets very hot.


I face all the same problems you mentioned...guess it something nadlabak has to fix in his next release....its still RC so we will have these issues....

Why you guys are not using the google codes page to host the Cyanogen 7 for milestone? If you declare it as beta no one will mistake it for the stable version. sorry for my English.

in a multi user enviroment github is way more specific

To bad for me that I can not acsess github from whork

Looks like Motorola finally made the 2.2 update officially available, I am really hoping the new kernel is stable and can replace the beta kernels in this build. Can anyone confirm the new kernel is solid? Is there still DSI errors?

Really looking forward to a stable kernel!

Love your work! You single-handedly made the Milestone a great phone! Much respect for you, none for Motorola!

PS the video camera records in landscape mode by default, so it is stretching portrait videos into landscape videos, very strange behaviour which there does not appear to be a setting for.

As far as I've heard, they changed nothing.
This is apparently from the Moto beta forum:
(The person adressed in this is a beta tester with the bugged Froyo, and he is asking wether that is the same version being released right now)

"Yes this is the same version you have. There is no future action required by you. We will be offering a downgrade option for users who aren't satisfied with the post upgrade experience. I'll post those details as soon as I have them.

[complaint about sluggishness of the update]

RE: Sluggishness. We have investigated and it's not likely that there would be a suitable solution in a reasonable amount of time. This is in large part due to the hardware limitations of the device and a similar experience is seen on other similar devices both manufactured by Motorola and other OEMs. So, regrettably there will not likely be any future software work done on Milestone A853. As mentioned above we'll offer a downgrade option for those who wish to exercise that option. The downgrade will come at no cost to you."


Grrr, I guess my pipe dream of a functional reliable phone is over. I asked a friend the other day if his iphone had ever rebooted, he laughed, like it was a ridiculous question; I realized I've never gone a day without programs crashing or my phone rebooting. Lame. I hate everything about iphone, the whole culture is stupid to me, but damnit, the phones work, period!

I dont know how you installed CM, but in my experience, making a full wipe and installing g.o.t 2.2 before CM (even though not required anymore) causes less trouble.

As for the Iphone comment. Thats pretty much the concept of Apple. They dont want you to worry about making things work, so they take that option from you -.- but they at least make sure it works the way its supposed to.
Heres the concept of Motorola: We give you a bunch of crap, but dont you dare change that. Just in case you want to try to improve our garbage, we made the FU Bootloader


Seriously? I certainly had that much trouble with the stock 2.2 ROM but doshaska's CM7 has been an absolute dream for the past month. No lockups, no reboots, rare FC's that are almost always the App's fault, and stellar performance...much better than stock 2.1, which was stable but also slow. It's going to make the remaining 12 months I have with this phone so much easier... Sorry to hear you're having so much trouble.

Apparently there is an official 2.2 kernel now.

Go for it guys! :-)

Please install the new kernel and let us know how it goes! Stuck at work..

Before I post as an official issue, is anyone else having issues with the on-screen keyboard closing for no reason? I will start to type and the keyboard will close. After that I select the text input area again and the keyboard doesn't reappear. Keyboard then will not work in that app again until I restart the app. Happens about 75% of the time.

Anyone know what's going on? Anyone with the same issue?


I don't see the issue you're talking about on the latest(3/16) release. However, I am using the SwiftKey keyboard instead of the default, so if it's an issue with the keyboard itself I wouldn't be seeing it.

I have problems with the Gmail aplication, it open error notifications every time I conect the celphone to internet


The etc functionality is not working for me. How do I activate it? :-D

etc is the best feature ever! :D

what is the etc feature about? is there an overview about all of androids / the milestones features?


:D good one

Thanks for this really great ROM.

BTW, the ETC feature and joke are the best part of this latest update ;)

Dear Nadlabak,

You are stealing my time...
Reading through the whole word etc is no tedious...
We ar not hear, to read through your long long rants...

Gr33z, Tino

I have a problem with the Google Talk application. I get the notification, but when I open talk to me on the screen shows nothing. I tried already wipe, remove and re namestilm g. talk.
Strange but Fring app, let me show gtalk conversation.
ANY suggestions?

Solved :) sry

I wanna know whats in the "etc" part, I bet you are hiding how magnets works

He's solved N=NP

the new 0.08-11.03.16 RC3 rom is excellent. it is able to handle memory in very good way.

I know sometimes in the future. You may not able to continue your great work improving this rom due to many things. certainly you will get a new smartphone. Milestone will become obsolete.

If you don't mind. Is this version of cyanogen7 rom will be last one your are going to work with? Or perhaps you will continue for android 2.4 or 3.0?

Hard to say what will happen in the future, but Milestone is still my favorite toy and I suppose that it will remain that way for some time.
I still don't see a replacement phone on the market that would be so much better for my needs to justify the switch. C'mon, I've got it only for 16 months now :)
Anyway, it's opensource, everything is on github, anyone can pick it up and continue in the case should I disappear.

Nice to hear that :)

does this kernel support's it?

still waiting for the kernel source to be released by Motorola

I've used this release since it's first release and I must say as of 03-16, the memory management is finally where I need it to be. Great work! 60-70MB free, and thats with widgets, and apps on startup (lookout). Best release to date, blazing fast, and I don't seem to be plagued with too many restarts (and when they happen they are quick and only involve the CM7 logo, not the "M")

When you installed the latest 03-16, did you do a factory reset, or just wipe dalvik/partition? For some reason with this latest release my available memory went way down. (50MB max :S)

Anyone know of any application Battery Circle that works?

Hi Nadlabak...

Thanks for this update, lov it, i must say

a) Memory Management is so much better, i get less refreshes of the home screen when i use google maps and facebook or other heavy applications...

b) It feels much responsive...

Still feel memory management can be better i know its the RC3 and im sure it will improve...

Google Maps performance is sluggish, any way we can improve jerky performance...


Hi all, thanks for all of your hard work.
Just wondering if anybody can shed some light on this problem I am having.
I have just upgraded to CM7 from 6.1.2 and everything works fine...except, when I attempt to conect to wifi, my milestone can find all the nearby networks and can attempt to connect, but when it is obtaining its IP, it hangs and then my router crashes (the lights remain on but I cannot access the web interface of the router and all computers in the house loose internet connectivity), Restarting to router gets me back on line again but as soon as my milestone tries to reconnect, the same thing happens again.
I have tried with a different router and the same thing happens.
My main router is a Linksys, secondary is Belkin.
Anybody have any ideas? Thanks


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.