There’s been some recent talk about unofficial versions of CyanogenMod being created and released on sites like XDA, with large amounts of missing features and broken functionality, and I just wanted to talk about our position on this.
An “official” CyanogenMod version is one that uses our code review system, our source repository, and our mirror network. It should look, act, and feel like CM on any other device, and more importantly, it should follow our release schedules (which is a “when it’s ready” kind of thing, but we do plan our final/RC releases when we feel it’s ready). Most importantly, no major hardware functionality should be broken.
We want to see CM available for every device out there, and our infrastructure (and our developer community) is there for anyone to use. We spend a lot of time making new releases of Android backward-compatible with devices that are not ready for them, and we also spend much time making all of these (sometimes not so pretty) changes co-exist together without breaking other devices. The more eyes on your code, the better it will be.
That said, as much as we’d like it to be, the CMSGS project is not yet an official part of CyanogenMod. There are also a number of other unofficial ports out there which haven’t been submitted to us that we’d love to include. If you’re interested, stop by #cyanogenmod-dev on Freenode. If you didn’t get it from our mirror network or the CM forums, don’t expect it to be up to our standards.
The biggest thing to keep in mind when porting to a new device is to think about how your change is going to affect other devices. This is the biggest reason why we aren’t supporting Samsung devices other than the Nexus S yet. Don’t change hardcoded default values just to suit your device. Use the configuration options available, or add new ones with the original values as defaults. Do a build for another unrelated device after you make your changes (it helps to have another device to test with, of course) and verify it as well. Android was made for this, so do it right.
Like I’ve said so many times before, CyanogenMod is all about the community. And our community can help you too. I’d love to see more of these ports contributed to the project- it’s only going to make things better. We’ve grown from just a mod to what I’d call an “Android distribution” and we need to keep our standards high.