我有一个应用程序通过.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文件,因为我没有源文件。
有解决方法吗?
答案 0 :(得分:1)
如果您无法访问库的源代码,但拥有.o
个文件(或.a
存档),则可以选择不同版本的依赖项。
如果您使用OpenSSL和libPNG作为动态库,您的生活将更加轻松。如果您将它们静态链接到.so
文件中,则需要一些advanced ELF manipulation techniques,如果您幸运且有决心,这可能会有所帮助。
只有当您用于这些库的接口保持不变时,所有这些才能起作用。