Cómo actualizar la versión de OpenSSL en CSipSimple?

Estoy utilizando código CSipSimple para mi aplicación. Pero, por desgracia, Google Playstore ha planteado una advertencia: Está utilizando una versión vulnerable de OpenSSL

Quiero actualizar la versión de OpenSSL del código existente.

He aquí alguna referencia que he seguido. CSipSimple-OpenSSL Pero estoy atascado en el paso 5 no hay tal comando

m: comando no encontrado

¿Estoy siguiendo pasos incorrectos? Si alguno ha hecho ya con esto, entonces por favor me ayude o proporcione algunos pasos / enlace.

Cualquier ayuda sería muy apreciada

En caso de que alguien encuentre el problema de usar la versión vulnerable de OpenSSL en una de las bibliotecas nativas, agrego más detalles e instrucciones para la solución @Nonos. Este tutorial es para CSipSimple, pero la construcción de bibliotecas estáticas OpenSSL es una solución más genérica.

Recomiendo la segunda solución como agregar una biblioteca estática de OpenSSL es una solución más simple.

Requisitos previos: Android NDK debe configurarse primero.

  1. En primer lugar, descargue la versión compatible con OpenSSL (> 1.0.2f / 1.0.1r).
  2. Descargue dos scripts de este enlace . En caso de que alguien se pregunte lo que hacen: Construyen la biblioteca de OpenSSL para cada compilación android (armeabi, x86, mips, etc …)
  3. Modifique setenv-android-mod.sh -> línea 18 con la versión ndk
  4. Modifique setenv-android-mod.sh -> línea 40 con la versión de la API de Android
  5. Modificar build-all-arch.sh -> línea 7 con el nombre de la carpeta de la biblioteca OpenSSL (en mi caso era openssl-1.0.1t )
  6. Después de la construcción exitosa, dentro de la carpeta dist las bibliotecas estarán presentes
  7. Coloque esas carpetas dentro de csipsimple/CSipSimple-trunk/CSipSimple/jni/openssl/lib
  8. Coloque los archivos de encabezado de openssl-1.0.1{version}/include en csipsimple/CSipSimple-trunk/CSipSimple/jni/openssl/include . Tenga en cuenta que algunos de los archivos de encabezado son enlaces simbólicos a otros archivos.
  9. Compile CSipSimple. Tenga en cuenta que OpenSSL y CSipSimple deben ser compilados con la misma versión de API de Android.

Debe construir correctamente después de hacer los pasos.

mm es para hacer el módulo, esto está disponible dentro de la compilación del proyecto de fuente de Android, por lo que tendrá que configurar un entorno de construcción , dentro de los módulos que se proporciona es el OpenSSL en la plataforma Android (desde el archivo readme que está haciendo referencia) . La configuración de un entorno de compilación tomará por lo menos un día o dos por sí mismo por lo que no lo recomendaría a menos que ya lo tienen por una razón diferente. Además, Android cayó soporte para OpenSSL en su última versión y están utilizando BoringSSL. A mi entender, la mejor manera de lograr lo que quieres aquí es cruzar la compilación y construir OpenSSL desde el origen siguiendo las directrices de la wiki abierta de ssl, creando archivos .a y haciendo una referencia estática a ellos en tu aplicación. Esta es también la forma recomendada para evitar referenciar las bibliotecas del sistema en N y versiones posteriores.

EDIT : Para agregar las bibliotecas a mi proyecto como bibliotecas estáticas pre-construidas, he creado una carpeta openssl bajo mi directorio jni que contiene lib / (que contiene los archivos .a para las arquitecturas que apoyo), include / que tiene las necesarias encontrar que en la versión de openssl que descargó) y Android.mk que tiene lo siguiente:

 include $(CLEAR_VARS) LOCAL_MODULE := libssl LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libssl.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcrypto LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libcrypto.a include $(PREBUILT_STATIC_LIBRARY) 

Luego, para usar la biblioteca dentro de otro módulo jni agregué lo siguiente a su archivo Android.mk:

 LOCAL_C_INCLUDES := $(LOCAL_PATH)/../openssl/include LOCAL_STATIC_LIBRARIES := libssl libcrypto 

Esto también es similar a lo que se ha hecho aquí , excepto que no se recomienda usar archivos .a proporcionados por fuentes no openssl.

  • Cómo utilizar OpenSSL Library en la aplicación ANDROID
  • Cómo construir OpenSSL para generar libcrypto.a con Android NDK y Windows
  • Construir Android openssl usando NDK no hace los archivos de ensamblaje arm4 correctamente
  • Descifrar Android SSE con OpenSSL
  • Problemas de construcción de openssl para Android
  • Cómo importar clave privada RSA, generada por openssl, en AndroidKeyStore
  • ¿Cuál es el significado exacto de la versión de la plataforma Android NDK en comparación con el nivel API?
  • No se puede crear una biblioteca externa de OpenSSL para Android NDK en Windows / Cygwin
  • Compila OpenSSL para Android con Bazel
  • Verificación de la firma de compra en la aplicación con PHP openssl
  • Protocolos SSL / TLS y suites de cifrado con AndroidHttpClient
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.