2016-12-07 14 views
4

私は、.SOファイルを通していくつかのネイティブライブラリを使用するアプリケーションを持っています。Android NDK:ネイティブライブラリのダイナミックリンクをオーバーライドしますか?

私はそれらのネイティブライブラリは、ここで説明するようにセキュリティの脆弱性を持っているのOpenSSLとのlibpngの古いバージョンにリンクするので、私はGoogle Playにアプリの新しいバージョンをアップロードすることができない状況にいるよ:https://android-developers.blogspot.com.eg/2016/06/android-changes-for-ndk-developers.html

私の質問です:OpenSSLとLibPNGの新しいバージョンと一緒に新しいプロジェクトに.SOファイルを含める方法はありますか?OpenSSLとLibPNGの古いバージョンへのリンクを上書きしますか?

ソースファイルがないため、.SOファイルを再構築できないことがわかっています。

これを解決するための回避策はありますか?

+0

*あなたのライブラリが動的openssl/libpngライブラリを使用していない限り、明らかに.SO *を含める方法はありません。 – Selvin

+0

申し訳ありませんが、もっと説明できますか? –

+0

もっと** **あなたは**プログラムの一部として[静的にコンパイルされたライブラリ](https://en.wikipedia.org/wiki/Static_library)を考えることはできません。 OpenSSLとLibPNGを動的ライブラリまたは静的ライブラリとして使用している場合 – Selvin

答えて

1

ライブラリのソースコードにアクセスできなくても、.oファイル(または.aアーカイブ)がある場合は、別のバージョンの依存ファイルを選択できます。

OpenSSLとlibPNGをダイナミックライブラリとして使用すると、人生が楽になります。あなたがそれらのファイルを静的に.soファイルにリンクされている場合は、あなたが幸運で決定された場合に役立つかもしれないadvanced ELF manipulation techniquesが必要です。

これらは、これらのライブラリに使用するインターフェイスが変更されていない場合にのみ機能します。

関連する問題