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


Has anyone else been noticing issues with the music player? Specifically that playback will stop randomly, usually within 3 minutes of it beginning? Largely this happens when the screen is off, but I've even seen it stop with the screen not yet having timed out.

I can't confirm that. Sometimes it won't automatically resume after I take a phone call on bluetooth, but other than that no issues with it just stopping for me.


I literally could barely hear a full song without it stopping for no reason earlier, which made listening to music while working quite annoying. Trying again now it's more sporadic, it stopped a couple times in an hour but much less frequently. I'll fiddle with memory management settings, and possibly just do a full wipe and see if that helps.

aahm the music player doesnt play wma music files coult you fix that?

The 3D Gallery keeps freezing and sometimes it causes reboots.
Is anyone else having that issue?

I have the same issue. I am using JustPictures. It is more stable with 3D Gallery and faster.

Hi guys;

I'm still experiencing random reboots. I have downgraded to 0.07-11.03.02 RC3 and I'm still having this random reboots.
Today (now it's morning here) my milestone have rebooted 3 times already. I'll try to make a clean install later with full wipe, just in case.
Anything else I can try?



Just to say: I have opened Foursquare and bang! my milestone have rebooted.



I had the same problem. This issue only happens on some milestone. You can replace the kernel with the older version which will fix this issue.

I have tried it with version 0.07-11.03.04 RC3, but it didn't work. I'll give a try with the new version.



I'm having random reboots as well several a day. I downgraded the boot.img as was indicated but to no avail...

Does CM7 supporting usb tether?

I was looking around and couldn't found this option, neither at same place of CM6.

Thanks in advanced

If you have WiFi on your computer, you can set up a 3G Hotspot easily. I found the app included works great...but, that's if your computer has WiFi.

I haven't tried this, only just came across it...

Let us know if it works for you.



Thanks for your tip about wired app.

By the way, of course I already know about "3G Mobile Hotspot" app, it works pretty well.
I was just curious about wired tether ;)

"android-wired-tether" app seems like do not work for our motorola beta 2.2 leak kernel.

I was wondering what are some of the downsides of running the 2.3(Gingerbread) but with the older 2.2 (FroYo) kernel? As I understand it is very unlikely that 2.3 will ever officially hit the Milestone so the best we might ever get is 2.2 kernel with patches.


I've tried CM6 and this CM7, testing games performance, the improvement of CM7 is OUTSTANDING, I've checked it with Need For Speed and it's like night and day, for me this alone justified this ROM

Hi all,

I am using CM7 4Mar. My Location is 500m far away from my exact location, I use both GPS and Wifi location.
SO tell me in CM7 9Mar, exact location found?

I'm very happy that the new version CM7 released.

And battery seems a lot better.

Why we need to unchecked the Just In Time compiler in performance setting to increase the performance? I always thought this JIT will increase the performance. I read some of commenter here give this suggestion.

JIT is a good thing and I'll never disable it by default. The performance is always better with JIT on.
The memory consumption with JIT is only slightly higher then without it. Such small difference does not justify the loss of performance caused by JIT disabled.

A user can uncheck it, if he wants. Such setting will be preserved after ROM update (unless data wipe is performed), so it's no big deal.

Thanks nadlabak, i understand it now

When you are listening to music with the locked screen and you want to use the volume control to change the song, it first level up the volume and then change the song and finally level down again the volume. This happens in a very short period of time. That's the only bug I found. Everything work great!!! I love cyanogenmod 7!!!!

I've installed CM7 a couple of days ago. Since then there is a new version. Any way to upgrade without reinstalling everyting? I don't want to reinstall/reconfigure everything every time there is a new version

Before running CM7 update wipe dalvik cache and cache partition, and thats enough. You dont need to run a full wipe.

I never wipe any cache. It aways worked only installing new updates and gapps over the old one, unless you are changing versions (cm6 to cm7)

The music player sometimes starts to play something for a few seconds if I plug or unplug a headset. The free memory is very low, there is almost no multitasking, have to wait seconds for the start of the programs, if I get an SMS, the phone vibrates, but the notifications tone has about 10 seconds delay, and when I get a call, have to wait about 10 seconds to answer it, because the screen doesn't turns off or not responding.

Sorry about my English! Despite I hope it's understandable.

Open gallery -> choose random image -> open it -> try pinch-to-zoom -> crash

Not for me... I just fully wiped and reinstalled the latest build, working fine for me.


I hate that "etc", its so fucking lazy

lazy? I think too busy

Then dont use it

You could read everything in , I think u´re lazy.

FUCK OFF and don't use it! You have any idea how much work goes into this? It's posted elsewhere anyways, so quit being a whiny, lazy, selfish ass and go look where it is posted instead of expecting Nadlabak to wipe your ass for you!

As others have said, would you rather he spend his time writing out a full changelog so that lazy people such as yourself don't have to bother tracking down all the individual changes (he's giving you the most important ones anyway), or that he spend it actually working on making CM4M even better? I know I'd rather he do the latter...

great work but I have some issues:
- some photos in 3d gallery are corrupted , probably it does not play well with jpeg neon optimization
- dspmanager compression - when enabled, the audio shoots up way too high
- time 12h format when enabled doesn't show am/pm

same for me

Hi nadlabak,

Thanks for your updates. I look forward to them and they have made the system really stable...

For the last 2 updates the free memory has gone done, on a clean install i used to have around 90MB memory that is only 60 MB....

Does anyone else see the same....or is it just me...

great works,thanks.
however there is a minor problem. When play a 16:9 video, it can't change to the landscape mode, especially unconvient when auto rotation is closed.

sorry for my poor english.

it can't change to the landscape mode automatically,

sorry for forgetting the word "automatically".When push out the keyboard, everything will be change into landscape mode, but pushing out the keyboard just for watch a video is also not convient.

0.07-11.03.12 RC3 I have no market and gapps, but I installed gapps for CM7

sd card doesnt mount in recovery mode anymore. before the last update, it found the sdcard after a cold boot, not after a soft restart via "boot into revoery mode". now it doesnt work either way anymore. I have a nandroid backup, but how can i load it when i can't get into nandroid anymore?

help pls!

ok, just mounted it to my pc when cyano was up and running and now it works again in recoverymode aswell, phew

This is my first posting after using CM7 for a few weeks and I must admit that a very good job has been done. I've had minor issues which have all been fixed in the 2 previous builds (0.07-11.03.09 RC3 and 0.07-11.03.12 RC3). Many thanks for making CM7 for Milestone and keep on the good work.

I cannot seem to find the option to choose how many home screens I want. It's 5 screens by default, but I only ever use 3 screens, so I have 2 empty screens that I will never use. How can I make the change to only have 3 screens? I cannot see the option under ADW Launcher settings like it should.

If you are using the launcher that came with CM7 (ADW), when at homescreen press the menu button, then "edit". You can add or remove screens and set default screen there.


Thank for the tip, I was not aware it could be done that way.

After I sucessfullty update the version to CM7RC3, It run fast and stable. First time doing such update on my milestone, very happy with the outcome. Just one problem... I can't install and run Moto Text Input anymore. I need it to text in chinese characters. also now my hardware keyboard got a delicated button to switch between Chinese/English, now seem to map to some other functions....
anyway to resolve it?

Try Google Pinyin IME, its an application from Google, you can find it in the market, works perfectly for me

Hallo, I use CM7 and I work fine.
I use the tethering application included in the rom for my console game WII and works great!
Now I've a friend with Eclair stock rom and he uses tethering application from market (bernacle) but this kind of tethering is different from CM7 because it creates an ad-hoc network and the WII doesn't connect!
Is there any way to use the tethering application from CM7 to Eclair?
Thank you?


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.