The following is a guest post from Mahshad Koohgoli, CEO of Protecode, Inc. a Canadian-based provider of open source license management solutions. Koohgoli holds several patents in the computer and communications industry and brings more than 25 years of experience to the field of telecommunications industry.
What Android Licensing Means for Developers
The Proliferation of Android
Android is having a significant impact on the mobile industry, enabling numerous stakeholders to fast forward their product plans and step into the ring against Apple’s iPhone/iPad/iPod and its rich collection of applications, and even nudging Research In Motion’s established share of the market place, although RIM still rules in the business world. Samsung’s Galaxy, Dell’s Streak and HTC’s Desire are all stepping up. Motorola, Garmin, Sony Ericsson, Huawei, LG, Lenovo, Geeksphone, and now Archos are part of the Android mobile handset supplier community. And adjacent markets are also getting on board. A new crop of products are offering dual boot options to support Android. For example Acer is offering a Win7/Android netbook and Augen is offering an Ubutu/Android tablet and soon there will be an Android version of Firefox available as well.
Will the advantages of an open source platform combined with pivotal features like flash player support, multi-tasking and supercharged hardware be enough to make inroads against Apple’s vertically integrated and tightly controlled approach? Time will tell. Apple is still on a roll recently announcing their first ever $20B quarter so their winning formula is still winning. Meanwhile there may be some licensing speed bumps ahead for “Team Android”.
Android Development and Licensing Implications
The majority of development in Android domain consists of applications riding on an Android device, and therefore most development organizations will not change the core platform. In fact most organizations do not want to touch the platform, and instead they use the API’s provided by the platform to implement their applications. Generally applications that ride the Android platform are distributed on their own and therefore minimal licensing interactions exist between the application and Android platform.
Android is licensed under the Apache Software License 2.0, with portions of the Linux kernel that were modified for Android kernel licensed under GPL v2. Mobile phone manufacturers, chip vendors or ancillary device manufacturers that have their hardware directly interact with the Android operating system generally need to modify one or more aspects of the Android code directly. These modifications generally add to the bottom layers of an OSI communication protocol, or enhance the Android operating system with device management capabilities. In these cases essentially a manufacturer will end up distributing a modified version of Android with their device.
Anytime the actual Android code is distributed, modified or unmodified, it is essential to understand the licensing obligations associated with those changes or additions to Android platform. The changes or additions may in themselves include open source or proprietary content. The exact pedigree of the modified code must be understood, and licensing obligations and interactions must be reviewed before the code is released. If the platform enhancements or additions include encryption, then additional obligations may exist in certain jurisdictions.
One item to remember is that Android applications, like other mobile applications, are widely distributed, geographically, demographically and in volume. You can be assured that someone, somewhere, at some point, will discover any challenges with use of external third party code in an application.
Here are the common-sense rules. Know what’s in your code- creating a list of all software that has gone into your application is a starting point, manually or preferably through scanning solutions. You need an accurate list of all packages, licenses and copyrights associated with the pieces of your code. And do not forget about the code that has been used by resourceful developers in a modified, enhanced way. Next is having access to the actual text of the licenses. Understanding the obligations associated with the licenses may require expert scrutiny. Some solutions provide a License Obligations Report that can simplify this task.
Obligations may or may not depend on how you distribute your code. You may have to include the text of the license with your application so that it can be viewed through a suitable interface. You may also have to display various copyright notices and show attributions to packages or pieces of the code you are using. Some licenses require you to distribute the source code if you have modified certain files for your published application (as is the case with all versions of GPL). Source code distribution means indicating a location where others can go and access the modified source code.
Android OSS – Licensing Speed Bumps
This may impact application writers sometime in future, depending how the spat between Oracle and Google is sorted out. It also makes for a nice soap opera played out by the giants of Java and Android. It starts with Oracle’s Java infringement lawsuit against Google/Android – a battle of the titans shaping up there. The lawsuit claimed seven patent and one copyright infringement, to which Google, rather annoyed, denied the charges and asked the court to dismiss lawsuit. In the process, Google denied the patent infringement charges and asked for clarification on the copyright issue. In an amendment, Oracle tweaked its complaint, claiming that Google had directly copied code from Java, and to make matters even juicier, actually showed a sample of the aforementioned copied code.
Again, most application writers do not need to worry about this issue for now, as like any other legal spat this one will also take years to play out. Handset manufacturers however are paying close attention and considering their options while the sales of their Android handsets set new volume records every quarter.
Many thanks to Mr. Koohgoli for his insight and perspective as it pertains to Android development!