【问题标题】:Android NDK: override dynamic linking for native libraries?Android NDK:覆盖本机库的动态链接?
【发布时间】:2017-04-22 09:26:13
【问题描述】:

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

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

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

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

有没有办法解决这个问题?

【问题讨论】:

  • 有什么办法可以包含 .SO 显然只要你的库没有使用动态 openssl/libpng 库,那么你就不能
  • 很抱歉,您能解释一下吗?
  • 更多然后你不能 ?...想想statically compiled library作为程序本身的一部分...如果你正在使用你没有写OpenSSL 和 LibPNG 作为动态或静态库

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


【解决方案1】:

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

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

只有在您使用这些库的接口保持不变的情况下,所有这些才能发挥作用。

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2017-03-14
    • 1970-01-01
    • 2012-04-17
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多