Android開発質問スレ Part2 (243レス)
前次1-
抽出解除 レス栞

230
(1): (ワッチョイ d547-Kw+3) 01/18(土)12:17 ID:ZEzNbt5p0(1/2) AAS
>>228
WindowsだったらWSLでubuntuとかいれてreadelfコマンドでsoファイルの依存関係が見れる
適当なubuntuのsoファイルを見るとこんな感じ
$ readelf -d /usr/lib/libnetpbm.so.10
.......
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libnetpbm.so.10]

AndroidStudioで作ったsoファイルも見れてこんな感じになっている
$ readelf -d ~/libfoo.so
.......
0x0000000000000001 (NEEDED) Shared library: [liblog.so]
0x0000000000000001 (NEEDED) Shared library: [libm.so]
0x0000000000000001 (NEEDED) Shared library: [libdl.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so]
0x000000000000000e (SONAME) Library soname: [libfoo.so]
そのlibAとlibBの実際の依存関係もこれで確認できるだろう
232: 228 (ワッチョイ 6f68-GTnW) 01/19(日)07:45 ID:pBs5rxiX0(1) AAS
皆さんどうもです

>>230
それで例えばNEEDEDの一つにlibc.so.6がありますがそれをロードする条件は
- SONAME が libc.so.6 で
- ファイル名も libc.so.6 である
ようなライブラリーがあれば読み込む、ということなのかな? と。しかし

>>231
>調べてみるとAndroidは.so以外の名前の共有ライブラリファイルをサポートしていないみたいだな
やはりそうなんですかね。それだと .so.6 とかはうまく組み込めなそうですね

>だからライブラリそのものを作り直す必要があるんじゃないだろうか
依存している全ライブラリのソースがあれば再ビルドしてまとめるという手はありますね

ふと思ったのは上の認識が正しければSONAMEをなんとか編集して .6とか取ればいいのかなと
だいぶハックの領域ですが。ただ、.6は本来必要があって付いているんでしょうが
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.758s*