2015-05-08 2 views
4

Сегодня утром я получил сообщение от консоли разработчика Google, в которой я использую версию OpenSSL, которая открыта для уязвимостей безопасности.Обновление приложения для Android до последней версии OpenSSL

На самом деле я просто поддерживаю код, и у меня его нет. Однако я должен решить эту проблему.

Я хотел бы знать как обновить открытый SSL до последней поддерживаемой версии в приложении для Android.

Пробовал много искать, но не имеет, как это сделать в приложении для Android.

Это было бы решением для всех разработчиков, которые получили эту же Почту этим утром.

Заранее спасибо.

+3

Ну, откуда ваш OpenSSL? И как вы его используете? Например, если ваш OpenSSL поступает как часть SQLCipher для Android, просто обновите его до последней версии SQLCipher для Android. «Это было бы решением для всех разработчиков, которые получили эту же почту сегодня утром» - не совсем. Во-первых, электронные письма об этом выходили в течение нескольких месяцев, как я понимаю. Во-вторых, детали замены библиотеки часто зависят от приложения. – CommonsWare

+0

Связанный: [Предупреждение Google Play OpenSSL] (http://stackoverflow.com/q/24197777). – jww

ответ

8

Я хотел бы знать, как обновить открытый SSL до последней поддерживаемой версии в приложении для Android.

  1. Скачать OpenSSL 1.0.2a из OpenSSL: Source, Tarballs
  2. Кросс-компиляция OpenSSL для Android
  3. Rebuild приложения, связывая с кросс-скомпилированных библиотеками

Примечание: ваш общий объект должен использовать статическое соединение с OpenSSL (libssl.a и libcrypto.a). Вы не можете связать свой общий объект с общими объектами OpenSSL. Если вы связываетесь с 1.0.2 общими объектами, тогда Zygote (родительский компонент всех процессов) от Android загрузит версию своего уровня ниже, и ваша версия 1.0.2 никогда не будет загружаться.

+0

Спасибо за ответ. Любая конкретная команда для загрузки библиотеки статически? или менеджер apk позаботится об этом? – Zax

+0

@Zax - * "... любая конкретная команда для загрузки библиотеки статически" * - нет, вы создаете оберточный общий объект, статически связанный с OpenSSL. Затем ваше приложение загружает общий объект оболочки. Затем приложение использует JNI для вызова общего объекта. – jww

Смежные вопросы