【问题标题】:Update Android app to latest version of OpenSSL将 Android 应用程序更新到最新版本的 OpenSSL
【发布时间】:2015-07-19 06:18:25
【问题描述】:

今天早上,我从谷歌的开发者控制台收到一封邮件,说我正在使用对安全漏洞开放的 OpenSSL 版本。

实际上,我只是在维护代码,而不是开发它。但是,我应该解决这个问题。

我想知道如何在我的 Android 应用程序中将 Open SSL 更新到最新支持的版本。

尝试了很多搜索,但不知道如何在 Android 应用程序中搜索。

这对于今天早上收到相同邮件的所有开发人员来说都是一个解决方案。

提前致谢。

【问题讨论】:

  • 那么,您的 OpenSSL 来自哪里?你是如何使用它的?例如,如果您的 OpenSSL 作为 SQLCipher for Android 的一部分提供,只需更新到最新的 SQLCipher for Android 发行版。 “对于今天早上收到相同邮件的所有开发人员来说,这将是一个解决方案”——并非如此。首先,据我了解,有关此问题的电子邮件已经发送了几个月。其次,替换库的细节通常是特定于应用程序的。
  • @CommonsWare 如何知道 OpenSSL 来自哪里?这样我就升级了那个库。
  • @M.UsmanKhan:这篇文章已有五年历史了。希望您的所有库都比五年前新。 :-) 但是,除此之外,我不知道是否有一种非常简单的方法可以找到,除了检查每个 AAR(例如,在您的 Gradle 缓存中)并查看哪些有 OpenSSL 二进制文件他们。
  • @CommonsWare.Thanks,那么检查一个 AAR 的程序是什么 :)

标签: android openssl


【解决方案1】:

我想知道如何在我的 Android 应用程序中将 Open SSL 更新为最新支持的版本。

  1. OpenSSL: Source, Tarballs下载OpenSSL 1.0.2a
  2. Android 交叉编译 OpenSSL
  3. 重建您的应用,链接到交叉编译的库

注意:您的共享对象必须使用针对 OpenSSL 的静态链接(libssl.alibcrypto.a)。您不能将您的共享对象链接到 OpenSSL 共享对象。如果您链接到 1.0.2 共享对象,那么 Android 的 Zygote(所有进程的父进程)将加载其下级版本,而您的 1.0.2 版本将永远不会加载。

【讨论】:

  • 感谢您的回答。静态加载库的任何特定命令?或者 apk 管理器会负责这样做?
  • @Zax - "... 任何静态加载库的特定命令" - 不,您构建了一个静态链接到 OpenSSL 的包装共享对象。然后,您的应用程序会加载您的包装共享对象。然后应用程序使用 JNI 调用共享对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2023-03-18
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
相关资源
最近更新 更多