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 try the CM7 ROM all version can not play 854x480 mp4(x264) movie, but I can play same video on CM6.1.2, Please check and fix this problem, Many Many Thanks for the great help.

I have the same problem with this guy. Please resolve it :). Many thanks.

Who want to spend some CPU time?

Gun Bros is not working at last version RC1. Is loading but when start stage 1 is turn off.

i try to the default camera app.

the autofocus and zoom work fine at first and i take a picture. i try to make an another picture the phone hang and after some second rebooted.

the camera app is still crash the phone?

Hi nadlabak...

Please fix...the following we love ur ROM....

a) Memory is does not release the memory once apps are closed...seems like some bug..
b) Using Google Maps / FaceBook original app causes random reboots...not always but enough to cause a lot of frustration....
c) Contact application does not allow T9 search autocomplete...if u use a T9 keyboard it never auto-completes names....

Thanks a lot..cheers..

Bug report:
Disabling android keyboard create FC to setting, instability.
Please try to solve navigon FC. :)

Tnx for all your work!


disable JIT
disable keep message app in memory
disable keep home app in memory
restart adw and go back to home screen
enable keep home app in memory
restart adw and go back to home screen again (need this otherwise ADW will lag and slow)
instal autokiller app ( and set up to strict mode

60-70 MB free ram instantly, depend on your background process.

oh i almost forgot. i think the memory problem is the JIT or at least part of it. when i disable get 10MB+ free memory.

the CM default setting is enable jit but i think is better to not use.

This version is lost my 2 important sms's.

try call log backup and sms backup app. its free and backup your call log and sms in a time period to the sdcard. you can use scheduled backup too.

search for it on the market.

just for your own safety :D

btw. try to not disable "lock sms app in memory". but if you lost an already received message... i dunno. try to not let your children to play with your phone :)

I don't disable lock sms app in memory and my children not play phone - in this moment ;)

When sms is received, i click on message, but message is not show and i can't find it in sms application.


This sms is with CVV2 security number for credit card:) and now i can't recovery this number:)

Thank you very much for information about this software.

you can try one more thing. install an sqlite editor/browser and see what is in messenger application database.

the sms app database: /data/data/

open with sqlite editor and open the 'sms' table.

here is a hint for the software:

i hope i can help you :)

With CM7, I've got the same problem that happens with the stock ROM for my phone. Wifi connects but I can't get browser navigation.
I'm now using Shadowmodbr 2.3.b7. With this ROM (that I use since 0.9.14 version) the wifi issues of my Milestone stopped. I think that Ed's work in this ROM can be usefull for CM7 wifi issues.

For all that I know, Edgard in ShadowMod has been following the wifi fixes I've been doing in CM7...

If you've installed the adblock from Androidiani OR, the adblock has been the cause of your problem, not CM7.

I agree to that.. After my browser is not working, I found out that the adblock feature from Androidiani OR actually creates a hosts file with hundreds of thousands of entries. Its crazy when you think that a single web page has lots of links to cross check against that list. I fully don't recommend enabling that feature.

Facebook app keeps reverting to "Don't sync". Any idea if this is CM7's fault or Facebook's? In any case it's extremely annoying since I need to re-join Google accounts and Facebook accounts in the contacts app.

Installed RC1 on 19-02 and everything still works fine.
Although I am not an overuser, I don't have the wifi connectivity problems that some users have. Perhaps that I am in the Netherlands and all routers are configured to use channel 6 by default.
For those who are having problems with playing certain multimedia filetypes, try installing third party software as rockplayer or vplayer.

Keep up the good works.

Hi Kabaldan -- What's up? :) Any updates to CM7 for MM? :) *cheers*

Yeeee Kabaldan

Yes we wait for your great new support for CM7 on milestone


Hi everyone, i was testing this launcher (free from market) and seems to have many of visual effect "like" ADW.

~10Mb of RAM free just after install. In fact I remove ADW.

Try it and let's share results

you mean Zeam Launcher right?


i try this app.

fast and small, use far less memory than adw. good catch :)

Since CM7 USDB Debugging doesn't work. The checkbox für Debugging is ticked, but noch Icon in Statusbar and no chance to connect with adb shell. I also tried to install fresh CM7 RC1 file with the same result. Is this known?

i noticed that, the usb debugging notification not show up every time but i always can use the adb shell or droid explorer.

try to clear cache partition in the OR

no change at all :(.
i also have a contact icon on the top left of the USB menü

do you use the latest openrecovery (1.46)?

from cm6

Important: Please, use the new OpenRecovery 1.46 for CM6 installation - the system partition was not being erased properly from the update package install script in older versions. (yes, it's finally fixed, Yantz ;) )
The Androidiani OR has been updated to be based on 1.46 (in version 3.3), so it's recommended too.

this recommended for cm7 too

yes of course, i use the OR 3.3

i load it from GOT recovery - recovery loader ... maybe thats the failure?

mportant: Please, use the new OpenRecovery 1.46 for CM6 installation - the system partition was not being erased properly from the update package install script in older versions. (yes, it's finally fixed, Yantz ;) )
The Androidiani OR has been updated to be based on 1.46 (in version 3.3), so it's recommended too.

so if you use GOT OR what is based the older OR there is a problem.

if you take my advantage you need to restore the latest leaked moto froyo nandroid backup, you find this in here:

-restore with OR 1.46 or andi OR (i use the second), and do a full wipe. boot the phone in normal mode (after the moto logo the phone reboot again thi is normally) after the second reboot your phone booted. you can reboot to recovery mode.

- now you can update the latest CM7 update and do a full wipe.

after that your phone work like a charm (check my previous post, i use with 75-80MB free memory)

before the procedure you can backup your application like titatium backup or mybackup. you can backup your sms with sms backup and your call log with call log backup (all of these found in market) and after the update you can restore everything.

i hope i can help you:)

ps: sorry for my bad english :( not to fast at the moment so be patient

damn, my brain is out of service in the night time :)

you need to install the latest gapps too, if you need a market, and the famous google apps of course :)

ok i tested many variation and i think the best is so far:

- adw replaced and removed with zeam launcher
- disable jit, surface dithering
- reduce vm size to 24mb
- enable lock home in memory
- modify 10overclock script in init.d, change maximum freq is 1000Mhz at 74vsel (lower not stable), and add some new variable to freq table
- stock message app removed, install handcent sms
- install dialer one for the default dialer app
- remove some useless system application (free up some space in system partition)
- move app, app-data, dalvik-cache, download cache to SD card ext2 partition with mount bind (use simple2ext app from market)
- install autokiller app ( and setup to strict mode
- install toggle2g and setup use 2g when sleep, set sleep time to 2 min and use 2g when low battery (30%)
- gps always enabled,wifi disabled, when the phone not sleep use 3G at all time.
- install usage timeline to monitor cpu status

and here is the results:
- 75-80MB free RAM
- 190MB free space in data partition (some app store their data later in /data/data dir, but 190MB more than enough for this. the main app folder is linked to sd card)
- cpu almost idle in all the time
- home app is insanely fast, no lag, no slowdown, no high cpu load
- app browser also fast as the wind
- no FC, no random reboots
- battery drain is very very good (i can use the phone over almost three day without charging! the third day morning i need to plug in the charger battery still 20%) i use the phone like normal
- map application (google maps and igo8) what is normally use a lot of cpu power stress the cpu at 70-80% maximum. the igo run definetly faster than before.

conlusion: so far so good :)

First of all, thank you sooo much for this amazing new ROM !
after installing Gapps from the link above (there's only one for CM7), I'm missing Google Maps.
Any idea how I can install it? Can't find it on the Market

at the first run the google firt time init wizard will show up. if you dont cancel it at the end this will be offer to you that pick thoose apps what you need and one of them the maps.

but i accidentally canceled it. how to reinstall?

I'm having trouble getting the screen autobrightness to work in CM7, either with or without CM tweaks. It worked perfectly in CM6. In addition, the touch button lights don't come on when waking the phone unless I change the brightness in settings either via the settings menu or via the PowerControl widget. SImilarly, the keyboard lights don't come on unless I slide out the keyboard and then change the screen brightness via any method. Then, the keyboard lights stay on even when I close the keyboard.

Is anyone else having trouble with autobrightness and/or lights? If so, then no worries, I can wait for it to be fixed. If I'm the only one, then I'll have to do some more digging...

Yeh, I also have the problem with autobrightness in CM7. It seems that the autobrightness function is not accurate.


great work you guys, I love CM7!

Just one question: there's an app I want to use that has some problems on 2.3.1 (Ankidroid). No idea why but appearantly it works fine on 2.3.2. Is the new RC2 based on 2.3.2? If not, are you planning to include the 2.3.2 changes in the next RC?

Thanks alot,

the problem seems to be solved using RC2 so I guess it's 2.3.2 :)

Is memhack available for CM7? The two in Androidiani OR are ineffective.

not needed. included already in CM7

Hi nadlabak, thanks for this excellent ROM.

Androidiani OR hasn't been updated as fast as CM4MM. How can I build a new "" update file for LatinAm?

The sbf leaked for Vivo Brazil, work pretty fine with the bands here at Venezuela (Movilnet in Androidiani OR) And I guess this has the latest proprietary radio files.

nadlabak, is possible to you help building a update file for Androidiani OR? or even some tips about "how-to"?

Thanks a lot in advanced.

My SMS timestamps are completely messed up; when texts come in they get pushed to the bottom of the window (timestamp usually says 5 hours ahead of the actual time) however the timestamps on the messages I send are normal.

Any fix for this?


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.