For as long as there have been Android phones, manufacturers have been skirting requirements of the GNU General Public License. Chinese manufacturers have been repeat offenders, although they’re not the only ones who’ve been tardy in releasing kernel source – mandated under the current GPLv2 license.
So, what is the GPL and what does it have to do with Android?
GPL stands for the General Public License, currently in its second version (hence v2). The Android kernel is based on Linux, software which is licensed through the GPL and made freely distributable as long as parties release the source of any modifications made to that code. Each Android device has a slightly modified kernel, hence the need for each phone, tablet or device to have its individual source released. That source code also has to be “complete” – to the point that someone can compile the source to create a working kernel.
While there’s no exact time-frame for release, it’s customary to see larger OEMs making kernel source available around the time a device hits the market. HTC has previously stated that the time-frame equates to around 90-120 days, although this has been refuted.
So, companies who release Android devices basically have to make the working kernel source code for each device they release. Simple right? Apparently not.
In the last couple of years a number of Chinese manufacturers have been making inroads into the world’s smartphone market, using Android’s open source code software as the basis of their device’s operating systems. Of the five biggest smartphone manufacturers in the world Chinese companies make up 3: Huawei, Lenovo and Xiaomi.
Although legal requirements to release source are not as heavily enforced in eastern markets, in western markets agencies such as the Electronic Frontiers Foundation are certainly interested in violations. With companies moving to western markets, dotting those i’s and crossing those t’s is something that many companies will have to watch.
Xiaomi is well known for violating the GPLv2 licence – the company is still yet to release the source for their Mi3 kernel, months after the phone was released. With their recent move to sell accessories in the US, they will certainly have to look at ensuring that they are producing legally required source code, as mandated.
Another Chinese manufacturer aspiring to break into the profitable western markets is Oppo, recently launching an Australian presence as a first step on the way to enter other markets. Oppo now sells six phones locally via their Australian website, with a presence in Australian phone retailer AllPhones. Oppo began selling their low-cost 4G compatible smartphone – the Neo 5 – in September last year, after announcing it a month earlier. Oppo has yet to release the kernel source of the Oppo Neo 5 and currently has no ETA for doing so.
A local CyanogenMod developer of note has recently made public requests to Oppo to release kernel source for the phone, adding repeated requests which seem to have so far gone without an ETA for the release of source.
While there’s no specific time frame within which a manufacturer must release their kernel source, 3 months seems to be the most that the community will tolerate (as HTC has discovered). The Oppo Neo 5 was released in Australia on the 2nd September last year, meaning that next week it will have been out for 6 months – with kernel source yet to surface.
After reaching out to Oppo for comment and an eta on when they would be releasing the kernel source for the Oppo Neo 5, they advised that:
they are currently working hard to be able to release the file asap and will let you know as soon as this happens.
So what happens from here? If Oppo continue to be unable or unwilling to provide the kernel source for the Neo 5 then they will be in violation of GPLv2. Any kernel developer in the world who has contributed to the Linux kernel no matter how big or small can hit them with a violation notice.
At this current moment there are a number of Australian developers who fit into this category, and they keep an eye on violations by companies in Australia, with Kogan the last target. Action against Kogan didn’t occur, as they released the source before lawyers became involved, but the implications are clear – if Oppo does not release the kernel source they will be in violation of GPLv2 and legal action is a possibility.
If a company was to violate the Android kernel GPL by not releasing their source code, they could be prevented from ever distributing the software ever again – that is, they’d never able to sell another Android device they have manufactured.
While this is not Oppo Australia’s fault it most certainly is their problem – they will have to deal with any consequences that may arise regarding local availability of their devices should they continue to deny the source to the developer community.
Oppo Australia needs to start putting pressure on their parent company in China, to release the kernel source for their products in a timely manner before consequences arise.
The kernel source for company’s two newest phones – the N3 and R5 – is available already, although the R5 release seemed to lag behind the N3. Some developers have speculated that Oppo’s internal processes for release of this source code are improving. There’s also speculation that the delay in releasing the kernel source for the Neo 5 is an overreaction on the company’s part to legal action launched by MediaTek last year against a number of open source repositories.
We’re waiting to hear back from Oppo with further information on a release date, or from any developers with a claim to the source code released under the GPL.
Is a manufacturer’s adherence to the GPL license important to you as a consumer, or a developer? Tell us in the comments.