A Note On Unofficial Ports, and How To Get It Right

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.

  • siveZ

    I’m wondered Samsung Spica still not included in official CM-supported devices. The only broken thing is DivX (CM6). And our team is currently working under CM7 port.

  • hetaldp

    Have chat with Major CM Guys all are HTC / Qualcomm Biased people. and not Support Samsung Device is the another reason. I know how HTC have made System Partition Write only and changing process. I know how HTC is vulnerable to Bricking due to Boot loader Loading / Samsung is good due to Different Download mode Option if they can support Nexus S why can not world Best Selling Galaxy S which have sold 11 Million in just 3 month. Nexus S and Galaxy have only Difference of Data and System Partition change nothing more which sud care off.

    So Cyanogen People is HTC Biased again…

  • stryfe1986

    @hetaldp

    well dude you have to understand these are the devices the dev’s own. Unless you intend on donating whatever samsung you want to them so they can have to troubleshoot, debug, test, etc… are you going to lend them your phone so they can run their tests? then go ahead and that may help your chances at seeing CM in your Galaxy S.

    these guys are using their personal device to work on this, all the times there is a bug or an error, or malfunction its happening on their phones so it wont on ours.

    in the meantime dont rag on these guys for developing a software to make your life easier, seriously they ask nothing but feedback to offer something great for you, yet you come in here and rag on them for it? you think this will help them want to develop it for users like yourself?

    It would be awesome if they did have it for Galaxy phones, the only reason why i got a G2 over the Vibrant was due to CM not being available for it, But I love the CM mod therefore I chose a phone that would run it, and im glad I did, G2 is the shit!

  • vitorgatti

    CyanogenMod > all

  • cadavre

    Yeah, but… CyanogenMod way of supporting new devices is kind unfair… I’m developing CM for Samsung Spica and there is no way to CM work on our device without making framework changes. Most (60%-70%) are based on implementations like if() then{} so they will work with all official CM devices and Spica but rest is depending f.e. on Samsung’s crappy RIL which is not open-sourced and we use binary from Eclair.

    For now – everything is work fine for Spica (except DivX as it was mentioned) and we’ve faced moment when we’re trying to improve CM in device-independent framework places – like improving Power Widget, SensorManager or adding new lockscreen abilities – and it’s very difficult to commit that changes to gerrit from Spica’s already-changed framework.

    Maybe adding some future to take particular files not from f.e. frameworks/base/ but from device/ could make things easier?

  • cadavre

    Oh and one more thing… Don’t you think that if there will be possibility to gather all Samsung devs in one place – they could find solutions faster?

  • http://www.cyanogenmod.com Cyanogen

    @cadavre: The amount of framework hacks we’ve done just to support the different Qualcomm devices (without breaking Nexus S, Droid, and their device-specific hacks) is insane, but it’s possible for all this stuff to coexist. Code review is what’s key. I really want to see Samsung devices supported and I know it can be done.

    @hetaldp: Your baseless, inflammatory statements about us are getting old. Contribute something instead of complaining.

  • koudelka

    Is there any documentations for developers on what needs to be done before a device can be included? We (liquid devs) managed to get our device added here http://bit.ly/cmprogress but now we are stuck. The developer who had contact with cyanogenmod devs is gone, and we don’t really know what needs to be fixed or what to do to get included. A checklist would be nice (I have looked, but can’t find). Or should we just send devicetree to gerrit?

  • Shahar Or

    Dear Ones,

    CM devs, I am thrilled that you are making this statement. For me, as clients come to me for help with android specifically, CM is always the first choice. Like you said, Cyanogen, it is an Android distribution.

    CM porters, please work with the intention that your port will be included in official CM. This makes life easier in the long run for you, as well.

    I am sure that the official CM maintainers will do their best to help with these merges!

    Blessings,
    Shahar

  • flibblesan

    I’d love to see the CM6.1 and CM7 ports for the ZTE Blade devices become official. The guy doing the work is using github so should be completely possible for him to send modifications upstream for review. At the moment it’s just him doing the work so it would be nice to have some more developers. I guess for any CM devs to assist they would have to have one of these devices?

  • Omnigear

    recruit people that have the galaxy class phones? just a thought.

  • http://www.trueconstruction.ca TH3B4R0N

    What do you need from me/the community to officially support the Motorola Milestone? I’m using an unofficial version now (http://android.doshaska.net), and a very good job is done there, but there are a few issues, and of course just a few steps behind. I’d like to see this as an official port.

  • djUniversal

    Those who are asking what to do to get x device included, there is a HEAP of information on this site.

    Get started with GIT: http://library.edgecase.com/git_immersion/
    Get started with gerrit: http://wiki.cyanogenmod.com/index.php?title=Howto:_Gerrit

    Look through the wiki. Everything is there to get you started.

    If you don’t write code and someone is developing unofficially already maybe get things set up for them and be a code submitter for them to help get things integrated back into CyanogenMod. It really is worth it; timely releases, nightly updates, official builds with all the latest goodies!

    And Remember: If you want something for free that is as good as CyanogenMod, you might just have to roll up your sleeves and do a little work ;)

  • IzaacJ

    Hello.

    I’m running the unofficial nightly builds for HTC Leo (aka HTC HD2) and I must say, they work great. In my opinion I think they should be reviewed and hopefully get official. The official thread is here if you’d like to have a look: http://forum.xda-developers.com/showthread.php?t=940684

  • onecallednick

    I’m running CM4Morrison Beta 2 and love it, but I want to help make an official build for the Moto CLIQ. It’s actually a really nice phone once you get the stock ROM off. Right now CM4Morrison doesn’t support the Camera, but other than that I don’t know what’s stopping the dev from making it official. How can I help? How technical does this get? Could a newbie with hardly any programming experience be of use?

  • neumi1337

    Hello,

    i’m wondered why many winphone devices with nand android aren’t supported by cyanogenmod,
    instead of supporting unoffical android versions with cyanogenmod on windowsphone devices like htd hd2.
    Will there come any support for these phones?

  • pulseuser1

    The T-MOBILE PULSE

  • pulseuser1

    The T-MOBILE PULSE (HUAWEI U8820) is a good candidate for CyanogenMod. Its specifications are somewhat similar to the ones on the HTC HERO, so it would be possible to to port CyanogenMod to it. The PULSE already has a good community supporting it on the Modaco Forums: http://android.modaco.com/category/413/t-mobile-pulse-pulse-modaco-com/ . And it is also running an ‘unofficial’ version of CyanogenMod 6.2 Thanks to TOM G, ANTONIO PT, TOTIARENALIN, RICHARD ARKLESS, TW ROCK and many other developers.

  • dmystic

    is the reason for not supporting samsung phones that they using their own CPU? does that mean there is a larger chance for the galaxy ace to get a cyanogen port? since that one has a qualcomm if i remember it right

  • Radek God

    I hope we see someday more Samusng galaxy, like Galaxy 3 for example :-( …