Google releases Android under the Apache licence so that those who re-use the code and add their own customisations are under no obligation to release it publicly.
The Linux kernel is released under the GPLv2 which stipulates that any modifications to the source have to be released under the same licence in the event of redistribution.
Prior to Naughton pointing out this possible infringement, Houston Law Center law professor Raymond Nimmer had flagged the possibility on his IP Info blog.
"For example, Google, in creating its Android program based in part on the Linux kernel, uses script to 'cleanse' Linux core header files, removing comments and some code," Nimmer wrote.
"It asserts that the result contains no copyrighted material from Linux and distributes Android generally under an Apache license which is less demanding as a copyleft matter on Google and on resellers than GPL v.2.
"For there to be no expression remaining, however, what must have been removed is not only the human readable text, but also the expressive features involved in the structure of the header files. This seems difficult to achieve since the goal was to borrow the effectiveness of the Linux system at least in part."
Naughton wrote that a key component of Android, the Bionic library which is used to access the core features of the Linux kernel code, was developed in a somewhat unusual way. Google stripped the headers and then declared those files free of the copyright restrictions placed on it by the GPL.
In an expanded research note (PDF), Naughton quotes what Linux creator Linus Torvalds had to say in 2003 about the use of such header files.
Responding to a post, Torvalds wrote: "...you do _NOT_ have the right to use a kernel header file (or any
other part of the kernel sources), unless that use results in a GPL'd program.
"What you _do_ have the right is to _run_ the kernel any way you please (this is the part you would like to redefine as "use the source code", but that definition simply isn't allowed by the license, however much you protest to the contrary).
"So you can run the kernel and create non-GPL'd programs while running it to your hearts content. You can use it to control a nuclear submarine, and that's totally outside the scope of the license (but if you do, please note that the license does not imply any kind of warranty or similar). BUT YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES."
Whether Google has violated the GPL or not is a matter which has massive implications for the entire free and open source software community.
If Google can prove that by stripping the header files it has not committed a licence violation, then this would mean that it has found a way of removing the strictures of the GPL from the Linux kernel.
This in turn would mean that others could do the same thing and lock away versions of the kernel under their own licences.