Antiguamente sabíamos qué cambiaba en cada actualización de una aplicación, pero hoy en día las novedades llegan lentamente y de forma escalonada. A cambio, nos enteramos con meses o hasta años de antelación de las novedades que llegan a las aplicaciones como WhatsApp.
Gracias a páginas como WaBetaInfo y personas como Alessandro Paluzzi, Mishaal Rahman, Jane Manchun y otros, sabemos en qué están trabajando nuestras apps favoritas mucho antes de que podamos probar estas funciones en nuestros móviles. ¿Cómo lo hacen?
Un vistazo rápido, desde Android Studio
Los especialistas en destripar aplicaciones en busca de funciones que todavía no están activas son cracks con mucha experiencia, perseverancia y herramientas avanzadas para ello, pero si tú también quieres hacer tus pinitos investigando de forma básica, puedes hacerlo con Android Studio.
Sin root, herramientas avanzadas, módulos de Magisk ni inventos, una forma fácil y efectiva que es accesible para todo el mundo es el análisis de APK incluído en Android Studio. Tan sencillo que no tienes ni que encontrar el menú correcto: basta con arrastrar un APK a la interfaz de Android Studio y esperar a que se complete el análisis.
Android Studio nos muestra entonces los entresijos del archivo APK y, aunque no se trata de una descompilación propiamente dicha (no podemos ver el código fuente de la aplicación), sí tenemos visibilidad de otros datos que se usan comúnmente para encontrar novedades que están en llegar: los textos de la aplicación.
Si los desarrolladores de la aplicación han incluido ya los textos de una función que está por llegar, podrás encontrarlos -con algo de paciencia- dentro de resources.arsc, bajo el tipo de string. Muchas filtraciones de novedades nos llegan primero a través de las cadenas de texto que se encuentran en el APK.
Ojeando el código del APK
Las cadenas de texto nos ayudan a hacernos una buena idea de lo que está por llegar, pero no siempre son suficientes. Para espiar mejor lo que está por llegar, los expertos deben recurrir a ingeniería inversa en el sentido más clásico, para tratar de obtener el código fuente o, al menos, una versión aproximada.
Las herramientas para llevar a cabo esta tarea abundan y van desde aquellas de código abierto, como APKTool, a herramientas profesionales como JEB Decompiler, que requiere de una suscripción mensual de 120 euros. Con distintos grados de éxito -y facilidad de uso- lo que se busca es lo mismo: ver cómo funciona la aplicación por dentro.
Estas herramientas rara vez nos generan una copia exacta de todo el código fuente lista para importar en Android Studio, pero como mínimo sirven para despejar dudas sobre la lógica detrás de algunas funciones o pistas sobre qué se debe hacer para lograr activar la novedad a la fuerza.
No es algo ni mucho menos fácil, pues implica interpretar mentalmente la lógica que vemos en la aplicación, de modo que hay que saber bien dónde buscar y, sobre todo, echarle mucha paciencia al asunto.
¿Qué ha cambiado?
Tan importante es mirar qué hay dentro de un APK como comparar meticulosamente todo lo que ha cambiado de una versión a otra. La buena noticia es que no es necesario hacerlo a mano, sino que una vez más existen todo tipo de herramientas para comprar los archivos de una carpeta y ver qué ha cambiado.
Esto es especialmente útil al comparar los textos de una aplicación, de una versión a la anterior, pues de este modo se puede filtrar lo que ha llegado nuevo -y digno de ser examinado- de las líneas y líneas de textos que ya estaban ahí.
Examinar en profundidad un APK es una tarea que consume tiempo, y teniendo en cuenta que la mayoría de aplicaciones se actualizan un par de veces por semana, concentrarse en lo que ha cambiado permite ahorrar esfuerzos.
Para ello hace falta organizarse bien, usar DIFF o alternativas o básicamente cualquier aplicación que sirva para comparar dos archivos o, mejor aún, los archivos de dos carpetas. En Windows, una buena opción es WinMerge.
Las actividades ocultas
Una forma menos robótica de tener una ventana a las tripas de una aplicación se encuentra en la lista de actividades que contiene. Las actividad de Android son un concepto abstracto que se refiere con frecuencia a las distintas pantallas o partes de una aplicación, y con una aplicación como Activity Launcher podemos ver cuáles son y, a veces, lanzarlas.
De este modo podemos encontrar muchas funciones ocultas en aplicaciones, pero su utilidad es todavía mejor con root, pues entonces se muestran también actividades ocultas que, de nuevo, a veces se pueden lanzar y probar así una función en desarrollo que de otro modo no sería posible.
Frente a las activaciones remotas, root
Las activaciones remotas de novedades están cada vez más de moda. Con ellas, aunque dos personas tengan la misma versión de una aplicación, pueden tener distintas funciones disponibles en la misma. También dificultan encontrar y probar funciones ocultas en aplicaciones como WhatsApp.
La buena noticia es que no está todo perdido. Hecha la ley, hecha la trampa, y los expertos se apoyan de herramientas como módulos de Magisk personalizados para forzar la activación de determinadas funciones, como si hubieran llegado desde el servidor.
También es posible realizar cambios editando los archivos de configuración de las aplicaciones, que normalmente son archivos XML. El acceso a la carpeta de datos requiere tener permiso de root, que es sin lugar a dudas un requisito imprescindible para destripar apps.
El problema es que los archivos XML de configuración no siempre son explicativos, de modo que a no ser que el código de la aplicación arroje pistas sobre qué es qué, será necesario recurrir a ensayo y error para ver si cambia algo.
Por un lado están los archivos XML, pero para examinar a fondo los entresijos de una aplicación es necesario también espiar sus bases de datos, normalmente en formato sqlite y que se pueden abrir -con root- con apps como SQLite Database Editor. De nuevo, el mayor problema radica en saber dónde mirar, pues una app puede tener decenas de bases de datos, cada una con una colección de tablas y muchas entradas.
Es precisamente modificando bases de datos como es posible modificar, o al menos intentarlo, las configuraciones que llegan desde el lado del servidor, ya sean desde la propia aplicación o, para complicar más el asunto, desde los Servicios de Google Play.
Es precisamente así como se descubrió Coolwalk y pudimos probarlo, aunque no todo es un camino de rosas e intentar forzar la base de datos supone andar de peleas con los Servicios de Google, que intentarán sobreescribir el valor en cuanto nos demos la vuelta.
En resumen, destripar aplicaciones para ver qué está por llegar no es algo ni fácil ni para todo el mundo, que requiere de conocimientos avanzados, paciencia y ser bastante metódico. La próxima vez que leas sobre una filtración de algo que está por llegar, recuerda que hay mucho trabajo detrás.