I'm editing an Android program which under GPLv3 license.

I want to let it send and receive encrypted packet, so I added a library project which encrypt and decrypt packet.

The main project is under GPLv3 license, so MUST I make the library project open source while I don't want ?

P.S. The main project call a service in library project, and transfer packet to the service to en/decrypt packet, so the en/decryption is in different process. Does it mean that I can make the library project closed source while it doesn't violate GPLv3 ( because of process isolation ) ?

  • Your last paragraph is confusing: a library is generally within one process. Could you give more details of the IPC mechanism you're using, as that will determine the answer to this question? Sep 26, 2021 at 7:02

1 Answer 1


You may license your library under any terms you like. What you may not do, however, is distribute a binary that results from linking your library into code you received under GPLv3, unless you obey the GPL's requirements. These include distributing complete corresponding source code (GPLv3 s6), which would include your library, and all of it must be under GPLv3 (GPLv3 s5c).

If you distribute a binary which dynamically links to your library, picking up the library code at run-time, then the question is not yet settled. We have a question that summarises the arguments why you would not need to license your library under GPLv3, and one that summarises the arguments why you would. My personal opinion (which matches the FSF's) is that you are making a combined work based on the GPLv3 codebase, and therefore that you would need to distribute your library under GPLv3.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.