Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to build OpenSSL to generate libcrypto.a with Android NDK and Windows

I created an application for android which uses native code.

It needs the libcrypto.a library from OpenSSL, I don't remember where I downloaded it, but it works. The problem is that the version of the lib is 1.0.0a and I want to update to the latest (now v1.0.1e). I downloaded https://github.com/android/platform_external_openssl and tried to compile it, but there are a lot of errors while compiling. I don't know how to generate the lib.

Or maybe the c and h files (from http://www.openssl.org/source/) can be included in my c&h files and not use the lib?

Thanks!

like image 782
JoniJnm Avatar asked May 29 '13 09:05

JoniJnm


2 Answers

If you don't want to compile the libs yourself I have just done this and uploaded to github.

Version 1.0.2 (22 Jan 2015) of OpenSSL

It includes static and shared libraries for Arm and x86, also include Android.mk and include files.

https://github.com/emileb/OpenSSL-for-Android-Prebuilt

like image 163
Emile Belanger Avatar answered Nov 20 '22 19:11

Emile Belanger


Using the latest OpenSSL sources you should be able to use the standalone toolchain from the Android NDK and configure + make. The basic steps are:

  1. export TOOL_PREFIX, CC and SYSROOT to point at appropriate toolchain paths
  2. Configure
  3. make

A couple of examples:

ARMv5te:

CC="/path/to/arm-linux-androideabi-gcc -mtune=xscale -march=armv5te -msoft-float --sysroot=/ndk_path/platforms/android-9/arch-arm"
./Configure android no-asm

ARMv7:

CC="/path/to/arm-linux-androideabi-gcc -march=armv7-a -mfloat-abi=softfp --sysroot=/ndk_path/platforms/android-9/arch-arm"
./Configure android-armv7 no-asm
like image 9
NuSkooler Avatar answered Nov 20 '22 19:11

NuSkooler