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


I saw that same behavior and got back to normal unchecking these in SMS settings:

-Full timestamps
-Use original timestamps
-Consider GMT-setting

Moreover you should delete the messed up threads or at least the wrong dated sms, in order to stop seen it at bottom.

I'm agree, why those setting do the opposite of expected?

Or better: what is the expected behavior on those setting? Has anyone else tested on CM7 for other devices?

Sorry, the timestamp code is currently messed up.

The correct procedure to get it right is:
Check "Use original timestamps", then check "Consider GMT-setting", then uncheck "Consider GMT-setting", then uncheck "Use original timestamps".
Now you will get the timestamps of new messages right.


Please get us some more memory....left with only 25 to 30 isnt android supposed to free memory automatically...if yes then why does it go as low as 15 and everything starts to lag

Since updating from RC1 to RC2 yesterday, I'll repeatedly get those messages logged:

(WARNING) "Mailbox full trying again count" (counting from 0 to 9)
(ERROR) "dspbridge: Mailbox was not empty after 10 trials, no message written !!!"

Suprisingly I've got no other "mailbox" configured than my Gmail-Account. That messages are avoiding my Milestone to go into deep sleep, so its quite annoying -- but I've got no idea what to fix, since I've not encountered this problem in any other CM7 or CM6 version.

With the latest CM7 the screen don't turn off during a call.

here it works

I figured it out. If I plug in a headset, the proximity turns off, so the display is always on. If I unplug the headset, sometimes the sensor seems not turning on for a while, so it seems like it doesn't work, but it's sometimes just very slow or has a delay.

i tested the RC2 build. google apps framework FC sometime. when i get an sms phone reboot sometime. battery life is wors than RC1, something eat more cpu, even the phone is an idle mode the cpu usage is higher than in RC1. i try to do a full wipe but nothing change. camera is still not working properly.

rc1 is better than this.

I installed cm7 over last froyo leak (25-jan).
After couple of hours, I got 2 random reboots. I can't get gmail and gmaps installed because of restrictions on market by country, so decided to go for the known trick on market to enabled it.
Camera tested with pictures and movies, no FC or stock so far. Just I found after use camera the screen brightness keep on max... longer than cm6 or eclair. Turning off the screen and brightness back normal.
Battery drain seems to be OK, OC settings by default.
Any updates I will add later.
Thanks to devs for cm7, nice RC.

I installed Gmail from Market is not synchronising automaticly, even sync was enabled for the google account after first reboot.
Thanks to somebody share how to fix :)

Needs to go again over sync & accounts settings, the to your google account and enabled proper checkbox

I installed Gmail from Market is not synchronising automaticly, even sync was enabled for the google account after first reboot.
Thanks to somebody share how to fix :)

Hi nadlabak.

Firstly thanks for your work...appreciate it....

I'm getting v.fried with low memory issues on my Milestone...if i use Maps or any heavy app the memory goes to 7 to 10MB and never returns back to 30 or 40 mb even though the app is closed which inevitably means i need to restart...

Apps i use and that are installed, Google Maps/Latitude, Ndrive, GoSMS and WhatsApp....

Is there any solution, am i only facing this...please help....

RC2 is buggy, downgrading to RC1. Anyway, i think milestone was far more responsive in the latest CM6 build.

Is it just me or CM6 does feel faster and more responsive indeed than CM7? Isn't 2.3 supposed to be more responsive? Can this be expected anytime soon out of CM7, considering of course MM's hardware?

RC1 is quite good. RC2 is buggy indeed, but i think CM7 RC1 is better than CM6 if the configuration set up correctly. I use CM7 RC1 and so far so good :)

Hi guys!

I made a full nandroid backup from the RC1 release, based on "Moto_APAC_Modified_Nandroid_28-01" latest MOTO leaked froyo stuff.
Fully wiped, and cleaned.

Extract the archive to the sdcard: /nandroid/openrecovery
Boot to recovery mode and use OR nandroid restore to install this. No need anything else (except the vulnerable recovery only flash!).

WARNING!!! This backup fully erase all of your phone partition including data, so beware!

After you installed this you lost everything (do a backup before the update!), but you have a fast and quite good CM7 on your phone :)

Here is the link:

The most noticeable bug I found was in SMS. Every txt message I get, says I got it 2 hours early. For example, if I text someone at 4PM, and they instantly reply, it says I received it at 2PM.
One more this is the Hebrew RTL fix. It just doesn't work. :( Although the MIUI build ( had it fixed perfectly.
Another thing with the Hebrew (that I've never seen being on any build besides the stock one from Cellcom) is the Android 2.3 keyboard won't type in Hebrew when I use the physical keyboard.
I didn't wanna complain, just point those things out so maybe you could fix them for other people too. :)


The problem is that the stock 2.3 keyboard doesn't support the milestone qwerty keyboard fully i guess, cause there's no key to switch language from what i understand.

It kinda bothers me too it would be great if you could look into it :)

Yes, it is the problem. If I install AnySoftKeyboard it lets me switch languages like I do in a PC. (Alt + Shift)
And the milestone qwerty keyboard I have DOES have a language key, but it's the menu key on other Milestones.

Thank you, fixing now. :)


I used the stable version of Cyanogen based on Froyo and all tested the Cronos version of Froyo...

Both have no memory issues...same apps installed and running at startup, executed all apps i use frequently, both stable releases free memory again after use, no slowing down of the phone or hangs...

Guess since this is RC2 we have these issues, hope u will fix them soon Nadlabak....Cheers

Just one more thing, now i have moved back to the stable release....i have 40MB of Ram free at all times with the stable release....

CM7 can not play 854x480 mp4 format video, only have sound but not have picture

known issue

Great ROM but I can't change the keyboard layout even with Androidiani OR.

I manually edited the default.prop and replaced the sholesp2a-keypad.kcm.bin with no luck. It stays as Euro-qwerty and I want it regular qwerty.

What can I do??

Thanks in advance.

Just can't set customer call Ringtone,the sms & Gmail's Ringtone can be set;

Excellent work friend a few questions with this RC3 and RC2 as to make me spend that touches on the screen every so often as I restarted the milestone could fix this ...

thank you buddy, great work.
only thing, music.apk can not read file/songs from sd. i can not change ringtone too.
please check this point, in rc2 work very good.

thank again.

The stock music player isn't detecting my files on the SD card. Downloaded PowerAmp and it works fine. Physical keyboard sometimes lags a little. Had one reboot when temp got a bit high (about 45*C), other than that, one day down and going strong. Everything working very well! Keep up the great work!


sadly need a full wipe but then all problems gone!

rc3 is great, far the best all of cm7 release, but i do need a full wipe after installed, without it i experienced random reboots, when someone call me the phone slow to wake up, the screen blank few seconds, etc...

anyway, with the wipe all of these problems gone!

can you please add to 7 RC3 FULL hebrew & arabic support and full menu

Same here using RC1: after wipe all away it got faster and smooth..

Let's install RC3.

Thanks nadlabak, excellent work !!!

can you please add to 7 RC3 FULL hebrew & arabic support and full menu ??
and it has problem showing arabic in web browsing its all backwords

Excellent work friend a few questions with this RC3 and RC2 as to make me spend that touches on the screen every so often as I restarted the milestone could fix this ...

it seems like a new record: 7,473 download in only 18hours

Long live CM for Milestone!

I just installed the CM7 with wipe all, but after installing gapps, it led to permanent reboot loop during startup. So I swithed back to the CM6. I do not now, how to fix it.

Did you install the correct gapps package for CM7?

I hope yes, it is from this link "" Without gapps it seemed, that it worked.


I can't select notification ringtones in the sound settings. The only option is silent.

What can I do??


I think we should use RC3 today release.

Today's release fixes the media issues. Media player working fine, ringtones available again.

No noticeable bugs yet.


Still not working! Using the latest RC3

Please help!

Are you updating from yesterday's release? If so, did you wipe dalvik cache first? I almost always have problems when I update and don't wipe dalvik first. Try that, I'm not having any issues on today's release (knock on wood).

If updating from CM6, do a full wipe/reset.
(Nandroid backup first of course)



I was making a custom update (with LatAm baseband and custom apps) but used the apks from yesterday's RC3. Now works fine. Thanks!


I can't use the motorola keyboard anymore, did I do something wrong?


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.