Almost every OEM has taken the liberty of creating its own incarnation of the Android OS. While some ROMs are simply better than others, we aren’t here today to discuss the quality of Sense UI, TouchWiz, or even EmotionUI. These ROMs are ultimately (and sometimes loosely) based on AOSP. They are also developed by professionals who put lots of effort to make them stable, “beautiful,” and quite often commercially bloated. Sometimes the front-end user interface is a reason why people decide to purchase a particular device and make its OEM quite successful.
As is the case with various OEMs, Oppo developed its own operating system, which they dubbed “ColorOS.” One of their first flagship phones, the Oppo Find 5, was released way back in February 2013. The device shipped with a version of their custom OS based on Android 4.2.2 Jelly Bean, but Oppo promised to deliver updates as soon as possible. In reality, however, device update support was sort of lackluster. Months later, many users were left with false promises and were forced to use custom ROMs. Suddenly, nearly two years post launch, Oppo decided to finally release an update in alpha form. Lollipop? Forget about it. Oppo Find 5 users can now flash Android 4.4 KitKat. Despite everything, it’s still a nice move by Oppo. Unfortunately, Oppo didn’t take the time to make sure that the release was fully stable, and indeed it lives up to its Alpha name. Moreover, they also did something quite unexpected.
The Chinese OEM decided to release a firmware developed by an “external developer,” who in turn based their ROM on OmniROM and used PatchROM to convert it to ColorOS. The update has been released on the Oppo forums as “almost official.” In the initial version of the post, Oppo’s Product Manager (!) forgot to add credits to Omni team and violated the GPL license by not linking to the kernel source. As a cherry on top, NFC and few other things are broken. To be perfectly clear, they work fine on most currently available custom ROMs for the device.
One of OmniROM leaders, XDA Senior Recognized Developer Entropy512 found out that this firmware is based on Omni by finding its elements in build.prop. Entropy512 pointed out that external developer didn’t even bother to build OmniROM on his/her own and released a version that is far from being stable and more than likely received money for this poor job at porting. Probably the most embarrassing thing is that this release has been announced on Google+ as “update for those who never lost faith”.
While it is in theory legal for someone to use Omni as a base (and in many ways, we encourage it) – at a minimum someone who uses Omni as a base must comply with the GPL for the kernel. (Even if they used a prebuilt binary that came from us, that means they have to point someone to our kernel source at a minimum) That said, using Omni as a base without giving credit to the team that did the work is in incredibly poor form.
Worse, based on eko_cahyono’s posting of a build.prop screenshot, it’s not just based on our source code – it’s just a hacked (and, if NFC is broken, BADLY hacked) Omni nightly with ColorOS’ UI shoehorned in. Whatever “external developer” created this couldn’t even be bothered to build Omni from source and I’m extremely disappointed in Oppo for promoting such work in the official ColorOS forums as opposed to third-party development where it belongs. I suspect Oppo did not know what this guy did, but to Oppo – you REALLY need to more careful about reviewing what your contractors provide to you. (I seriously hope you did not pay for this work… If the build.prop Eko posted is indeed the build.prop from this package, you got ripped off if you spent any money on this…)
The Product Manager who posted an update apologized for the entire situation and edited the post adding necessary information. Still, releasing an update when Google stopped to support it shouldn’t be considered as a success. Poor effort, Oppo.
1.This ROM is actually a ported ROM developed by the external developers, but not an official Rom developed by OPPO team. And this ROM is developed based on Omni. Due to the conflict between limited engineer resources in the company and more and more users’ request for updated firmware versions based on Kitkat for our old models such as Find5 and N1, we engaged external developers to make this Rom which is based on KitKat by the method of Patchrom, with the good intention to let users who are really keen to experience the KitKat update experience the new updated Find5 ColorOS 2.0 based on KitKat. It is my mistake that I did’t state clearly when releasing this Rom. I feel deeply sorry for that.
2. About the NFC problem, I will communicate with the developers and try the best to fix it.
3. About the GPL rules, firstly we are really sorry for not giving credit to Omni for using their kernel source and I’d like to thank Omni team for their kernel sources. Here is the link for the kernel source: https://github.com/omnirom/android_kernel_oppo_find5. I will also make this clear in the main post.
Hope you can understand, thanks!
This situation has shown that updates, even unofficial ones, can certainly be done better. We can look at Oppo offshoot OnePlus as a reference. There is perfectly functioning AOSP for this phone, and the team fully complies with the GPL license while delivering a fully usable ROM. Oppo failed at various points with this release, and hopefully will take this lesson to heart. Every firmware should be properly tested before releasing–even if released as an “alpha.” Using PatchROM on pre-compiled ROM is a dubious tactic, especially when an OEM aims for complete stability for its users.