Android avanzado: encontrar las librerías que faltan en una ROM portada

COMPARTIR 0 TWITTEAR

CyanogenMod 11 Portar una versión nueva de Android a un dispositivo antiguo es un proceso complicado. La situación es mucho más sencilla cuando el fabricante decide compartir el árbol del dispositivo con todas las dependencias necesarias, pero la gran mayoría de las veces son los desarrolladores aftermarket -dicho de otra manera, la comunidad– los que tienen que crear esta configuración desde cero o modificar un árbol existente de un dispositivo similar. Completar el árbol del dispositivo es una cosa, pero encontrar las librerías adecuadas para que arranque y funcione del todo es otra.

En ocasiones, cuando un dispositivo arranca, el logcat indica que faltan algunas librerías .so. Para encontrar las que no están en la ROM nos vamos a basar en una guía muy simple creada por el miembro de XDA Developers tuxboy y que podéis encontrar en inglés, pero que nosotros vamos a traducir al idioma de Cervantes para que, si hay algún desarrollador entre nuestros lectores, le resulte más fácil comprenderla.

La guía demuestra cómo se pueden usar las herramientas disponibles en el Android NDK para encontrar qué archivos necesitan añadirse para satisfacer las dependencias del fichero ejecutable o de la librería. El proceso es muy directo y no requiere ninguna herramienta especial exceptuando la toolchain disponible en el código fuente de Android. Para utilizar este método, eso sí, necesitáis ser usuarios de GNU/ Linux, Mac OS X o cualquier otro sistema operativo de la familia Unix, además del Android NDK instalado como es lógico.

Para usar este método por primera vez, es necesario configurarlo antes de hacer nada. Para ello, abrimos una terminal y escribimos lo siguiente:

$ echo 'readelf -d $1 | grep "(NEEDED)" | sed -r "s/.*[(.*)]/1/"' | sudo tee -a /usr/local/bin/ldd-arm
$ sudo chmod +x /usr/local/bin/ldd-arm

Una vez hecho esto ya nos podemos poner con la búsqueda de las librerías en cuestión. Para ello, tenemos que usar en la terminal esta sintaxis:

$ ldd-arm PATH_AL_ARCHIVO_EJECUTABLE_O_LIBRERIA

Veámoslo con un ejemplo. Supongamos que queremos encontrar las dependencias necesarias para un sensor HAL. En un terminal tecleamos lo siguiente:

$ ldd-arm copybit.msm7x27a.so

Y deberíamos obtener el siguiente resultado:

liblog.so
libutils.so
libcutils.so
libhardware.so
libdl.so
libmemalloc.so
libc.so
libstdc++.so
libm.so

Con este comando sencillo se pueden ver las librerías necesarias que faltan para que algo funcione correctamente de forma muy directa y sin rodeos, y seguro que los desarrolladores que no conocieran este método lo agradecerán. Para ello podéis pasaros por el hilo oficial de la guía XDA Developers y agradecérselo a su creador.

¡Únete a nuestro canal de Telegram con lo más destacado del día y las mejores ofertas Android!

Únete a nuestro canal de Telegram
Archivado en Librerías, Linux, Mac OS X, Unix
COMPARTIR 0 TWITTEAR

Comentarios (5)

Usa tu cuenta de Facebook para dejar tu opinión.

¿Te ha gustado? ¡No te pierdas nada más!

follow us in feedly

Otras webs de Difoosion