Kernel Sources for Motorola Devices Appear to Differ from Binaries on Live Devices
Android’s foundations are born in open source as it was released as an open source operating system and has grown to be the most used operating system in the world. Without licenses like the General Public License (GPL), open source could not have been enforced in the way that it was. XDA itself has grown from the open source community, with a thriving community built around the Android Open Source Project and the hundreds of devices that run Android.
The GPL has protected so much of the growing Android community over the years. It allows developers from anywhere in the world to take a device and use the kernel source code to make something great out of it. It’s a recipe for brilliance in some cases, with some amazing feats of intuition and development shown daily by our amazing developer community. To build an AOSP-based ROM for any device, for instance, it’s imperative that we have access to the kernel source code to ensure that the ROM can boot properly.
With that, I’m sure it’s understandable why we dislike when companies don’t abide by the GPL. It’s attacking the very ground from which Android grew, and in turn, our great developer community surrounding the platform. Open source is pretty great, the GPL is pretty great and breaking the GPL (which now seen as violating a legally binding contract) is pretty bad. That hasn’t stopped companies like OnePlus, IUNI, Huawei and even Samsung in the past from not abiding by the GPL, however. And now, we’re hearing from our developer community that Motorola is (again) skirting with their obligations under the GPL.
Motorola Violating the GPL with Incomplete or Late Kernel Source Releases
Motorola has violated the GPL in the past with delayed kernel source release, but the situation now seems to be even worse. XDA Recognized Developer Somcom3X has pointed out that they are violating it again, but not only are kernel sources not being released for a multitude of devices, but for those devices which they have released sources, there are some incomplete parts to it. For instance, the kernel source for the Moto Z apparently has missing camera drivers, according to the developer.
Motorola’s GitHub page has been flooded with requests for the Moto Z kernel sources, and it was always only “a few days” away. But it took 8 months for the kernel source to finally be released. Even then, this doesn’t appear to abide by the GPL as kernel sources that companies release are required to match the binaries which ship with the device.
Why the delay?
We don’t know for sure why Motorola is apparently not releasing proper sources, but according to Somcom3X it could be done to scrub references to future devices which may be referenced in the source code, or to hide features they are working on. It does not make much sense that they are willingly taking so long to release kernel sources, and then removing drivers from them.
Motorola should be aware that by doing so they are not abiding by the license. Sources need to be released at the same time as the binaries are released, yet it has taken Motorola months. These delays do not make sense — it should not take months to release a kernel source for a device, let alone an incomplete one. Smaller OEMs can (and do) comply with the GPL, with ease. We expect better from Motorola.
What are the consequences?
In theory, Motorola could be sued for violations of the GPL, but that probably won’t happen. Many companies have violated the GPL at some stage and not faced legal action, but there have been cases where companies have faced legal action. The Free Software Foundation can and has enforced the GPL in the past.
The best thing we can right now is to push for Motorola to release full kernel sources. A company should not release kernel sources which do not work. These violations of GPL attack the open source community as a whole, and we hope that they will eventually release proper, timely kernel sources for their devices.