Developers writing for Google's Android operating system could be creating apps that violate the Linux kernel's GPL licence, according to a report by law firm Brown Rudnick.
Developers writing for Google's Android operating system could be creating apps that violate the Linux kernel's GPL licence, a lawyer has said. Photo credit: Google
The Android operating system — which has already embroiled Google in a legal dispute with Oracle over the implementation of the Dalvik virtual machine — was built around the Linux kernel under the open-source GNU General Public License version 2 (GPLv2). According to Edward Naughton, an intellectual property lawyer at Brown Rudnick, Google and developers working on Android apps may therefore be open to copyright challenges.
The problem centres on the library that joins Android and the underlying Linux kernel. In order to create the library, known as Bionic, Google used tools to strip 750 Linux kernel header files of certain information, including code comments and whitespace. During the process, Google also inserted a notice in each file saying that the 'cleaned' files did not contain any copyrightable information.
"Google takes the position that removing this information 'cleans' the raw Linux kernel header files of any copyrightable information, such that Google is free to redistribute the files under a licence other than the GPL," Naughton wrote in the report (PDF). The GPL ensures that software licensed under it — as well as derived works — must be free.
"Google thus distributes Bionic under the BSD licence, a licence that has no copyleft effect," Naughton said. "What Google claims to have done, then, is to 'wash' the Linux kernel headers, so that the 'cleaned-up' headers are no longer subject to the GPLv2 and can be used in a proprietary software system without fear of becoming subject to the GPLv2 obligations — which many application developers seek to avoid."
However, Naughton questioned whether stripping out copyrightable information in this manner does actually remove the obligations of the GPL license.
"Google's approach rests on two key assumptions, one micro and one macro, about the copyrightability of the Linux kernel header files," Naughton said. "On the level of individual files, it assumes that the only copyrightable information in a Linux kernel header files is the 'nondirective' text, such as comments. It assumes that header files are not copyrightable if they contain only declarations of data types, or a macro, or simple inline functions."
Naughton said Google was also assuming that, if the individual header files are not copyrightable, then the combination of the 750 header files was also not copyrightable. "Neither of these assumptions is certain, and, in fact, they are very likely mistaken, both as a matter of law and as a matter of industry understanding and practice," he said.
The view that this assumption is incorrect is shared by Linus Torvalds, creator and chief architect of the Linux kernel, who stated in 2003 that the GPL licence "very much does NOT say that you can 'use the header files in any way you want, including building non-GPL'd programs with them'".
"In fact," Torvalds wrote at the time, "it very much says the reverse. If you use the source code to build a new program, the GPL explicitly says that that new program has to be GPL'd too."
Bionic is at the heart, not at the periphery, of the Android architecture. Thousands of Android software components depend on it.– Florian Mueller, NoSoftwarePatents campaign
NoSoftwarePatents campaign founder Florian Mueller said that, if Google is in violation of the licensing terms, it could have far-reaching effects on both the operating system itself and the Android app development ecosystem.
"Bionic is at the heart, not at the periphery, of the Android architecture. Thousands of Android software components depend on it," Mueller wrote in a blog post on Thursday. "In terms of third-party applications, the more powerful and sophisticated they are, the more likely they are to be written in C or C++, and, therefore, the more likely they are to use Bionic. Major third-party apps like Angry Birds and the Adobe Flash Player also appear to be written in C or C++."
However, as Naughton pointed out in the report, if Google is correct in its assertion that stripping out copyrightable header information means it is not subject to the rules of the GPL licensing agreement, then it will mean that anyone can use the open-source Linux kernel with 'clean' headers to create a fork of the kernel. This fork would not be subject to the GPL licence, and could then allow proprietary licensing.
Get the latest technology news and analysis, blogs and reviews delivered directly to your inbox with ZDNet UK's newsletters.