openssl-1.0.1g有android平台支持吗?

Nas*_*man 2 android openssl android-ndk heartbleed-bug

由于某些版本的OpenSSL存在问题,我需要将我的OpenSSL版本更新为openssl-1.0.1g.它是否支持Android平台?如果是的话,有人可以向我建议建筑程序吗?我无法编译android平台的源代码.

任何建议都非常感谢.

注意:我将使用openssl for android-ndk

jww*_*jww 5

openssl-1.0.1g有android平台支持吗?

是.

  1. 转到OpenSSL和Android并获取setenv-android.sh
  2. 确保ANDROID_NDK_ROOT已设置
  3. 确保ANDROID_SDK_ROOT已设置
  4. 打开setenv-android.sh,保证_ANDROID_NDK,_ANDROID_EABI以及_ANDROID_API适合自己口味
  5. 运行以下命令(注意运行时的前导点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.