ibitcy / eo-mobile-openssl-static

Get fresh version of openssl using prefab dependencies!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Get fresh version of openssl using prefab dependencies!


Languages

Language:C 99.9%Language:CMake 0.1%