Compruebe la versión de OpenSSL en Android con el tiempo de ejecución de Java o el comando de shell

Tengo un problema al comprobar la versión de OpenSSL en un dispositivo Android. He intentado grep OpenSSLdesde system/lib/libssl.socon java runtime.exec, pero no funciona?

Alguien puede ayudarme, ¿cómo hacer un comando para verificar la versión de OpenSSL en Android?

Respuestas (1)

grepRealmente no le gustan los archivos binarios, pero puede extraer las cadenas del binario y grep aquellos que usan strings. Este binario no está disponible en la mayoría de las ROM de stock, pero puede usar Busybox o una herramienta similar para usarlo en la mayoría de los dispositivos.

En mi dispositivo, el siguiente comando enumera la versión correcta de OpenSSL utilizada por libssl.so:

strings /system/lib/libssl.so | grep -i openssl

Esto me da el siguiente resultado:

OpenSSLDie
OPENSSL_cleanse
OPENSSL_DIR_read
OPENSSL_DIR_end
external/openssl/ssl/bio_ssl.c
external/openssl/ssl/d1_both.c
external/openssl/ssl/d1_enc.c
external/openssl/ssl/d1_lib.c
external/openssl/ssl/d1_pkt.c
external/openssl/ssl/d1_srtp.c
external/openssl/ssl/s23_clnt.c
external/openssl/ssl/s23_lib.c
external/openssl/ssl/s23_srvr.c
external/openssl/ssl/s2_clnt.c
external/openssl/ssl/s2_enc.c
external/openssl/ssl/s2_lib.c
external/openssl/ssl/s2_pkt.c
external/openssl/ssl/s2_srvr.c
external/openssl/ssl/s3_both.c
external/openssl/ssl/s3_cbc.c
external/openssl/ssl/s3_clnt.c
external/openssl/ssl/s3_enc.c
external/openssl/ssl/s3_lib.c
external/openssl/ssl/s3_pkt.c
external/openssl/ssl/s3_srvr.c
external/openssl/ssl/ssl_asn1.c
external/openssl/ssl/ssl_cert.c
OPENSSL_DIR_read(&ctx, '
external/openssl/ssl/ssl_ciph.c
OPENSSL_malloc Error
OpenSSL 1.0.1j 15 Oct 2014
external/openssl/ssl/ssl_lib.c
external/openssl/ssl/ssl_rsa.c
external/openssl/ssl/ssl_sess.c
external/openssl/ssl/ssl_txt.c
external/openssl/ssl/t1_enc.c
external/openssl/ssl/t1_lib.c
external/openssl/ssl/t1_reneg.c
external/openssl/ssl/tls_srp.c
DTLSv1 part of OpenSSL 1.0.1j 15 Oct 2014
SSLv2 part of OpenSSL 1.0.1j 15 Oct 2014
SSLv3 part of OpenSSL 1.0.1j 15 Oct 2014
TLSv1 part of OpenSSL 1.0.1j 15 Oct 2014

No puedo confirmar que esto funcione para todos los dispositivos, pero no veo ninguna razón por la que esto falle.

+1, aunque el comando no funcionaría en una ROM ordinaria. stringsel binario no está incluido en una ROM estándar típica. Necesitarías Busybox para eso.
@Firelord lo siento, no sabía eso. Gracias por corregirme.
@gertmenkel, ¿cómo verificar si desrooteo al usuario? con el comando de shell java runtime?
Las preguntas de @Erwin Sitorus sobre cómo escribir aplicaciones (en Android o en general) deben hacerse en stackoverflow.com . Este sitio está destinado a usuarios de Android, no a programadores de Android.
@gertmenkel, solo quiero verificar si desrooteo al usuario con el comando de shell, porque el cuadro ocupado solo se ejecuta si el usuario rootea.
@Erwin Sitorus hay esta respuesta en StackOverflow que analiza muchas formas de detectar si un dispositivo está rooteado: stackoverflow.com/a/8097801/3746429
@gertmenkel, solo quiero, mi codificación (comando de shell con tiempo de ejecución) puede ejecutarse en todos los Android sin dispositivo rooteado, ¿alguna sugerencia sobre cómo ver la versión de openssl en android sin root?
@gertmenkel, ¿puede ayudarme a verificar la versión de la aplicación openssl del sistema/aplicación o la aplicación instalada en Android? con grep