Da diversi giorni circola la notizia che esiste uno sfondo in grado di causare su Android crash continui, significa che lo smartphone entra in un cosiddetto bootloop. Lo hanno ormai tutti definito “cursed wallpaper”, in altre parole lo sfondo maledetto. Come può però un semplice sfondo causare un Android crash di questo tipo? Chi ha scoperto il bug? Che soluzioni ci sono per risolvere il problema dei continui bootloop?
Attenzione: non cercare di impostare questo sfondo nel tuo smartphone!
Cursed wallpaper, chi l’ha scoperto
Lo sfondo è stato scoperto da un leaker cinese, Ice Universe, che tratta soprattutto prodotti Samsung. Il 31 maggio Ice Universe ha twittato a proposito di un’immagine che, se impostata come sfondo, causa un crash del sistema Android e manda in bootloop il dispositivo.
WARNING!!!
Never set this picture as wallpaper, especially for Samsung mobile phone users!
It will cause your phone to crash!
Don't try it!
If someone sends you this picture, please ignore it. pic.twitter.com/rVbozJdhkL— ICE UNIVERSE (@UniverseIce) May 31, 2020
In un primo momento nessuno è riuscito a comprendere come questo sfondo riuscisse a causare un crash di tale portata. Cosa ancor più importante, nessuno ha saputo dare una soluzione immediata al problema. Coloro che si sono trovati col proprio device in bootloop a causa dello sfondo, non hanno potuto fare altro che resettare lo smartphone ai dati di fabbrica, perdendo tutti i dati non sottoposti a backup.
Ecco una prova eseguita da 9to5Google in cui puoi vedere cosa succede se imposti come sfondo l’immagine in questione:
Android crash con lo sfondo: ecco perché
Appena diffusa la notizia un gran numero di appassionati ed esperti del settore ha provato a scavare a fondo nel problema, cercando di capire il motivo per cui proprio quell’immagine causi in Android crash continui di tale gravità.
La svolta è arrivata da un collaboratore di 9to5google, Dylan Roussel, il quale ha scoperto che lo sfondo impostato nel suo Pixel 4 XL, che monta Android 11, non causa alcun problema allo smartphone. Se invece lo stesso sfondo viene impostato su un Pixel 3 XL, che monta Android 10, questo provoca il bootloop del dispositivo. Da qui è arrivata la svolta per la soluzione del mistero.
I won't show everything, but basically, the function doColorManagement of the ColorManagementProxy is called at some point. This function checks if the Color Space of the image is supported by the device. The image is supported by default if its color space is SRGB, or… pic.twitter.com/1Ga8DBTEEY
— Dylan Roussel (@evowizz) May 31, 2020
Android 10 e la gestione dello spazio colore
Sembra che gli arresti anomali siano causati dal fatto che Android 10 possa visualizzare come sfondo solamente immagini che hanno uno spazio colore sRGB. Spazi colore diversi nello sfondo non sono supportati e causano quindi un crash all’interno dei file di sistema. Il ”cursed wallpaper” è in formato RGB, non sRGB, ed è per questo motivo che causa l’arresto anomalo del device. Come si può dedurre, non è quindi l’immagine in sé il problema, ma il suo spazio colore; per questa ragione anche altre immagini potrebbero provocare lo stesso tipo di bug se impostate come sfondo.
Come spiega Dylan Roussel, a livello più tecnico Android 10 non gestisce una variabile (y) all’interno della classe HimageProcessHelper. Tale variabile serve per accedere all’histogram array, che rappresenta la distribuzione di colore all’interno dei pixel dello schermo, la cui somma, nel caso nostro caso, eccede quella gestibile da Android 10, causando una cosiddetta out-of-bound exception che provoca il bootloop del dispositivo.
Android 11, diversamente dal predecessore, convertirà tutte le immagini in sRGB, eliminando, di fatto, il bug presente fino ad ora.
Da poco Google ha confermato che c’è già una soluzione interna in revisione per risolvere il grave problema. Per questo motivo possiamo aspettarci che il bug sarà risolto nei prossimi aggiornamenti di sistema e che sicuramente non sarà presente nel prossimo Android 11.
Google confirms they are reviewing potential fixes for the "cursed wallpaper" that causes phones to bootloop.
Source: https://t.co/FGVQC6eeTc
Context: https://t.co/RxUeWAkNJY pic.twitter.com/dCbfUU5UXo
— Mishaal Rahman (@MishaalRahman) June 2, 2020
Differenza tra sRGB e RGB in pillole
Come abbiamo visto la causa del grave bug di Android è il differente spazio colore, ma cos’è esattamente lo spazio colore? Che differenza c’è tra sRGB e RGB?
La parola RGB rappresenta le iniziali in inglese di rosso, verde e blu ed è una forma di visualizzazione dei colori. La differenza tra sRGB e RGB riguarda lo spettro di colori catturato.
sRGB è lo standard internazionale, ampiamente utilizzato sui più svariati dispositivi, come TV, smartphone, tablet, fotocamere e stampanti. A differenza dello spazio colore RGB, ha uno spettro più limitato; essendo che lo standard RGB viene utilizzato per le stampe industriali, presenta una gamma di colori più ampia, rendendoli più vividi.
Curiosità sullo sfondo maledetto
Soffermandosi sull’immagine dello sfondo maledetto, così maledetto non sembra, anzi! Sei curioso di sapere dove è stata scattata l’ormai famosa immagine?
L’immagine ritrae il bellissimo St. Mary Lake, che si trova nel Parco nazionale dei ghiacciai, nello stato del Montana, in USA.
Chissà, forse un crash di sistema darà a qualcuno lo spunto per un bel viaggio.