Some History

Update: Linux devs are not happy about this.

Update #2: And just like that, only a few hours after this article, HTC released the Thunderbolt kernel source.

If you've been following the "drama" around Android kernel source release timelines and device manufacturers (such as HTC), you should be already aware of 2 forces pushing in opposite directions:

  • On one side, we have the Android community, which maintains that according to GPLv2, Android kernel sources need to be published together with a given device release. Since Android kernel sources are essential to custom ROM development, it is clearly in the interest of the community to see them released sooner rather than later.
  • On the opposite side, device manufacturers insist that they can publish kernel sources when they are ready, and a hard deadline does not exist.

Last year, Steve Schultze from Princeton's Freedom to Tinker blog took this issue to the streets the tubes and called out HTC for not publishing the kernel for the G2. He cited GPLv2 and specifically section 3a:

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.

HTC's response claimed that the sources didn't need to be published immediately, and the company could instead take 90-120 days to comply. A few days later, HTC decided it was actually ready to release the G2 source, but only after being ridiculed by a Linux kernel developer in the most hilarious manner imaginable.

HTC Thunderbolt Kernel Source

Fast forward a few months to March of this year after the HTC Thunderbolt was released. The Thunderbolt was an amazing phone, and most people who purchased one ended up being very satisfied. In fact, the high satisfaction rate is in part due to the root and full unlock that team AndIRC was able to knock out in a matter of hours. There was only one blemish on an otherwise quite perfect situation - the kernel source was nowhere to be found.

Many users started asking HTC on Twitter and Facebook, and emailing the company for answers. "When, when, when?" Customer support channels were flooded with requests, but HTC remained unmoved. Even until this day, HTC support reps are insisting that they are right.

HTC's Lines Of Defense

At first, their line of defense was that what we were asking them was protected by the Apache 2.0 license and not the GPLv2. Come on, you can do better, HTC - even your own reply quoted http://source.android.com/source/licenses.html which clearly spelled out the differences between the AOSP code protected by Apache 2.0 and kernel code protected by GPLv2. Oops! Back to the drawing boards they went and came up with another defense.

You see, GPLv2 not only contains section 3a that was quoted above, but also comes with section 3b, which states the following:

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.

The problem and the loophole HTC is using is that there is no timeline specified in this clause. Sure, they're offering to distribute the code to any third party who asks for it, but the deadlines are not discussed by the GPLv2 agreement in any way. I am not a lawyer, but after having read the GPLv2 license, I don't think the violation is enforceable. That's a bummer.

Supporting Emails

Email #2:

from    HTC <na-no-reply@htc.com>
to    z[CENSORED]@gmail.com
date    Thu, Mar 24, 2011 at 8:34 PM
subject    Regarding your message (11USCW13ENA002296)
mailed-by    htc.com
hide details 8:34 PM (29 minutes ago)
Dear Bobbie Kennett,

Thank you for your email regarding the source code for the HTC Thunderbolt. We understand your concerns and apologize for the frustration you have experienced.

As it stands, the majority of Android source code is not released under the GPL but is instead under the Apache Open Source License. You can find information on the licensing by visiting http://source.android.com/source/licenses.html and http://developer.android.com/resources/faq/licensingandoss.html, specifically the latter where question 3 asks, "Why are you releasing the code under the Apache License instead of GPLv2?" This leads to an article written on ArsTechnica by Ryan Paul titled, "Why Google chose the Apache Software License over GPLv2 for Android." When available, the source code for the device can be found at http://developer.htc.com. This is typically done within 90 to 120 days from release of the device, though we do try to have it available sooner. This is within the terms of the Apache Source License, which covers the majority of the software under the Android operating system, and the GPL.

We have thoroughly reviewed this prior to releasing our first Android based device (T-Mobile G1/ HTC Dream) on October 22, 2008. I do apologize for any inconvenience that you may have experienced.

To send a reply to this message or let me know I have successfully answered your question log in to our ContactUs site using your email address and your ticket number 11USCW13ENA002296.

Sincerely,

Jeffery

HTC

Email #3:

from    HTC <na-no-reply@htc.com>
to    z[CENSORED]@gmail.com
date    Mon, Mar 28, 2011 at 5:14 PM
subject    Regarding your message (11USCW13ENA002296)
mailed-by    htc.com
hide details 5:14 PM (49 minutes ago)
Dear Bobbie Kennett,

I have located the GPL version 2 here: http://www.gnu.org/licenses/gpl-2.0.html

What I beleive that you are refferencing is Section 3, Subpart A of the Terms and Conditions of the GPL version 2 license. This states that one of the options when distributing a Program is to include a copy of the Source code. I.E. to include a copy of the source code with "the complete corresponding machine-readable source code" e.g. phone.

HTC has chosen instead to go with option (Subpart) B of Section 3. This states that we can "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."

This again, does not include any terms or conditions that require us to immediately release the source code. It clearly indicates the that the offer must be valid for up to three years and that we must "give" a copy to "any third party." It does not say that the source code must be given immediately upon request from said third party.

Section 3 of the Terms and Condtions also states that "If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. "

This is again the method that we are chosing to supply the source code in. This part of the license clearly states that this distribution can be "made." HTC is currently in the process of making said distribution; that is to say writing and formating the source code (kernal) in such a way as to make it readily and easily (as is a requirement of the license) accessible from our developer website.
We are not choosing to not supply you with the source code. We are simply unable to provide it to you at this time as it is not currently in an easily accessible format.

If you beleive that the GPL entitles you to receive the source code immediately upon request, as opposed to the first available oportunity at the best of our abilities, please provide a quotation of the actual license that states that the source code must be provided immediately upon request and not just "given."

To send a reply to this message or let me know I have successfully answered your question log in to our ContactUs site using your email address and your ticket number 11USCW13ENA002296.

Sincerely,

Jeffery

HTC

Email #4:

From: HTC <na-no-reply@htc.com>

Date: Mon, Mar 28, 2011 at 1:52 PM
Subject: Regarding your message (11USCW13ENA002296)
To: z[CENSORED]@gmail.com

Dear Bobbie Kennett,
Thank you for your reply. I understand how this can be frustrating for you. The core version of Android 2.2 in which the HTC Thunderbolt is built upon was released by Google quite some time ago (July 2010). The parts included in the SDK are the ones required for any GPLv2 requirements. The SDK can be found here: http://developer.android.com/sdk/android-2.2.html. The core system has not been modified and any additional code was registered under Apache. We can only ask for your patience as we work on have the rest of the code published at http://developer.htc.com.
To send a reply to this message or let me know I have successfully answered your question log in to our ContactUs site using your email address and your ticket number 11USCW13ENA002296.
Sincerely,
Jeffery
HTC

Email #5:

From: "HTC" <na-no-reply@htc.com>

Date: Mar 28, 2011 8:44 PM
Subject: Regarding your message (11USCW13ENA002296)
To: <z[CENSORED]@gmail.com>

Dear Bobbie Kennett,
Thank you for your reply. The sections mentioned indicate that the kernal source will be made available when the source is in an easilly readable format. The Kernal is still registered under Apache by Google, not HTC. We can merely point out the sections of the GPLv2 that fit within our spectrum of support. The afore mentioned statement of "We are simply unable to provide it to you at this time as it is not currently in an easily accessible format," is true as althogh a program may work on a cellular device, for development purposes, that same software also needs to be able to function with the SDK provided by Google. For it to be flawless for our customers, frankly, it takes time.
As for a time frame, we try to have is as soon as possible, but it tends to be available within 90-120 days of release. Sometimes we can have it sooner than that, as in the case of the HTC Incredible S. I assure you we are working on having this software available to our customers as soon as possible. I do apologize for any confusion with this.

To send a reply to this message or let me know I have successfully answered your question log in to our ContactUs site using your email address and your ticket number 11USCW13ENA002296.
Sincerely,
Jeffery
HTC

In Closing

So, this is the state of the union as of March 28th, 2011, and now I'd like to hear you out, Android community, and open up the floor for further discussion. Is HTC correct? Are we still missing something?

Supporting evidence by @nwgal34, Anthony Fox, Brett Feitknecht, Jeffrey White, and many others.