[HTC 10 Guides, News, & Discussion] Stephen:
XDA-Developers and the GPL

​

Hello everyone,

As many of you know, here at XDA we have a strict policy regarding GPL v2. What you may not understand is what that means and what effects it may have on you. Simply put, "the GNU GPL is a software license agreement, under which parts of the Android operating system are licensed. The majority of Android is licensed under the Apache license, but the Linux Kernel (which is present in every running Android ROM in some shape or form) is licensed under the GPL (version 2)".

So what does this mean for the average user?

To keep things simple, this license is one of the reasons Android exists in the open source capacity that it does. It requires developers to keep their kernel source open and has created the community sharing programs that have made Android so wonderful.

If you are a developer, what does this mean for you?

It doesn't matter if you are creating a whole ROM or just the kernel, the process of being GPL compliant is a very simple one to explain. Basically, we expect you to either link the source that you have chosen to use or upload the source you have created into a format that can be viewed by anyone and everyone. Below are the 3 most common situations that developers run into when needing to stay GPL compliant under XDA rules:

1. If you are using a stock kernel, you MUST mention where you obtained your source kernel. Also, having a link leading to where the manufacturer has uploaded their source is always helpful.

2. If you are using a community driven source build (e.g. LineageOS, AOSP, etc.) or a singular developer's source, you MUST link directly to the repository that contains the kernel for that specific device. If you are only linking to another thread or to a general repository, this will not be considered as being GPL compliant unless the code has not been modified.

3. If you are forking a repository that is similar to the examples listed above in #2, you MUST publish and link your entire kernel source. This includes any and all changes that you have made. Two of the most common ways developers publish their source on XDA are either with GitHub, or GitLab. While these two methods are recommended, they are not the only routes you can choose to accomplish this. All that is required is that the source can be viewed and downloaded by anyone who wishes to do so. When releasing an update, your repository must be updated the moment you release your ROM or kernel on XDA. If you can post your update to XDA, there should be no reason as to why you cannot release your source.

What if the manufacturer for my device has not released their kernel source?

In a perfect world this would not happen, but unfortunately, this is not the case. Pulser-G2 wrote a portal article in 2013 explaining a certain situation that has come across our desks. You'll find more examples here. We can only advise you to reach out to these manufacturers with a kind request to comply with GPL v2.

With all of that being said I will leave you with this...

By posting your work on XDA-Developers, you are agreeing that it complies with relevant licensing conditions. As such, by posting a kernel or other work containing GPL code, you are confirming to us that you have made this source code available publicly under the GPL. Failure to follow this policy will result in the closure of your thread and the removal of the download links.

View attachment 5966715​