Skip to content

Get fresh version of openssl using prefab dependencies!

Notifications You must be signed in to change notification settings

ibitcy/eo-mobile-openssl-static

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OpenSSL static library + prefab

Easy to use solution to bake fresh version of OpenSLL into your NDK Library

Before you start

This package made for using it with Gradle's "prefab" dependencies system.

So it's better to start with reading more about it here or here.

Why we did it:

Using Google's "Prefabbed" OpenSLL library you'll face a problem with libssl.so and libcrypto.so on devices with Android 5

In this cases the one and only way to have latest version of OpenSSL in your app is merge it into your library

But you can have the best of both worlds: easy to implement prefab dependency + static .a libraries that will guarantee that your code will work on any version of Android as you expect

How to

  1. Add dependency to your build.gradle:
repositories {
    maven { url 'https://jitpack.io' }
}
..
dependencies {
    ..
    implementation 'com.github.ibitcy:eo-mobile-openssl-static:1.1.1.12'
    ..
}
  1. Add this code pieces to your CMakeLists.txt:
find_package(openssl REQUIRED CONFIG)
..
get_target_property(OPENSSL_INCLUDE_DIR openssl::ssl INTERFACE_INCLUDE_DIRECTORIES)
..
set_target_properties(openssl::crypto PROPERTIES IMPORTED_LOCATION ${OPENSSL_INCLUDE_DIR}/../../../../jni/include/lib/${CMAKE_ANDROID_ARCH_ABI}/libcrypto.a)
set_target_properties(openssl::ssl PROPERTIES IMPORTED_LOCATION ${OPENSSL_INCLUDE_DIR}/../../../../jni/include/lib/${CMAKE_ANDROID_ARCH_ABI}/libssl.a)
..
target_link_libraries(
        your_library_name
        ..
        openssl::ssl
        openssl::crypto
        ..
)
  1. Build! 🎉🎉🎉

Maintenance

We use this repo to build .a and .so https://github.com/stephenkopylov/android_openssl_build_scripts/tree/main