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

时间:2016-12-07 12:22:58

标签: android android-ndk openssl libpng android-security

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

我的情况是我无法将新版本的应用程序上传到Google Play,因为这些本机库链接到旧版本的OpenSSL和LibPNG,这些版本存在安全漏洞,如下所述:https://android-developers.blogspot.com.eg/2016/06/android-changes-for-ndk-developers.html < / p>

我的问题是:有没有办法在新项目中包含.SO文件,以及OpenSSL和LibPNG的新版本,并覆盖与旧版OpenSSL和LibPNG的链接?

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

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

只有当您用于这些库的接口保持不变时,所有这些才能起作用。