Xiaomi is a company that's largely renowned for their devices that offer excellent specifications relative to price. Smartphones is just one of their many ventures, but it's how the company has made its name known globally. The company's rapid expansion in markets like India has brought millions of new users onto smartphones running Android, which has resulted in a wave of new users on our forums looking to customize their devices. Unfortunately, Xiaomi has a poor history of complying with open source licenses as they have shown time and time and time again that they are willing to violate the General Public License v2 (GPLv2) by failing to release kernel source code for their devices. The GPL is what makes the developer community on our forums possible, as all Android phones run on the Linux kernel and without access to the source code it would have been nearly impossible for custom AOSP-based ROMs to take off the way they've done on our forums.

All software licensed under the GPL must have its source code be made available upon request. For smartphones running Android, this means that companies like Xiaomi must release the kernel source code for any compiled Linux kernel binaries that are shipped on devices. To this day, however, a huge amount of Xiaomi devices have been released without any available kernel source code releases, despite frequent requests from the developer community and technology media. We decided to reach out to Xiaomi to once again ask when the company would release kernel sources for each of its devices, but this time instead of silence we were met with a surprising announcement from a Xiaomi spokesperson: the company plans to release the kernel source code for any new device within 3 months after its launch.

"As an Internet company, Xiaomi respects the GNU General Public License (GPL) and is committed to an effective compliance.

We are deploying all our resources to achieve a sustainable growth and have been making efforts to speed up our kernel release. We want to make sure that every release is safe and stable.

So far, we have published the kernel sources for many devices. Moving forward, we target to release the kernel source of a device within three months after its launch." - Xiaomi Spokesperson, in a statement sent to XDA-Developers

While we respect this announcement and Xiaomi's renewed commitment to abiding by the GPL, we do still need to point out that 3 months is quite a long time especially when compared to companies like Google, Sony, and OnePlus that regularly release kernel source code shortly after release. A 3-month time-frame is certainly a huge improvement over Xiaomi's previous behavior when previously the company had no public commitments to abiding by the GPL. Xiaomi could take weeks, months, or even years to release the kernel sources for some devices, so 3 months is certainly better than nothing.

The company has provided us a list of devices for which they have already released the kernel source code for.

List of Xiaomi devices with Kernel Source Code Availability

Branch

Supported devices

armani-jb-oss

Redmi 1S

armani-kk-oss

Redmi 1S, Redmi Note Single SIM

cancro-kk-oss

Mi 3, Mi 4, Mi Note

cancro-m-oss

Mi 3, Mi 4, Mi Note

cappu-n-oss

Mi Pad 3

dior-kk-oss

Redmi Note Single SIM

ferrari-l-oss

Mi 4i

gemini-m-oss

Mi 5

gucci-kk-oss

Redmi Note Dual SIM

hydrogen-m-oss

Mi Max

ido-l-oss

Redmi 2, Redmi 3

jason-n-oss

Mi Note 3

kenzo-l-oss

Redmi Note 3 Full Netcom

land-m-oss

Redmi 3S, Redmi 3X

latte-l-oss

Mi Pad 2

libra-l-oss

Mi 4S, Mi 4C, Mi Note Premium

markw-m-oss

Redmi 4 Premium

mido-m-oss

Redmi Note 4X Standard

mi1_kernel

Mi 1

mi2_kernel

Mi 2, Mi 2A, Mi 2S

mocha-kk-oss

Mi Pad

oxygen-n-oss

Mi Max 2

pisces-kk-oss

Mi 3 China Mobile

riva-n-oss

Redmi 4A, Redmi 5, Redmi 5A

sagit-n-oss

Mi 6, Mi Mix 2

sagit-o-oss

Mi 6, Mi Mix 2

santoni-n-oss

Redmi 4X

scorpio-m-oss

Mi 5, Mi 5s, Mi 5s Plus, Mi Mix, Mi Note 2

thomas-kk-oss

Redmi 2 Standard

tissot-n-oss

Mi A1

tissot-o-oss

Mi A1

whyred-n-oss

Redmi Note 5

The source code for each branch can be viewed here. Xiaomi has released way more devices than are listed above, so we took it upon ourselves to compile a list of Xiaomi devices without kernel source code availability.

List of Xiaomi devices without Kernel Source Code Availability

Code-name

Device Name

helium

Mi Max Pro

hennessey

Redmi Note 3 (MediaTek)

hermes

Redmi Note 2

lcsh92_wet_jb9

Redmi Note (MediaTek)

nikel

Redmi Note 4 (MediaTek)

omega

Redmi Pro

polaris

Mi Mix 2S

prada

Redmi 4

sony/meri

Mi 5C

tiffany

Mi 5X

ugglite

Redmi Note 5A Lite/Redmi Y1 Lite

vince

Redmi 5 Plus/Redmi Note 5

In addition, all Xiaomi Mi Box devices, as far as we know, do not have kernel sources available.

This is a huge amount of devices without kernel sources released by Xiaomi. While some devices are extremely old and pre-date the company's explosion into the global smartphone market, an alarming number of these smartphones were also released quite recently. It appears the age of the devices has no bearing on whether or not source code is available, given that many devices released years ago also have kernel sources.

XDA Urges Xiaomi to Continue Compliance with the GPLv2

Xiaomi's recent statement inspires confidence, especially as we've seen the company start to speed up kernel source code availability as the recently released Xiaomi Redmi Note 5 Pro and the Mi 6's Oreo update now have kernel source code availability, so the company is heading in the right direction. In an ideal world, Xiaomi would release all kernel sources for their devices as soon they release as required per the GPL. Furthermore, there are also a number of requirements that software source code released under GPL must follow.

  • Successfully build and produce a valid output file, which is the same format as provided in the binary
  • Contain all source code, interface definition files, scripts used to control compilation, and installation of the executable (it is not required to include the actual compiler/toolchain, but sufficient information should be made available to obtain the SAME configuration, including compiler flags, as used to build the binary version as released)

These are the primary guidelines for providing source codes under the GPL, and the exact same applies to kernel sources. The Xiaomi GitHub issues page is filled with requests for source codes and nobody, official or otherwise, seems to respond. We hope that with this renewed interest in GPL compliance that the company is more transparent about releasing kernel sources for their devices.

It's worth keeping in mind that Xiaomi is not the only company violating the GPL. Companies such as HMD Global have failed to release kernel sources for most of their devices, though that may be changing as the company has finally started to offer them for a few devices. Regardless of other companies' lack of compliance with the GPL, that doesn't give another company the excuse to do the same. With Xiaomi being one of the worst offenders among major OEMs and also one of the most popular among our community, we hope that the company commits to their statement and begins to show process towards becoming more GPL compliant.