A veces las aplicaciones se actualizan incluso si no le hemos dado permisos para ello. ¿Cómo lo consiguen? ¿Podemos evitarlo? Son algunas preguntas que hoy respondemos.
Las aplicaciones reciben actualizaciones continuamente para mejorar sus funcionalidades, corregir errores, o simplemente prepararse para nuevas versiones.
No siempre queremos que las aplicaciones se actualicen solas, pero en ocasiones no tenemos más remedio. De un día para otro la aplicación cambia radicalmente o añade nuevas funcionalidades, y no podemos hacer nada para evitarlo.
No he actualizado la aplicación, pero ha cambiado ¿Por qué?
Existen varias aplicaciones que lo hacen. Por ejemplo, Whatsapp incluyó los GIF en su aplicación sin que tuviésemos que actualizar, pero algunas aplicaciones se han apuntado a cambios más radicales, como Spotify o Google Play Music, que nos cambiaron la interfaz por completo.
Seguramente pienses que quizás es porque se te ha olvidado desmarcar las actualizaciones automáticas, o que se trate de algún error puntual de Google Play, pero la realidad es distinta. Los desarrolladores actualizan sin que lo sepamos de dos formas.
El secreto: Las actualizaciones server-side
Una técnica que los desarrolladores utilizan a menudo. A veces el desarrollador no es que actualice las aplicaciones, sino que dichas actualizaciones ya las había incluido en la aplicación que tenemos instalada. ¿Cómo hace entonces el desarrollador para «actualizarnos»? Fácil, a través de un servidor.
En este tipo de aplicaciones solemos tener una cuenta asociada, desde la cual accedemos a un servidor. A través de una variable, el servidor le dice a la aplicación que cargue «la versión antigua de una aplicación». Una vez el desarrollador esté listo para que los usuarios reciban la actualización, simplemente tiene que cambiar una pequeña variable en el servidor, y cuando nos conectemos a Internet, la aplicación cargará «la nueva versión».
¿En que tipo de características se hace esto? Generalmente en aquellas que no son muy relevantes. Un ejemplo son los GIF de Whatsapp, ya que si bien implementar esa funcionalidad era bien sencillo, no ha sido hasta que estaban seguros de que sus servidores estaban preparados que las han habilitado para todo el mundo. También se puede hacer con cambios de diseño que no son liberados hasta que han pasado todos los test.
Las actualizaciones server-side también impiden que probemos nuevas versiones aunque descarguemos el último APK
Los contenidos web y los archivos obb, otra forma de actualizar sin hacerlo
Por otro lado, otro tipo de forma que tienen los desarrolladores para actualizar una aplicación sin pasar por medio de Google Play es a través de la web, aunque esto no nos vale para todas las aplicaciones.
Algunas aplicaciones bastante más sencillas no son más que un marco que carga información, como si de una web se tratara. Si la aplicación lo único que hace es cargar contenido de una web.
Por otro lado, una aplicación puede leer datos externos a la aplicación (como los archivos de extensión .obb de algunos juegos) que pueden actualizarse al conectar al servidor de la aplicación, añadiendo nuevos contenidos sin necesidad de cambiar de aplicación.
Las aplicaciones también pueden recibir nuevos contenidos sin pasar por Google Play
¿Es peligroso que un desarrollador pueda cambiar la aplicación aunque no queramos?
Una cuestión interesante que se nos plantea es si un desarrollador puede utilizar este tipo de características con fines maliciosos.
Imaginad que instalamos una aplicación para escuchar música. ¿Puede el desarrollador «actualizar sin nuestro permiso» la aplicación para que; por ejemplo; nos robe nuestros contactos?
Puede parecer rebuscado, pero podría pasar. Al igual que una aplicación puede contener malware, también puede ocultar malware hasta que el desarrollador decida activar una función desde el lado del servidor.
No obstante, existe una restricción importante a la hora de actualizar una aplicación desde el lado del servidor, y es que las funciones ocultas no pueden pedir nuevos permisos que no hubiesemos aceptado cuando instalamos o actualizamos por última vez.
A pesar de que un desarrollador pueda hacer eso, no es algo que deba preocuparnos. ¿Por qué iba a crear alguien un malware que se active desde un servidor pudiendo distribuir malware de forma directa?