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


MAP bluetooth support


Is there a MAP (Message Access Profile) bluetooth protocol support on the latest (7.2.4f) version?

I saw that CM 7.2 has a merge with MAP support.

Many thanks

Problems with batteries

Hello all lately i've having troubles with batteries in my milestone 1 with latest cm from here.
Last battery starts to last nothing and then buyed a new one.
The new doesn't last too long (not even half a day) and it starts to inflate (expand) very bad.
Thought that was defective battery so i buyed a new one and again it starts to inflate again
I use the original charger that came with my milestone, any ideas?

- you have to use an old rom

- you have to use an old rom like 7.2.4b !!!

- switch off phone
- recharge
- take off battery when full (still switched off and still plugged!)
- wait for "?"
- replace battery
- phone should charge again

- after the second charge cycle you are done and can reflash the latest rom / backup

Moved to Netherlands

I'm not too hopeful that anyone is monitoring these comments, but here goes...

I just moved to Europe and would love to have my old Moto Milestone (A853, formerly on Telus) working as I'm not able to enter a new phone contract as yet.

I installed the CM7 mod ages ago, but it doesn't seem to like Vodaphone in Holland. I went into OR and tried to change the baseband version, but I do not see an option for the Netherlands. I assume I need to install a new .sbf file, but I'm not sure where to get the right one or what I need to do. Any help would be appreciated, thanks.

Hello, Is this build dead? I


Is this build dead? I haven't seen any new updates in ages.

Odexed ROM


unfortunately your great ROM 7.2.4f is odexed so changing a theme is quite difficult. Could you please upload a deodexed version of 7.2.4f?
Thank you so much.

excellent work thanx a lot developers...

Just wanted to see a few problems fixed---
- if you have a slide lock and you enable display music cover art the lock comes halfway through and spoils the whole thing, perhaps if both enabled wither could be shifted a little up so as to not overlap on display screen.
- sudden random touches occur and i have to switch off and switch on screen which 99% fixes it.
- prolonged touch, a simple touch continues to be recognised as a continuous touch and follows the long press aaction, ery irritating for eg, if you have the back key set to kill app on long press...

thnx a lot, hope u cn fix these asap otherwise also you guys have done an extremely good job

another problem i forgot

- If you switch off the screen for approx >20 mins and reopen the screen the wireless connection gets disconnected and connects again interrupting any ongoing download...


I know you said in an earlier post that OTG was supported in CM7, but was not working. Any idea if this is fixed in CM9 or what the problem might be?



My phone has trouble with incoming/outgoing calls when headphones are plugged. Most of the times I have to reset. Is there a possible solution for this? Thanks un advance

Phone awake all the time

just upgraded from 7.2.4d, and I'v noticed that the phone stays awake all the time, killing the battery... any ideas?


BBS says it's NETMUX_send...

can confirm

same situation here. First hour after unplugging: ~30min sleep, 27min NETMUX_send wakelock. Don't know if it is killing battery yet, but it keeps the phone awake for sure.

Battery drain 7.2.4e

Your great work is the reason my milestone is still running - and it's running like hell :)
I just want to report that my battery drains a lot faster with 7.2.4e than I am used to from the previous versions. I skipped "c" and "d" - so last version was 7.2.4b. Especially that one gave me superb battery life.

Wifi+swap question

Dear All!
First, I would like to thank you for your hard and good work with this phone model. I really enjoy the days with it.

I am not completly noob for the theme, but there are black spots. I want to step to a new level: I want to set some swap partition, but I didnt find any tutorial for this. How can I do this?

I have also thelephony crashes with or w/o call recording on.

And one more important: the phone drops the wifi connection after a few minutes, if it goes to sleep. Is there any solution, to fix this?

thank you, Robert from Hungary

Continious errors in the telephony sub-system

I have installed 7.2.4e (2.3.7) 30.12.2012 and from few days i am experiencing many errors in the telephony sub-system when someone call me. The phone just hangs and after that it displays an error message and requires a reboot.
After the reboot everything is working correctly for 12-24 hours and the issue appears again.

Same here - 'Continious errors in the telephony sub-system'

Eagerly waiting for the next build to be released!

- Manoj,

phone.apk crash

I have the same problem :(

7.2.4 unstable for me

getting telephony and sdcard errors with 7.2.4x, even after phone wipe and new OR installation, reverted back to 7.2.2



Milestone is dead after 7.2.4e

since the update after a week I had errors with reboot request.
but now I downgrade the phone 7.2.4e but that same heater is whit out the battery. Must enliver the battery down below 40 °.
The battery lasts 1 hour max.

goodbye milestone 1 ...

try to disable call

try to disable call recording. may help

The same here

I've back to 7.2.4c and now is OK.

I'll try 7.2.4b

I am currently at 7.2.4e. The energy consumption is high in particular during phone calls (other people noticed this already). However, phone calls also consumed a lot with 7.2.4c. I'll try 7.2.4b as suggested above. Nevertheless, many thanks to the developer.

I have downgraded to 7.2.4b

I have downgraded to 7.2.4b and now, after 1day my battery is at 80%

Same here

Same here

Telephony service failure leads to system reboot

Maybe Milestone CPU is not powerful enough to support call recording?

Thanks For Doing So Much For MillStone-User

I want to boot the kernel( in MIUI rom . But I failed. It reboots during init. I don't know if it is because of the kernel. Could U please add 2ndboot into MIUI?
Many people hope that.If it is worked out. Millstone will be much stronger.
Thank U for what U have done for all us again!

What about InteractiveX,

What about InteractiveX, SmartAssV2 and other CPU-govenors?

When add any comment on page

When add any comment on page :

warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp22\www\biskupcova\includes\ on line 192.


thanks, it should be finally fixed now

Telephone layer

On version e, same problem occure with telephone layer. Phone need reboot.

Telephone layer crash

for me it happens only when i use tethering over wlan.

Mobil data

Can't connect mobile data connection with 7.2.4e (2.3.7)...
Reverted to 7.2.4d (2.3.7)!

There has been no change

There has been no change to the telephony framework code between 7.2.4e and 7.2.4d

Strange things happens

It's working now (2G/3G both)!


I Have 3 Partitions on 8GB 6class FAT32>EXT2>SWAP(linux swap (i made 64mb)) and i CANT ACTIVATE IT By Console. Swaper, Swaper2, Swapscripts works but i want to use build in 12swap file to make that. NO ONE FORUM KNOWS HOW TO TURN IT ON.

to coocker : PLZ Write us a commends to do this. how to turn this on ,set partition,set swapines, and rest. or just send it to me and i will give that to rest of forums. or type it here. My mail:

Enable swap

In Console:

setprop persist.sys.swapsize 65536

/etc/init.d/12swap assumes your third partition is swap, if it's not, you'll have to edit the script

Swappiness is set to 10 by default, which I think is a good default.
You could maybe set the value vm.swappiness in /etc/sysctl.conf, or use sysctl -w vm.swappiness=$yourvalue in /etc/init.d/12swap to change it.

Telephony Problem

Since Version c i have many times information "telephony problem" and must reboot phonr

similar here

Ive got the same but in version e. c was fine for me. I will revert

USB host

Is USB host enabled in your custom kernel? Could you please post a link to the used kernel config?
Thanks for your great work!

usb otg

the config in use can be seen here:
the OTG option is enabled, but it doesn't make it work as such in the 2.6.32 omap/motorola kernel

Got error with telephony layer

I've installed 7.2.4d (2.3.7) 27.12.2012 and got problem on telephony layer (ZRAM enable, default overclock). Its required reboot. How to fix it ? Thanks

even with f

Still having telephony layer problems, rebooting very often.

I have same problem with

I have same problem with version e.

1000mhz stability issues

The 1000mhz maximum cpu speed makes applications crashing on my Milestone for example when playing games. I tried with 800 Mhz and everything works well now. Could you maybe also add a 900Mhz governor to the CM settings menu?

now it looks like the crash

now it looks like the crash isnt caused by the cpu speed. Seems rather to be a general stability issue.

check the kernel log

After a crash, check if the /cache/logger/AOL_kernel.ap.bin.old contains error -110 (-ETIMEDOUT) from mmc device. Mine has plenty of them, and they do not mean the operation timed out - there is a flood of them with basically no delay in between - for some reason the OMAP HSMMC driver gets a continuous status 18000 (first is always 108002). It feels like it is a MMC controller issue with particular items (like miine :( ) and I think it is software-solvable: it persists in CM 7.2.2 as well, there it causes a reboot and after it the card is fine again. I tried the hsmmc driber from 2.6.35 kernel with no luck, now leaning towards forcing mmc controller reset/init upon getting a data timeout; don't know how to do it yet.

For swap: A nice addition

For swap: A nice addition would be, when "swapsize" is set to "1" - then the full size of the swap-partition should be used. I think that this would be better and easier to set. Thanks