由于某些版本的 OpenSSL 中存在令人心碎的问题,我需要将我的 OpenSSL 版本更新为 openssl-1.0.1g。是否支持安卓平台?如果是的话,有人可以向我推荐建造程序吗?我无法编译 android 平台的源代码。
任何善意的建议都将受到高度赞赏。
注意:我将为 android-ndk 使用 openssl
由于某些版本的 OpenSSL 中存在令人心碎的问题,我需要将我的 OpenSSL 版本更新为 openssl-1.0.1g。是否支持安卓平台?如果是的话,有人可以向我推荐建造程序吗?我无法编译 android 平台的源代码。
任何善意的建议都将受到高度赞赏。
注意:我将为 android-ndk 使用 openssl
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 的已映射和低级版本。