Android NDK:覆盖本机库的动态链接?

Android NDK: override dynamic linking for native libraries?

我有一个应用程序通过 .SO 文件使用一些本机库。

我处于无法将新版本的应用程序上传到 Google 播放的情况,因为那些本机库 link 到具有安全漏洞的旧版本的 OpenSSL 和 LibPNG如此处所述:https://android-developers.blogspot.com.eg/2016/06/android-changes-for-ndk-developers.html

我的问题是:有什么方法可以在新项目中包含 .SO 文件以及新版本的 OpenSSL 和 LibPNG,并覆盖 linking 到旧版本的 OpenSSL 和 LibPNG ?

知道我无法重建 .SO 文件,因为我没有源文件。

是否有解决此问题的解决方法?

如果您无法访问您的库的源代码,但有 .o 文件(或 .a 存档),您可以选择不同版本的依赖项。

如果您使用 OpenSSL 和 libPNG 作为动态库,您的生活会更轻松。如果您将它们静态链接到您的 .so 文件中,则需要一些 advanced ELF manipulation techniques 如果您幸运且有决心,这可能会有所帮助。

所有这些只有在您用于这些库的接口保持不变的情况下才能起作用。