下载ndk,ndk下载地址:https://developer.android.com/ndk/downloads?hl=zh-cn#older-downloads,这边下载:android-ndk-r21e-linux-x86_64.zip和https://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2;
下载openssl源码,源码下载地址:https://www.openssl.org/source/old/1.1.1/index.html;
使用ndk-r21e编译(参考NOTES.ANDROID),具体命令如下所示:
- export PATH=/home/share/android/android-ndk-r21e/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
- export ANDROID_NDK_HOME=/home/share/android/android-ndk-r21e
-
- ./Configure android-arm -D__ANDROID_API__=17 --prefix=/home/share/chen/openssl
- make && make install
使用ndk-r9d编译,但编译不过,可能需要去修改脚本,未去验证,具体命令如下:
- export ANDROID_NDK_HOME=/opt/android/android-ndk-r9d/
- PATH=$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH
-
- ./Configure android-arm -D__ANDROID_API__=17 --prefix=/home/share/chen/openssl
- Configuring OpenSSL version 1.1.1n (0x101010efL) for android-arm
- Using os-specific seed configuration
- $ANDROID_NDK_HOME=/opt/android/android-ndk-r10e/ is invalid at (eval 6) line 37.
-
- // 会报上述错误,报错在文件:./Configurations/15-android.conf,主要是"die "\$ANDROID_NDK_HOME=$ndk is invalid";",需要去修改相关配置才能去编译,具体没去研究
由于项目中使用了android-ndk-r9d,那么openssl 1.1.0l也使用该版本编译,下载该版本ndk:https://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2;
下载openssl源码,源码下载地址:https://www.openssl.org/source/old/1.1.0/index.html;
官方WIKI有写如何为android编译openssl,编译可参考:https://wiki.openssl.org/index.php/Android
下载android编译环境设置脚本,具体下载如下:https://wiki.openssl.org/images/7/70/Setenv-android.sh,修改脚本内容,主要修改如下内容:
- ANDROID_NDK_ROOT="/opt/android/android-ndk-r9d" # 新增
-
- _ANDROID_NDK="/opt/android/android-ndk-r9d"
-
- _ANDROID_EABI="arm-linux-androideabi-4.8"
执行该脚本,具体如下所示:
source ../Setenv-android.sh # 根据具体路径去修改
配置、编译及安装openssl,具体命令如下所示:
- ./config --openssldir=/home/share/chen/openssl/$ANDROID_API --prefix=/home/share/chen/openssl/$ANDROID_API
- make && make install