En efecto, una foto puso en evidencia una grave vulnerabilidad de Android.
La imagen en cuestión fue tomada en 2019 por el fotógrafo Gaurav Agrawal en St Mary Lake en el Parque Nacional Glacier, Montana, Estados Unidos.
Una versión de la imagen difundida en las redes sociales fue usada como wallpaper haciendo que las pantallas de los teléfonos inteligentes se encendieran y apagaran sin cesar y en algunos casos los inutilizó. Los teléfonos con la imagen utilizados como fondo de pantalla se atascaron en un bootloop y los usuarios se vieron obligados a restaurar los teléfonos a sus valores de fábrica.
Técnicamente la explicación es sencilla: el perfil de color de la imagen superó los límites de lo que Android puede manejar en un píxel.
El evento
La forma como se hizo viral esta falla también es digna de estudio, pero por científicos del comportamiento humano.
Alguien tuiteó la imagen pero advirtiendo que “configurar la imagen como fondo de pantalla en los teléfonos Samsung especialmente hará que se bloqueen”.
Pero como siempre ocurre, muchos pensaron que era una broma, o simplemente la curiosidad pudo más que la razón. El hecho es que bastantes personas lo configuraron como wallpaper y los teléfonos empezaron a boquearse.
Como ya se explicó, este lazo infinito de falla y reinicio de arranque sólo se puede romper cuando el teléfono es restaurado a sus valores de fábrica en modo seguro, lo que significa que los datos del teléfono se pierden por completo. Sin embargo, algunos usuarios pudieron ingresar al modo seguro y eliminar la imagen de la galería de fotos y establecer el fondo de pantalla como predeterminado, y luego reiniciar el teléfono para que funcione normalmente.
Fallaron distintos modelos de teléfonos Google Pixel, OnePlus, Nokia y Xiaomi, que usaban sistema operativo Android 10 o anterior: No se reportaron errores en equipos con Android 11.
La foto
La foto fue editada en Lightroom y luego exportada en el formato “ProPhoto RGB” en lugar de sRGB estándar, donde se cree que la historia comenzó. Gaurav subió la foto a su perfil de Flicker.
Gaurav le explicó a la BBC: “No hice nada intencionalmente”. “No sabía que el formato haría esto”, agregó. Curiosamente, la foto activó el error cuando se configuró solo como fondo de pantalla, no causó ningún problema al teléfono cuando se encontraba en la aplicación Google Photos.
La explicación
Básicamente, la imagen afectó teléfonos que emplean el motor de color predeterminado Android que usa el espacio de color sRGB en lugar del espacio de color RGB usado por la imagen. Cuando un usuario intenta establecer como fondo de pantalla una imagen que es RGB y no sRGB, se activa el bootloop: la clase ImageProcessorHelper se bloquea cuando una variable utilizada para acceder a una matriz cruza los límites de la matriz.
En términos sencillos, en computación, todo termina expresándose en números, igual para los textos, sonidos o imágenes. En este caso, el color de algún pixel, al ser traducido en un número, resultó en un valor superior al que el sistema operativo podía manejar, creando un lazo infinito de ejecución.
Esto es simplemente una condición de programación que nuca había sido probada. Un bug de programación que debe corregirse.
Según los informes, ya Google está realizando una revisión interna; es posible que pronto veamos una solución para esta vulnerabilidad (que podría usarse para actos nefastos).