LGPLライブラリの使用について

544 views
Skip to first unread message

Shigeo Mutoh

unread,
Aug 1, 2016, 5:44:37 AM8/1/16
to android-g...@googlegroups.com
武藤です。

GPL関連の話題は以前にも議論があったように思いますが、最近は.aarなるパッケージも
ありますので、少し自分で調査した結果のご報告と、さらにみなさんの知見を
いただきたく投稿いたします。

ソースコード開示をしたくないアプリにおいて、LGPLなライブラリを使用
したいと思いました。今回使用したいライブラリは.soとそれらへのスタブ
としての.classを一式にした.aarとなります。

私は最初、.aarならば「そのまま」.aarとして.apkの中に含有されるのではないか、
と思いました。そうであれば実行時動的リンクの使用条件で利用できると考えました。

なので、.aarが最終的に.apkの内部においてどのように含有されるかを調べました。
.apkを展開してみると、.soはlibの下にそのまま配置、スタブ.classは
classes.dexの中に存在しました。

つまり.aarは.apk生成時に分解され、javaのclassはclasses.dexへ、.soはlibの下へと
バラバラに配置され、元の.aarは影も形もなくなることが分かりました。

このことから、少なくともclasses.dexが自前アプリと密に結合した状態である限り、
LGPLのソースコード開示義務が発生するだろう、と結論づけました。
これは、LGPLな.jarを含む.apkはソースコード開示義務が発生するロジックと同じ
(それが正しいかどうかは別にして)とみて良いと思います。

しかし、.soは単に居場所を変えただけと見えますので、もしLGPLの配布物として.soのみ
であるならば、これを含む.apkが単に「配布上の箱」とみなす限り、動的リンクの条件
つまりソースコード開示義務は発生しない、となるのでしょうか?

どなたかお教えくださいませ。
よろしくお願いします。

M.Yamakarasu

unread,
Aug 3, 2016, 7:33:57 AM8/3/16
to android-g...@googlegroups.com
こんばんわです。からすです。

亀レス失礼いたします。
個人的な見解ですが、.so やラッピングのクラスファイルがLGPLの場合でも、
リバースエンジニアを認めたり、
APKを作れる環境(ユーザーがライブラリを差し替えるため)を開示したりと、
最終的には、Javaだとソースコードの開示とおなじようなことになるのではないかと思っています。

LGPLな部分とやり取りするサービスを作ってあげて、
サービスの部分はコードも公開、としたほうが面倒事も少ない気がします。

--
からす at いばらき





2016年8月1日 18:44 Shigeo Mutoh <tmh...@gmail.com>:


--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
https://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

Shigeo Mutoh

unread,
Aug 4, 2016, 1:21:21 AM8/4/16
to android-g...@googlegroups.com
武藤です。

からすさん、ありがとうございます。

ライブラリの差し替えは無理ですね。実は後からもう少し調べて、それが
技術的に不可能なので、もはやandroidアプリにとってはGPLもLGPLも同じだなと
思った次第です。リバースエンジニアリングについては可だったのですが。

おっしゃるとおり、LGPLなServiceを別アプリとして実装、公開するしか手が
なさそうです。
# /usr/local/libに.soを突っ込めるpermissionがあればなあ。。。

ありがとうございました。

On 2016/08/03 20:33, M.Yamakarasu wrote:
> こんばんわです。からすです。
>
> 亀レス失礼いたします。
> 個人的な見解ですが、.so やラッピングのクラスファイルがLGPLの場合でも、
> リバースエンジニアを認めたり、
> APKを作れる環境(ユーザーがライブラリを差し替えるため)を開示したりと、
> 最終的には、Javaだとソースコードの開示とおなじようなことになるのではないかと思っています。
>
> LGPLな部分とやり取りするサービスを作ってあげて、
> サービスの部分はコードも公開、としたほうが面倒事も少ない気がします。
>
> --
> からす at いばらき
>
>
>
>
>
> 2016年8月1日 18:44 Shigeo Mutoh <tmh...@gmail.com <mailto:tmh...@gmail.com>>:
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメールを送信してください。
> このグループに投稿するには、android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
> https://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com <mailto:android-group-j...@googlegroups.com> にメールを送信してください。
> このグループに投稿するには android-g...@googlegroups.com <mailto:android-g...@googlegroups.com> にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages