Este fondo de pantalla desencadena un error poco frecuente que hace que los dispositivos Android entren en un ciclo de arranque

Imagina que estás buscando en internet fondos de pantalla geniales y te encuentras con un paisaje pintoresco. Lo tiene todo; un exuberante bosque verde, un lago virgen con una pequeña isla, montañas cubiertas de nieve en el fondo y una espesa capa de nubes con luz solar que se filtra a través de los huecos. Inmediatamente descargas la imagen, la configuras como fondo de pantalla de tu teléfono y ¡boom! Su teléfono Android se atasca en un bootloop. Suena poco probable, ¿no? Bueno, es cierto para este fondo de pantalla en particular.

En los teléfonos afectados, configurar la foto como fondo de pantalla hace que la pantalla de un teléfono comience a encenderse y apagarse de inmediato, dejándola inutilizable. Reiniciar un teléfono no solucionará el problema. 9to5Google informa que puede reiniciar su teléfono en modo seguro y eliminar el archivo de imagen como una posible solución, pero Android Authority dice que finalmente tuvo que restablecer de fábrica su dispositivo para que las cosas vuelvan a la normalidad. Baste decir que definitivamente no deberías intentar replicar este problema en ninguno de tus dispositivos importantes.

ADVERTENCIA !!! ¡
Nunca configure esta imagen como fondo de pantalla, especialmente para usuarios de teléfonos móviles Samsung!
¡Hará que su teléfono se bloquee!
¡No lo intentes!
Si alguien te envía esta foto, ignórala. pic.twitter.com/rVbozJdhkL
– Universo de hielo (@UniverseIce) 31 de mayo de 2020

El fondo de pantalla fue compartido recientemente en Twitter por el famoso Samsung Universe Ice Universe, quien afirmó que el fondo de pantalla “hará que su teléfono se bloquee”. A pesar de su advertencia, varios usuarios descargaron el fondo de pantalla para verificar si realmente hizo algo en su teléfono y se encontraron con los siguientes resultados:

@UniverseIce Este es un problema de Android que, lamentablemente, también afecta a los Píxel de Google pic.twitter.com/HZTtogLfwB
– Sebastian (@ seb3153) 31 de mayo de 2020

Este es el error más jodido que he visto. Incluso lo intenté en modo seguro pero aún no me ayudó. Tuve que restablecer los datos de la aplicación. Shitsung hace algo pic.twitter.com/ASeHfNNGYI
– Dawood (@pegasaie) 31 de mayo de 2020

Huh, probé esto en un emulador. Se bloquea el sistema de interfaz de usuario. Comprobado por algún problema extraño con el encabezado de la imagen, no noté nada fuera de mi conocimiento limitado de JPEG. También termina correctamente. pic.twitter.com/s2m0q0WNqo
– Jason Ashley (@testsubjectname) 31 de mayo de 2020

El error no parece ser universal; Android Authority dice que inicialmente intentó verificar el error en un Huawei Mate 20 Pro, pero descubrió que el teléfono no parece verse afectado.

Según un hilo de Twitter publicado por el colaborador de 9to5Google, Dylan Roussel, el problema puede deberse a que ciertos teléfonos no admiten el espacio de color utilizado por la imagen. Según Roussel, la imagen utiliza el espacio de color RGB, mientras que muchos teléfonos Android prefieren SRGB.

Roussel señala que cuando probó el problema en un Pixel 4 XL con la vista previa del desarrollador de Android 11, sin embargo, el software parece incluir código para reemplazar espacios de color no compatibles con SRGB. Como resultado, el fondo de pantalla no bloqueó el Pixel 4 XL. Esto sugiere que una solución bastante simple podría estar disponible para cualquier teléfono que sufra este problema. XDA-Developers informa que un desarrollador ya ha enviado un parche a AOSP para resolver el problema.

Explicación del bloqueo del fondo de pantalla

Según Davide Bianco, desarrollador principal de la ROM personalizada “POSP” basada en AOSP , este fondo de pantalla en particular hace que algunos dispositivos Android se bloqueen, ya que utiliza el espacio de color RGB, en lugar del espacio de color sRGB que es compatible de forma nativa en Android. Bianco ha enviado un parche a AOSP que, según los informes, soluciona el problema y la descripción del parche dice que “El problema ocurre cuando el usuario intenta establecer como fondo de pantalla una imagen que no es sRGB. Lo que sucede es que el valor variable y es más alto que los límites del histograma, lo que hace que SysUI se bloquee. Una posible solución es limitar el valor de y para que siempre sea inferior a 256 “.

Junto con Bianco, dos desarrolladores, el miembro senior de XDA BadDaemon y el desarrollador reconocido XDA luca020400 , del popularEl equipo de ROM personalizado de LineageOS también ha encontrado una solución única al problema. Puede consultar las descripciones del parche en LineageOS Gerrit siguiendo este enlace y este enlace .

El problema principal aquí es que SystemUI solo maneja imágenes sRGB para el fondo de pantalla y no tiene ninguna verificación contra fondos de pantalla que no son sRGB. Esto puede conducir a un bloqueo particular en la clase ImageProcessHelper, ya que una variable utilizada para acceder a una matriz supera los límites de la matriz.

Esta variable se llama Y, y es la suma de los valores actuales de píxeles rgb escaneados. Este píxel se obtiene escaneando cada fila y columna de la superficie de la imagen en escala de grises. Cada vez que obtenemos un píxel, le asignamos a y la suma de sus valores rgb (generalmente max es 255) y usamos dicha variable para acceder a un elemento de la matriz de histograma (cuyo tamaño es 256 max) y hacemos cosas con dicho elemento.

Ahora, para imágenes en escala de grises normales, la suma de los valores rgb es siempre 255, pero esta no es una imagen normal. La variable y supera 255, y genera una excepción fuera de los límites (cualquier excepción en SysUI se trata como fatal, lo que lleva a un bucle infinito de bloqueos porque la imagen se procesa cada vez que se inicia SysUI). Ahora, una solución podría ser agregar una verificación después de que y se le asigne un valor que básicamente establece y a 255 si alguna vez supera el límite máximo. Esto realmente funciona, pero tenemos una peor calidad por alguna razón.

Los chicos de LineageOS pudieron descubrir que este problema en particular ocurre debido al redondeo deficiente, principalmente porque los valores de rgb siempre se redondearon al techo en lugar del redondeo normal. Pudieron arreglarlo redondeando manualmente los valores y aparentemente este método también conserva la calidad, pero realmente no veo cómo, principalmente porque SysUI parece siempre convertir la imagen a sRGB, lo que lleva a una pérdida de color cuando el espacio de color es más grande

También fue descubierto por un desarrollador de 9to5Google ( Nota del editor: el desarrollador es Dylan Roussel, desarrollador de Android y colaborador de 9to5Google ) que el problema no ocurre en Android 11 ya que la imagen siempre se convierte a sRGB antes de que se procese de alguna manera .

También intenté crear mi propia imagen rota con Photoshop o Gimp, pero SysUI siempre convirtió la imagen en un espacio de color seguro, lo que no provocó ningún bloqueo (sino una pérdida de colores de c). Incluso intenté extraer el perfil de color de la imagen rota y usarlo en una nueva imagen, pero aún así no pude bloquear SysUI.

Recomendamos no utilizar esta imagen como fondo de pantalla bajo ninguna circunstancia. En caso de que ya lo haya usado y su dispositivo esté atascado en un bootloop, consulte las instrucciones a continuación sobre cómo puede recuperar su dispositivo.

Un informe de 9to5Google sobre el tema revela que el problema se limita a los dispositivos con Android 10 o anterior y no afecta a los dispositivos con Android 11 Developer Preview. Esto se debe al hecho de que en Android 11, el sistema convierte el espacio de color si no es compatible, pero en Android 10 no lo hace. Lo que significa que esto no es un problema con esta imagen en particular y podría ser causada por otras imágenes que usan el espacio de color RGB.

Tenga en cuenta que si bien el problema no afecta a todos los dispositivos Android, recomendamos encarecidamente no probar el fondo de pantalla en su teléfono. En caso de que lo intente de todos modos, es posible que pueda recuperar su dispositivo restableciéndolo por completo o ingresando al modo seguro y cambiando el fondo de pantalla. Pero dado que algunos usuarios en Twitter no pudieron recuperar sus dispositivos usando los métodos antes mencionados, sería mejor si no usa la imagen exacta como fondo de pantalla. Si realmente te gusta el fondo de pantalla, solo toma una captura de pantalla de la imagen y úsala como fondo de pantalla.

Explicación detallada

Ampliando las causas del error según lo explicado por el miembro senior de XDA BadDaemon y el desarrollador reconocido de XDA luca020400 , el fondo de pantalla “maldito” está codificado en un espacio de color especial que se llama “Google / Skia / E3CADAB7BD3DE5E3436874D2A9DEE126” (este es el nombre completo del espacio de color, y Skia se refiere a la biblioteca de gráficos 2D hecha por Google .) En contraste, la mayoría de las otras imágenes de fondo de pantalla están codificadas en un espacio de color llamado “sRGB”.

En las versiones de Android 10 y anteriores, todas las imágenes se convierten a sRGB a menos que los desarrolladores especifiquen lo contrario. Hay un error raro que puede ocurrir al convertir la imagen a sRGB, en el que el código que calcula el valor de “luminancia” de cada píxel logra superar el límite máximo de 255.

La luminancia se calcula utilizando la siguiente fórmula:

Luminancia = 0.2126f * r + 0.7152f * g + 0.0722f * b

Aquí “r”, “g” y “b” son valores de color rojo, verde y azul representados en un valor de 8 bits de 0 a 255.

El problema con este cálculo es que cada parte siempre se redondea antes de la suma final. Uno de los píxeles en el fondo de pantalla “maldito”, cuando está en el proceso de convertir la imagen de sRGB y luego a escala de grises, tiene los siguientes valores RGB: 255, 255, 243, que cuando se conecta a la ecuación anterior se ve así:

r: 0.2126 * 255 = 54.213 => 55

g: 0.7152 * 255 = 182.376 => 183

b: 0.0722 * 255 = 18.411 => 19

Luminancia = r + g + b = 257

Este último valor hace que SystemUI, y básicamente todo el sistema operativo, se bloquee porque excede el valor máximo. Es un error que es increíblemente específico porque implica una combinación de un error de redondeo y un error de conversión del espacio de color.

Este error no afecta a Android 11 porque el espacio de color “Skia” de la imagen no se convierte a sRGB de forma predeterminada. Por lo tanto, este error de conversión del espacio de color y el error de redondeo no se producen en Android 11.

Sin embargo, Romain Guy del equipo de Android Toolkit en Google cree que la causa raíz de este problema es solo la forma en que se calcula la luminancia y no en ningún problema de conversión del espacio de color. Google está llevando a cabo sus propias pruebas internas, por lo que es probable que veamos pronto qué ocurre.

Esta explicación se actualizó para aclarar que uno de los píxeles en el fondo de pantalla “maldito” es la causa de este error específico de cálculo de redondeo de luminancia. También aclaramos que el redondeo ocurre durante cada paso del cálculo de luminancia y no al final.

Solo unos días después de que se revelara este problema, Google informó que estaba trabajando en una solución. Una mención en AOSP descubierta por Mishaal Rahman en Twitter muestra que Google ya tiene una “solución interna” para el problema que se está revisando en este momento. No se especifica cuál es esa solución o cómo podría llegar, pero dado que ya sabemos que Android 11 parchea este problema, parece que sería una solución para las versiones anteriores.

Unos días después de que se divulgara la historia, salió el fotógrafo original de esta foto “maldita”. Gaurav Agrawal dice que tomó la foto en el lago St. Mary en el Parque Nacional Glacier en Montana. Después de tomar la foto, Agrawal dijo que la editó en Lightroom y exportó en el formato “ProPhoto RGB” en lugar de sRGB estándar. Presumiblemente, ahí es donde ocurrió el problema.

No es inusual que el contenido aparentemente inocuo bloquee los teléfonos. Cada cierto tiempo aparece un error que hace que dispositivos iOS se bloqueaban al recibir mensajes por cualquier vía con caracteres específicos, y a principios de este año, se encontró un error en iOS 13 que causaba que los iPhone y iPad se bloqueen al mostrar ciertos caracteres del idioma sindhi. Hace unos años, incluso hubo un video de cinco segundos que podría causar que los iPhones se bloqueen

Hasta que una solución esté ampliamente disponible, probablemente debas tener cuidado con las imágenes que utilizas como fondos de pantalla en Android.

Fuentes: TheVerge, AndroidAuthority, xda-developers, 9to5google

Una colaboración de Tecnología al Día

Comparte en las redes sociales

9 comentarios de “Este fondo de pantalla desencadena un error poco frecuente que hace que los dispositivos Android entren en un ciclo de arranque

    • el asunto es que no es la imagen como tal, es el archivo especifico de imagen
      la imagen, si ya ha sido convertida, o reformateada no hace nada, es solo la original, o mas bien, la que guardo el fotografo a partir de la que tomo con la camara, la que da el problema
      si no es ese archivo especifico (o uno con igual problema), no hay problema, tendras un lindo fondo de escritorio o pantalla de inicio en el movil

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *