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


A small mistype in 12swap

I think it is -gt (as greater than) not -qt in the if [ $SWAPSIZE -qt $SWAPPARTSIZE ]; then



calls: high power consumption

7.2.4c: did anybody else notice a high power drain during calls? i mean 1% discharge for every minute a call lasts...

still not very stable

Looks like an issue with either bluetooth or docking/car station when swap is enabled.. Left with BT ON in a docking station overnight and saw a bootloop in the morning. Removed battery, the phone run fine until launched Market app a few hrs later (still BT and swap ON) - it won't launch but a blank screen instead which caused a reboot minutes after, then a complete freeze on the '2nd boot' screen - disconnected battery, disabled swap - so far working.


Well now I think the code is OK but my item's MMC controller is simply broken, and it is worsening: downgraded to 7.2.0 and can no longer use 2nd ext partition (mean, it works of course, but then out of a sudden the card just responds with timeouts only :(
Odd thing, though, that video recording works well here even for Wide profile and even at just 600 MHz, but it freezes within seconds from start on any 7.2.3+ edition at 1000 MHz...

Seem santa will bring incredible ROM in this X'mas

This X'Mas & New Year will become greater than before, everyday great ROM was came for our "ancient phone" and now the greatest ones will come. Amazing, even now born RAZR Familly, the successors, but recent ROM always available in every new Google's code updated. I still keep this phone even newest phone came every day, you may kidding me: it is about money, but yes, that the fact :P You may not interest to know I use the ROM's or not within, but I believe if you know that I have done with it. I always came to xda-dev forum to find some new for my phone, I am sorry, I have no post to reply you threads since I have no post, ... **You know, it is required at least 10 post on others place to make reply on you thread, ... Yeah, even to just say: Thank You

Best Regards, Hendra Ahya


did anyone try the supercharger script? with 7.2.4b my milestone was already really fast and totally smooth, and with the supercharger script it seems even a bit better...

Yhea, I was using the V6

Yhea, I was using the V6 Supercharger by Zepelinrox on 7.2.4b before trying out CM9. I did notice an improvement in memory usage. Specially in low memory situations (playing "heavy" intensive games).


Hello guys!

Could you tell me what are the default settings of performance (JIT,VM heap etc.) in CM7 7.2.4b? And what is the best combination of these settings eventually, to reach the best performance from Milestone?


I was using the stock vm

I was using the stock vm configuration, JIT disabled (I do believe it is better if it is off on our phones) and using a swap file and Zepelinrox V6 Supercharger . The phone was flying...

7.2.4b & 7.2.4a

Using the 7.2.4b and 7.2.4a i'm experiencing music cracks and interruptions while performing other actions on the phone, e.g. scrolling, starting apps, browsing. music playback also stops for a fraction of a second when the phone blanks out or gets into standby. any ideas?

hi had the same problem with


had the same problem with sound cracking, even when I was not touching the phone and the screen was off. In addition, the phone felt sluggish at times. I disabled JIT and surface dithering, rebooted, and now the sound playback is smooth, and the slugginess (?) seems to be gone as well.

Just one thing: When a rebooted for the new settings to take effect, I got stuck with an error at the bootloader screen, and I had to use the recovery mode key combination (PWR + x worked for me) for the phone to boot OK

Same here, also, the system

Same here, also, the system seems to sometimes "forget" my ringtone configurations, mp3 or android sounds, with or without the SD card

no ideas, anybody?

please help...


a complete wipe and reinstall solved everything for me.

Additional swap?

What do you suggest doing for creating additional swap file?


I <3 you

Random, frequent reboots on 7.2.4

I am using CM ROM on my milestone for more than a year now. Sorry to say but 7.2.4 is the worst of all roms till date. I tried everything to get it work but no luck.
-I Formated SD card completely
-Recreated partitions on SD card as - FAT32, ext4, linux swap
-Used latest OR by FuFu
-Wiped everything - cache, data, ext partition, sd card
-Did factory reset
-flashed 7.2.4 rom again, flashed latest google apps
-Used swap script by FuFu

But, my milestone keeps on rebooting randomly. It's totally unusable, even opening a messaging app makes it to reboot. Frustrated :(
I really want to use the latest version and enjoy "kabaldan's" hard work on this rom.

Please suggest me any steps if I am missing anything.
For now I reverted back to 7.2.0 stable which work smoothly for me.

Thanks kabaldan for this ROM. <3 :)

-Manoj , India (MOTO Milestone - CM 7.2.0)


can u tell me which version of ROM is the best in terms of speed and stability.
currently I am using CM7.1 RC3 and overclocked it to 800Mhz.
battery backup is not bad. but when I use my Bluetooth S9 headset, battery drowns like hell.
thank you in advance.
my E-mail :


Hey, try to increase the vsels in /system/etc/init.d/10overclock ! :)


Thanks man, found about that in one thread at xda
Working perfectly now. :)


I am glad. :)
BTW, try the new version, overclock is fixed, no need to patch after.

Barna from Hungary

Obrigado do Brasil

Nosso agradecimento aqui do Brasil por essas atualizações! Não sei falar inglês. Tenho um único problema, quando vou ligar para algum contato, as vezes, aparece ligação encerrada.
Mais uma vez, OBRIGADO, THANKS!

help Br guy and for nadlabak

se sua operadora for a claro talvez desligando o claro ideías resolva seu problema, é só usar o aplicativo simtoolkit para desligar


Hey nadlabak, think i found a little issue, everytime phone in standby (sleeping) when i full press cambutton the screen back light turn ON, u can see it if ur room is very dark !
sry for my english and thank you soo much for CM7 update's cus is the best rom ever made to milestone !

WPA2 EAP-TLS not working on 7.2.4


After upgrading from 7.2.0 to 7.2.4, my WiFi configuration that uses WPA2 with EAP-TLS has stopped working.
As far as I can tell, it goes wrong early in the authentication process; the RADIUS server doesn't show any sign of activity. I haven't changed anything from the setup in 7.2.0, where it was working flawlessly.
Let me know if I can do anything to help debug this. I have full control of the RADIUS server and infrastructure in-between, just not a lot of time.


an old bug

and a pity that it hasn't been fixed :(

Fixed in 7.2.4b

Trying 7.2.4b, I can connect again to my EAP-TLS protected WiFi network :-)

Thanks, Bert

GApps not working/7.2.4 (2.3.7) 23.10.2012


I'm currently using "OpenRecovery 1.46 with 2ndboot to 2.6.32 kernel" and I flashed the "7.2.4 (2.3.7) 23.10.2012" file. Unfortunately I encounter the following problems; wich after a few wipes and reinstalls are still present:

1. can be installed but no Google Play Store shows up
2. I get this annoing broken-glass-screen (prior to CM9-boot-animation) stating "2ndboot/kernel restart in progress"

How can I fix it? :)

THX for your hard work!


annoying; and of course I'm talking about CM7...

Boot freeze

For me on any of the 7.2.2 / 7.2.1 / 7.2.0 versions during boot it sits forever on the Motorola symbol. Booting works fine on 7.1.5.
I've tried clearing cache / factory reset and I've also tried re-flashing the vulnerable recovery.
Any ideas?


Hi, it works the same way for me. Every time I update CM7 on my Milestone, I got stuck in booting screen with the M logo. I have to remove the battery, once more enter the OR menu... and doing so several times leads to correct finalization of the first boot process after the reflash. Not a big issue, I don't flash every other day, but indeed it would be nice to get it fixed.

Boot freeze

remove or format that ext2/3/4 partition on your sd card... or simply try to boot without sd!


Update from 7.1.2

i'm a absolute rookie... what steps are necessary to update from 7.1.2 to 7.2.0? do i need the newer openrecovery?

is it beneficial or recommendable?

Cracking WiFi passwords with the Milestone?

Hi nadlabak,
is it possible to integrate this patch to the WiFi chip firmware?


Hi! Thanks for the new GPU drivers, now some video streaming applications I use work perfectly (which didn't work before). In the previous releases I just got audio and no working video (just stripes and colours). Now all is fine! Keep up the great work!

Nandroid & e2fsck

Always hang on dumping /data when running nandroid backup. Performed chkdsk and found SDCard no problem. However, when running e2fsck in OP console and always return error. Please kindly help and provide instructions for doing it. Thanks

NEW OPENRECOVERY : big SD cards in nandroid+CHARGING in Recovery

You have OLD recovery!!! I have a 32gigz SD and i have the same problem. BUT there is a new openrecovery, updated TODAY!
You can charge your phone under recovery too! :)

Be sure to check out the xda forum at:

Forza Milestone1! :)


CM7 to CM10

After really enjoying the CM7 experience, I have tried the latest nightly of CM10 (after slimming down the zip)... not even marked as a RC, and it has given me yet again a new phone! Thanks for all the work on CM7, will be looking forward to your next update of CM10, which is now my daily use saddle on this incredible workhorse called Milestone.


How can I speed up the JavaScript loading in my browser?
It's irritating when I'm enable JavaScript, some sites loading more than 2 mins, but when I'm disable it this time reducating to 20 secs...

I only said "Thank you very mach"

Even if now there are quad-core smartphones everywhere,you continue making the new ROM for milestone ,I only said "Thank you very mach".

Problem with CM 7.2.1

Hello, with the new update I can not detect or connect to the network Movistar Venezuela. Change the Baseband to LatAm (Movistar) 2100/1900/850, reboot and still not working.

Excuse my English, I'm using google translator.

CM7.2.1: Thanks!!

Thanks for your work on 7.2.1, trying it out now. First impression is that ram usage has improved... things seem to be running smoother in general. Will have a sense of the battery usage in 24h!

Yes, 7.2.1 seems to work

Yes, 7.2.1 seems to work quite well - At least the functions I tried ;)
Keep up the good work!

seems like better battery, gmaps freak-out

OK so after a few days of CM7.2.1, it looks like battery use is more efficient... not sure why, nadlabak doesn't specify particular battery related fixes but probably a result of general improvement. However, the stone freaks out completely after using gmaps, and I have to pull battery to get it usable again. Also have had some problems with incoming calls being immediately cut... any similar issues?

Thanks for your work!

Thanks for your work!

İt is time to switch now.

Tank you nadlabak for the support since cyanogen mod 6 versions. It saved my phone and made it fast but it is time to switch to a new firmware I guess.

Check this firmware out ( MIUI is a very slick and nice looking UI. Download the firmware at step 2 and proceed as usual like the way you do with nadblacks firmwares. Dont forget to do "wipe data/factory reset" in the boot menu options before installation. It installs default in Chinese language but you can set it to english by choosing correct menu options. (menu -> settings-> second tab from the top ->in the second block you see a keyboard icon, choose that -> choose second row from the tab -> select english (英语) )

It does definetely worth installing!


MIUI for Milestone is based on CyanogenMod for Milestone...

YouTube FC


Do you have any solution for youtube fc in CM7 Milestone? Latest Update installed. Thanks.

Unlock Bootloader Hope

Milestone is not on the list as yet but we can only hope :)

wifi not working

flashed my phone with 7.2.0 but the internet has stopped working, only works intermittently :(
now going top try 7.2RC2, just in case this one works.