Four months after the launch of the Xiaomi Mi A1, Xiaomi's first Android One smartphone, the company finally released the kernel source code in compliance with the GPLv2 license. It has taken a lot to get to this point, but what makes it worse is these are kernel sources for Android Nougat. The phone is already on Android Oreo.

The Linux kernel's GPLv2 license requires that Android manufacturers publish kernel sources in a timely manner, but it took Xiaomi nearly half a year to release the Xiaomi Mi A1's code. In January, we urged the company to publish the phone's kernel source.

Recently, XDA Recognized Developer franciscofranco, took to Twitter to demand the kernel source release, and publications including Ars Technica and Android Police joined in.

Even without the kernel sources, the community persevered and developed custom ROMs for the Xiaomi Mi A1, albeit with pretty major compatibility issues. (The phone's A/B partition system didn't help.)

The impetus for the source code's publication on Tuesday isn't clear. It might have been public pressure, or perhaps it aligned with the company's roadmap. (In January, Xiaomi’s Lead Product Manager Jai Mani said that the company's internal goal was to release the Xiaomi Mi A1's source code within three months of the device's launch.) It's also not yet clear why Google didn't step in, given that it exercises a greater degree of control over devices in the Android One program than stock Android smartphones.

It's a shame the source code is being released so late, as the phone is unlikely to receive the kind of time and attention from developers it might have in the weeks after its debut. At the phone's launch event last year, Xiaomi called it a "milestone" in its global expansion, and said that it hoped for it to be one of the first devices to receive Android P when it's eventually announced an launched.

It's now far into the Xiaomi Mi A1's lifecycle, and some developers might no longer wish to develop for it -- the initial hype for custom ROMs and development is bound to be many orders of magnitude smaller than it would have been at the Xiaomi Mi A1's peak. Still, it's certainly better late than never -- even if the kernel sources are for Android Nougat and not Android Oreo.

Developers interested can take a look at the kernel sources below.


Xiaomi Mi A1 Kernel Sources