lunes, 1 de junio de 2020

Este fondo de pantalla hace que algunos móviles Android fallen y todo apunta a un problema con el espacio de color

Este fondo de pantalla hace que algunos móviles Android fallen y todo apunta a un problema con el espacio de color

Ice Universe, uno de los leakers más conocidos del mundo Samsung, ha compartido en 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 fallen.

¿Es un malware? ¿Es algún tipo de hack? Más bien no. Aparentemente, el problema reside en el espacio de color utilizado por la foto y 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

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 el espacio de color RGB, y RGB no es lo mismo que sRGB. Sin ir más lejos, RGB tiene más colores que sRGB.

Dylan Roussel, de 9to5Google, explica en un hilo de Twitter que 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 de comprobar 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 la beta de Android 11, ya que esta versión sí convierte el espacio de color.

Perfil de color Perfil de color de la imagen.

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áficos asumen alfas postmultiplicados (un valor de color y una opacidad separada de ese color). Por eso hay que convertir correctamente entre los dos formatos al leer y escribir en estos sistemas. El problema es que Android procesa la imagen sin convertirla, lo que provoca que SystemUI entre en un bucle de fallos y que el dispositivo no se pueda usar.

Davide Bianco, desarrollador de ROMs personalizadas de Android, explica que "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 al registro del crasheo veremos que Android 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 un programa 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 Universe afirma que Samsung ya recibió información sobre este bug a mediados de mayo y que el 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.

-
La noticia Este fondo de pantalla hace que algunos móviles Android fallen y todo apunta a un problema con el espacio de color fue publicada originalmente en Xataka por Jose García .



Gracias a Jose García

No hay comentarios.:

Publicar un comentario