我正在开发一个使用OpenSSL库的应用程序。我试图在Android模拟器上运行应用程序而不用boringssl替换OpenSSL。所以我下载了AOSP源代码树,目前我可以在午餐模拟器中使用。
要添加OpenSSL,我将openssl
克隆到external/openssl
。
基于openssl项目http://github.com/eighthave/openssl-android 我在external / openssl,external / openssl / apps,external / openssl / crypto和external / openssl / ssl文件夹中添加了不同的Android.mk文件,将android-config.mk和Application.mk添加到external / openssl文件夹。但是当我运行mm时,编译器会发出错误:
build/core/base_rules.mk:217: *** external/openssl/crypto: MODULE.TARGET.SHARED_LIBRARIES.libcrypto already defined by external/boringssl.
build/core/ninja.mk:155: recipe for target 'out/build-aosp_arm-mmm-external_openssl_Android.mk.ninja' failed
make: *** [out/build-aosp_arm-mmm-external_openssl_Android.mk.ninja] Error 1
make: Leaving directory '/home/rong/projects/Android/src'
任何人都知道如何在AOSP中构建OpenSSL?
AOSP环境:
开发环境:
答案 0 :(得分:1)
遵循这些说明可能会有所帮助:)
从此网址下载 Android NDK(版本 ndk-r13b):
https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip
将 NDK 提取到 /home/Android。
从此 URL 下载交叉编译安装脚本:
在 Setenv-android.sh 脚本中进行以下更改:
a: 将以下行添加到脚本的开头:
ANDROID_NDK_ROOT=/home/Android/android-ndk-r13b
b:修改_ANDROID_NDK="android-ndk-r13"。
c:修改_ANDROID_EABI="arm-linux-androideabi-4.9"
d:修改_ANDROID_API="android-23"
从此网址下载 openssl(版本 1.0.2n):
https://www.openssl.org/source/old/1.0.2/openssl-1.0.2n.tar.gz
提取下载的 tarball。
打开新的终端窗口并导航到提取的目录。
将 Setenv-android.sh 脚本移动到该目录并执行以下命令:
chmod a+x Setenv-android.sh
source ./Setenv-android.sh
运行以下命令(配置 OpenSSL 源以针对 Android 构建):
./Configure shared android
执行以下命令来构建 libcrypto 和 libssl 共享库。
make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs
让构建成功完成。