2015-05-08 128 views
4

今天早上我從谷歌的開發者控制檯得到了一封郵件,說我使用的OpenSSL版本面向安全漏洞。更新Android應用程序到最新版本的OpenSSL

其實我只是維護代碼,我沒有開發它。但是,我應該解決這個問題。

我想知道如何在我的Android應用程序中將開放SSL更新到最新支持的版本。

嘗試搜索很多,但沒有如何在Android應用程序中這樣做。

這將是所有今天早上獲得相同郵件的開發者的解決方案。

在此先感謝。

+3

那麼,你的OpenSSL從哪裏來?你如何使用它?例如,如果您的OpenSSL作爲Android的SQLCipher的一部分發布,只需更新到Android發行版的最新SQLCipher即可。 「這將是所有今天早上得到相同郵件的開發者的解決方案」 - 並非如此。首先,據我瞭解,關於此事的電子郵件已經出現數月了。其次,更換庫的細節往往是特定於應用程序的。 – CommonsWare

+0

相關:[Google Play OpenSSL警告消息](http://stackoverflow.com/q/24197777)。 – jww

回答

8

我想知道如何在我的Android應用程序中將開放SSL更新到最新支持的版本。

  1. 下載OpenSSL的1.0.2a從OpenSSL: Source, Tarballs
  2. 交叉編譯OpenSSL,以便Android
  3. 重建您的應用程序,鏈接到的交叉編譯庫

:您的共享對象必須使用針對OpenSSL的靜態鏈接(libssl.alibcrypto.a)。您不能將您的共享對象與OpenSSL共享對象相關聯。如果您鏈接到1.0.2共享對象,則Android的Zygote(所有進程的父親)將加載其低級版本,並且您的1.0.2版本將永遠不會加載。

+0

感謝您的回答。任何特定的命令來靜態加載庫?或apk管理器會照顧這麼做? – Zax

+0

@Zax - *「...任何特定的命令靜態加載庫」* - 不,你建立一個靜態鏈接到OpenSSL的包裝共享對象。然後,你的應用程序加載你的包裝器共享對象。應用程序然後使用JNI調用共享對象。 – jww

相關問題