Back

MediaTek and the GPL

Long story short: You're wrong.

April 25, 2024


Disclaimer: I do not work for MediaTek. I’m also not a lawyer. This is just my personal opinion.

When looking at XDA Forums, Reddit, and other places with Android modding communities, there’s this common idea that MediaTek is violating the GPL and everyones hates them for that. But I’d like to take a moment here to address this.

The common argument goes something like this:

MediaTek provides GPL sources to paying customers (device vendors) but fails to publicly release their GPL sources, which violates the GPL. Qualcomm, on the other hand, does provide GPL sources to the public, and respects the GPL.

Here’s the thing - even the FSF has clearly stated in the GPL FAQ that you don’t have to publicly release GPL sources. You only have to release the GPL sources to the people who you distribute it to. (things get more complicated with AGPLv3, but that’s not relevant here)

But I know that even a link to the GPL FAQ section on that won’t be enough. So, let’s take an alternate approach too:

Have you tried reading it?

I can’t think of a scenario where people claim that MediaTek has violated the GPL despite having actually read the actual license text.

If you have read the GPLv2 text, you’ll know that MediaTek is not violating it. Here’s the relevant text:

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

Not once does it make any mention of releasing code to the public. And no, it’s not just in a different section. It’s nowhere to be found in the license text.

And in case that still wasn’t enough…

Another thing worth noting is that, while nobody really talks about it, MediaTek HAS publicly released an Android common kernel before! It’s very outdated, but nonetheless, they HAVE publicly released common kernels before.

In fact, that’s not even close to the first time they’ve done it. There have been multiple kernel source drops on the MediaTek kernel repository in AOSP historically, although they don’t update that repository anymore.

So how do we get the kernel sources then?!

Section 3 of the GPLv2 terms only apply to the person or company directly distributing the kernel binaries, so while MediaTek doesn’t have to provide the GPL sources to you, they do have to provide them to the device vendor, who also actually has a buisiness relationship with them.

The device vendor, on the other hand, is required to give you a way to get the source code, but they don’t have to make it public to comply with that. A device vendor can comply by just putting something in the manual and/or Android license credits telling the user “here’s our email address, contact us if you want the GPL sources for whatever reason” - And in fact, Samsung does exactly this, even for devices with MediaTek SoCs! I have personally asked Samsung for the GPL sources that are used in a tablet I have (and that tablet has a MediaTek SoC), and they eventually got back to me telling me that they put it on their GPL sources website along with instructions on how to download it!

Conclusion

Please, stop saying that MediaTek is violating the GPL. They are not violating the GPL.

They may be violating the spirit of the GPL to some extent, sure, but they are quite literally just doing the thing that makes the most sense for the buisiness they’re in, especially since there isn’t enough demand for custom ROMs on devices with MediaTek SoCs.

If you get a Samsung device which uses a MediaTek SoC (like I did), you are not MediaTek’s customer. Samsung is.

There are certainly device vendors out there which use MediaTek SoCs and violate the GPL by providing absolutely no way that the end user can possibly get the GPL sources, and I’ve personally had to deal with one of them before, but MediaTek isn’t violating the GPL.