Este fondo de pantalla hace que algunos móviles Android fallen y se tengan que restaurar de fábrica

Jose García

Ice Universe, uno de losleakersmás conocidos del mundo Samsung, hacompartidoen su perfil de Twitter una imagen de lo más peculiar. Se trata de una foto de un paisaje que, al ser configurada como fondo de pantalla,hace que los móviles Samsung e incluso algunos Google Pixel falleny se rentan que resetear de fábrica para poder volver a usarlos.

¿Es un malware? ¿Es algún tipo de hack?Más bien no. Aparentemente, el problema reside en elespacio de color utilizado por la fotoy un bug de Android 10. A continuación vamos a explicar qué está pasando con este fondo de pantalla y cómo se puede solucionar.

Esto no es sRGB

pic.twitter.com/Oay8gewL3A

En el vídeo superior se puede ver el fallo.

Por defecto,Android 10 usa el espacio de color sRGB(estándar RGB, creado por HP y Microsoft), por lo que reproduce imágenes que usan el espacio de color sRGB. El problema reside en que esta imagen que hoy nos ocupa usa elespacio de color RGB, yRGB no es lo mismo que sRGB. Sin ir más lejos, RGB tiene más colores que sRGB.

Dylan Roussel, de 9to5Google, explica en unhilo de Twitterque cuando configuramos la imagen como fondo de pantalla el sistema operativo invoca a la función “doColorManagement” del “ColorManagementProxy”. Básicamente, esta función se encarga decomprobar que el dispositivo soporta su espacio de color.

¿Qué ocurre cuando la imagen es RGB? Lo normal sería que el sistema operativo la convirtiera a sRGB, pero Android 10 no lo hace. Por eso, explica Roussel, un Google Pixel 3 XL con Android 10 falla al poner la imagen como fondo de pantalla. Sin embargo, no sucede lo mismo en un Google Pixel 4 XL con labeta de Android 11, ya que esta versiónsí convierte el espacio de color.

Aquí juega un papel importante el perfil de color Google Skia.Este usa colores premultiplicados, es decir, colores que ya se han multiplicado por el canal alfa (el que define la opacidad). Sin embargo, la mayoría de formatos de archivos de gráficosasumen alfas postmultiplicados(un valor de color y una opacidad separada de ese color). Por eso hay queconvertir correctamente entre los dos formatosal leer y escribir en estos sistemas. El problema es queAndroid procesa la imagensin convertirla, lo que provoca que SystemUI entre en un bucle de fallos y que el dispositivo no se pueda usar. La solución es restaurar de fábrica o, en algunos casos, iniciar el dispositivo en modo seguro, aunque algunos usuarios afirman queeste método no siempre funciona.

it’s make sense, since ‘Google Skia’ have premultiplied alpha channels (first image) and the android java file process the image directly without converting the color to premultiplied color value(second image), the android crashed because it’s try to access an out of bounds indexpic.twitter.com/vN6LVlOd6g

Davide Bianco, desarrollador de ROMs personalizadas de Android,explicaque “lo que sucede es que el valor de la variable “Y” es mayor que los límites del histograma, haciendo que el SystemUI colapse”. En un histograma se muestra la escala RGB de valores desde 0 hasta 255. Sin embargo, si echamos un vistazo alregistro del crasheoveremos queAndroid intenta darle el valor “256”, un valor imposible y que se sale de los límites.

Es un bug que con total seguridad se replicará en otras imágenes que usen el mismo perfil del color. ¿Cómo se soluciona? A nivel del sistema operativo poco se puede hacer, pero a nivel de archivo sí hay una solución sencilla:convertir el perfil de color. Basta con abrir unprograma de edición(Affinity Photo, Photoshop o GIMP) y convertir el perfil a sRGB. Luego se exporta esa imagen como JPEG o PNG y listo, se podrá usar sin problema.

Ice Universeafirmaque Samsung ya recibió información sobre este bug a mediados de mayo y queel problema ha sido resuelto. La mayoría de usuarios afectados usan móviles Samsung, así que será cuestión de esperar a que se libere la actualización pertinente.