【发布时间】:2014-05-30 16:21:05
【问题描述】:
由于某些版本的 OpenSSL 存在令人心碎的问题,我需要将我的 OpenSSL 版本更新为 openssl-1.0.1g。是否支持安卓平台?如果是的话,有人可以向我推荐建造程序吗?我无法编译android平台的源代码。
非常感谢任何好的建议。
注意:我会为 android-ndk 使用 openssl
【问题讨论】:
标签: android android-ndk openssl heartbleed-bug
由于某些版本的 OpenSSL 存在令人心碎的问题,我需要将我的 OpenSSL 版本更新为 openssl-1.0.1g。是否支持安卓平台?如果是的话,有人可以向我推荐建造程序吗?我无法编译android平台的源代码。
非常感谢任何好的建议。
注意:我会为 android-ndk 使用 openssl
【问题讨论】:
标签: android android-ndk openssl heartbleed-bug
openssl-1.0.1g 有安卓平台支持吗?
是的。
setenv-android.sh
ANDROID_NDK_ROOT
ANDROID_SDK_ROOT
setenv-android.sh,并确保_ANDROID_NDK、_ANDROID_EABI 和_ANDROID_API 适合您的口味运行以下命令(运行setenv-android.sh时注意前导点)
$ . ./setenv-android.sh
$ cd openssl-1.0.1g/
$ perl -pi -e 's/install: all install_docs install_sw/install: install_docs install_sw/g' Makefile.org
$ ./config shared -no-ssl2 -no-ssl3 -no-comp -no-hw -no-engine --openssldir=/usr/local/ssl/$ANDROID_API
$ make all
$ sudo -E make install CC=$ANDROID_TOOLCHAIN/arm-linux-androideabi-gcc RANLIB=$ANDROID_TOOLCHAIN/arm-linux-androideabi-ranlib
安装后,您的 Android OpenSSL 将位于例如/usr/local/ssl/android-18。
非常感谢任何好的建议。
注意:Android 的 Zygote 类似于 Linux/Unix init。所有进程都继承自它。问题是,Zygote 加载 OpenSSL 并且它可能是一个低级版本。因此,您必须创建一个 静态 链接到 OpenSSL 的包装共享对象。您的程序将调用您的包装共享对象,以避免 OpenSSL 的已映射和低级版本。
【讨论】: