Piccola premessa, nel dubbio che qualcuno creda che io capisca quello di cui sto parlando, beh è solo un illusione, un miraggio, io resto la solita capra ignorante.
Quote:
Originariamente inviato da NIO72
Sono un po ignorante in materia, ma come è possibile un blocco del cellulare per una foto? Non capisco
|
Una spiegazione approssimativa la trovi nel primo articolo:
Cosa succede effettivamente? Una volta impostata come sfondo lo schermo bloccato inizia a lampeggiare e a riavviarsi in loop senza la speranza di fermare il tutto.
Come mai accade tutto questo? Sembra che il problema sia causato dalla gamma dinamica dell’immagine, che a differenza dello standard sRGB con cui di solito lavora Android 10 qui si presenti con un profilo colore Google Skia. In questo caso dunque il problema avviene nel momento in cui lo smartphone e più precisamente il sistema operativo converte l'immagine e non riuscendoci va in loop mandando dunque in blocco lo smartphone.
Presumo ci si possa fermare qui, ma se invece mastichi un po' di inglese e vorresti una spiegazione maggiormente tecnica ho trovato facilmente
quest'articolo su XDA
Nelle versioni Android 10 e precedenti, tutte le immagini vengono convertite in sRGB se non diversamente specificato dagli sviluppatori. Esiste un raro bug che può verificarsi durante la conversione dell'immagine in sRGB, in cui il codice che calcola il valore di "luminanza" di ciascun pixel riesce a superare il limite massimo di 255.
La luminanza viene calcolata utilizzando la seguente formula:
Luminanza = .2126f * r + .7152f * g + .0722f * b
Qui "r", "g" e "b" sono valori di colore rosso, verde e blu rappresentati in un valore di 8 bit da 0 a 255.
Il problema con questo calcolo è che ogni parte è sempre arrotondata per eccesso prima della sommatoria finale. Uno dei pixel nello sfondo "maledetto", durante il processo di conversione dell'immagine da sRGB e quindi in scala di grigi, ha i seguenti valori RGB: 255, 255, 243, che quando sono collegati all'equazione sopra appare come:
r: .2126 * 255 = 54.213 => 55
g: .7152 * 255 = 182.376 => 183
b: .0722 * 255 = 18.411 => 19
Luminanza = r + g + b = 257
Questo valore causa l'arresto anomalo di SystemUI, e sostanzialmente dell'intero sistema operativo, poiché supera il valore massimo. È un bug incredibilmente specifico perché comporta una combinazione di un errore di arrotondamento e un errore di conversione dello spazio colore.