CMStats – What it is, and why you should opt-in.

March 21st, 2011

CMStats has been included with CyanogenMod for quite some time.  Unfortunately, it has been hosted on Google App Engine and unable to keep up with the large number of requests it receives.   I recently reimplemented this in Pyramid and set it up to run on a server provided by TDRevolution.

So, what is CMStats?  On a fresh install of CyanogenMod you will get a notification asking you to opt-in to “CyanogenMod Statistics”.  A lot of people put a great deal of work into CyanogenMod, and with any project it is fulfilling to see the reach of your product.  CMStats enables us to do this by submitting some non-invasive information about each device that installs CyanogenMod (provided that you opt-in, of course).  While we could just track downloads, this does not give us an accurate number of the total number of unique devices on which CyanogenMod is actively installed.

When you opt-in, each time your phone boots a “checkin” is sent to our servers. On a side note, Google does the same thing, however theirs is mandatory. The data sent includes an non-reversible encrypted hash of your IMEI or MEID, allowing us to track unique devices without compromising privacy. In addition to this, we also track the device model (Nexus One, MT4G, Nexus S, etc), cellular carrier, country (reported via cellular carrier), as well as the version of CyanogenMod that is installed.

The most recent versions of the nightly builds have a new (and working) version of CMStats included. If you would like to help us test this functionality out, head over to the Mirror Network and download the latest nightly build for your device (build #28 and above include this). If you previously opted out, you can opt-in again by going to Settings -> CyanogenMod Settings -> System -> Anonymous statistics and checking the “Enable Reporting” checkbox.

Currently there isn’t a public interface to the actual statistics we collect, but I will be working on that over the next few days. As always, the code for these packages is opensource. On Github, CMStats is the application that runs on your device and CMStatsServer is the server side application. As always, contributions are welcome.

If you have any suggestions, feel free to send me a tweet @ChrisSoyars.