Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using LGPL library in Paid Android App [closed]

Tags:

Can I use a LGPL library in my paid android application? I am not going to modify the LGPL lib, I just want to use it. Is it legal?

like image 573
Kamran Avatar asked Feb 06 '11 22:02

Kamran


People also ask

Can I use LGPL in closed source?

TL;DR A component licensed under LGPL can be used by closed source, proprietary software, both internally used and distributed, for free, with no effects on the software using the component.

Can I use LGPL code in commercial software?

You can use and distribute LGPL libraries on your website and use them in combination with commercial code. The only big restriction is that you must keep the library open source, including any modifications you make to it, and allow your users to obtain the source, licence and copyright information for the library.

Can I use GNU Lesser General Public License?

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.


2 Answers

Using LGPL in an android free or paid app is legal, but to be compliant with the LGPL you have to:

  1. Give the user indication of the library used and where to find the original code;
  2. Configure proguard to not obfuscate the code covered by LGPL;
  3. Avoid any check in your app about signature compliance;
  4. Give to the user indication of how replace the library.

For point 4 you can indicate to use dex2jar, replace the LGPL code and re-sign the APK. It needs a lot of work for the user but it is possible to do it and allow the final user to recombine or relink the code as LGPL says. In addition, if your app uses any google services, the user need to create an account to generate the own api key and so on.

like image 73
greywolf82 Avatar answered Nov 22 '22 07:11

greywolf82


If you're making a paid Android app you'll probably have problems with a specific issue of LGPL: substitutability. Generally, it states that when you distribute a combined work you have to provide a user with possibility to substitute the library with a different version (e.g. newer). Very doubtful in the case of DEX file, as mentioned in previous comments.

An alternative to a single DEX file is to make from a dependent library a separate application, released on LGPL. In such an application you create a service to which you connect from your paid application. Then, to substitute the LGPL library with newer version only recompilation and reinstalling the library's APK is required.

The hassle is, of course, that now you have more than one APK to install.

like image 41
pwes Avatar answered Nov 22 '22 07:11

pwes