安卓编译OpenSSL源码。
编译OpenSSL是用ndk来编译源码的方式来生成应用程序和动态库,这种官方源码支持也比较便利。
1.下载源码解压。
注意不要下载GitHub里面的源码,最新的3.0配置安卓编译的时候无法配置成功的,有兴趣可以去研究3.0配置不成功的原因,这里采用最简单的降版本处理。
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1a.tar.gz
tar -zxvf openssl-1.1.1a.tar.gz
2.配置编译。
cd openssl-1.1.1a
配置方面参考源码里面的说明文档(NOTES.ANDROID),一下是参考了里面的例子结合现有的ndk制作的命令。
export ANDROID_NDK=/work/huangriwang/android-ndk-r10e
PATH=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH
用的是RK3288,这里配置用android-arm api版本是21,可以根据实际情况调整。
./Configure android-arm -D__ANDROID_API__=21
配置正常如下图
make -j8
编译没有报什么错就会生成相应的库和应用程序。
3.拷贝执行验证。
通过adb工具的命令把动态库放到/system/lib里面。把openssl程序放到/vendor/opt/webbox/bin里面即可。
命令参考:
adb root
adb remount
adb shell
adb push e:\libssl.so.1.1 /vendor/opt/webbox/bin
adb push e:\libcrypto.so.1.1 /vendor/opt/webbox/bin/
adb push e:\openssl /vendor/opt/webbox/bin