[Ažuriranje 2: Popravljeno] Ova pozadina pokreće rijetku pogrešku koja uzrokuje pokretanje Android uređaja

click fraud protection

Ova pozadina pokreće rijetku pogrešku koja uzrokuje pokretanje Android uređaja. Ne isprobavajte pozadinu na svom uređaju ili biste mogli izgubiti sve svoje podatke.

Ažuriranje 2 (3.8.2020. @ 15:03 ET): Sa sigurnosnim zakrpama za Android iz kolovoza 2020. Google je ažurirao Android kako bi ispravio ovu pogrešku. Više detalja možete pronaći na dnu.

Ažuriranje 1 (04.6.2020. @ 03:12 AM ET): Pojavila su se novija objašnjenja o tome što uzrokuje "prokletu pozadinu" da ruši telefone, uz odgovor Googlea. Pomaknite se do dna za više informacija. Članak objavljen 1. lipnja 2020. sačuvan je u nastavku.

Zamislite da pretražujete internetom cool pozadine i nailazite na slikovit krajolik. Ima svega; bujnu zelenu šumu, netaknuto jezero s malenim otočićem, planine prekrivene snijegom u pozadini i debeli oblačni pokrivač kroz koji prodire sunčeva svjetlost. Odmah preuzmete sliku, postavite je kao pozadinu svog telefona i bum! Vaš Android telefon zaglavi u petlji pokretanja. Zvuči malo vjerojatno, zar ne? Pa, to je istina za ovu pozadinu.

Pozadina je nedavno podijeljena na Cvrkutpo renomiranom Samsung leakster Ice Universe, koji je tvrdio da će pozadina "prouzročiti pad vašeg telefona!" Unatoč njihovom upozorenju, nekoliko korisnici su preuzeli pozadinu kako bi provjerili je li stvarno učinila nešto na njihovom telefonu i susreli su se sa sljedećim rezultati:

Prema Davideu Biancu, vodećem programeru AOSP-a prilagođeni ROM "POSP", ova posebna pozadina uzrokuje rušenje nekih Android uređaja jer koristi RGB prostor boja, umjesto sRGB prostora boja koji je izvorno podržan na Androidu. Bianco ima poslao zakrpu AOSP-u koji navodno rješava problem, a u opisu zakrpe stoji da "Problem se javlja kada korisnik pokuša postaviti sliku koja nije sRGB kao pozadinu. Ono što se događa je da je vrijednost varijable y viša od granica histograma, zbog čega se SysUI ruši. Jedno moguće rješenje je ograničiti vrijednost y da uvijek bude manja od 256." Zajedno s Biancom, dva programera, stariji član XDA BadDaemon i XDA Recognised Developer luca020400, iz popularnog LineageOS custom ROM tima također su smislili jedinstveno rješenje problema. Možete provjeriti opise zakrpa na LineageOS Gerrit slijedeći ovaj link i ovaj link.

Toplo preporučamo da ovu sliku ne koristite kao pozadinu ni pod kojim okolnostima. U slučaju da ste ga već koristili i vaš je uređaj zapeo u petlji za pokretanje, pogledajte upute u nastavku kako biste mogli oporaviti svoj uređaj.

A izvještaj iz 9to5Google po tom pitanju dalje otkriva da je problem ograničen na uređaje s Androidom 10 ili starijim i ne utječe na uređaje s Android 11 Pregled razvojnog programera. To je zbog činjenice da na Androidu 11 sustav pretvara prostor boja ako nije podržan, ali na Androidu 10 ne. Što znači da to nije problem s ovom slikom i da ga mogu uzrokovati druge slike koje koriste RGB prostor boja.

Imajte na umu da iako problem ne utječe na sve Android uređaje, toplo preporučamo da ne isprobavate pozadinu na telefonu. U slučaju da ipak pokušate, možda ćete moći oporaviti svoj uređaj potpunim poništavanjem ili ulaskom u siguran način rada i promjenom pozadine. Ali budući da su neki korisnici preko Cvrkut nisu uspjeli oporaviti svoje uređaje gore navedenim metodama, bilo bi najbolje da ne koristite točnu sliku kao svoju pozadinu. Ako vam se stvarno sviđa pozadina, samo snimite sliku zaslona i upotrijebite je kao pozadinu.


Ažuriranje 1: novo objašnjenje, odgovor Googlea

Proširenje uzroka greške kako ih je objasnio viši član XDA BadDaemon i XDA Recognised Developer luca020400, "prokleta" pozadina je kodirana u posebnom prostoru boja koji se zove "Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126" (ovo je puni naziv prostora boja, a Skia se odnosi na Biblioteka 2D grafike koju je napravio Google.) Nasuprot tome, većina drugih pozadinskih slika kodirana je u prostoru boja koji se naziva "sRGB".

U Android verzijama 10 i starijim, sve se slike pretvaraju u sRGB osim ako razvojni programeri drugačije ne navedu. Postoji rijetka pogreška koja se može pojaviti prilikom pretvaranja slike u sRGB, pri čemu kod koji izračunava vrijednost "luminancije" svakog piksela uspijeva premašiti maksimalno ograničenje od 255.

Svjetlina se izračunava pomoću sljedeće formule:

Svjetlina = .2126f * r + .7152f * g + .0722f * b

Ovdje su "r", "g" i "b" vrijednosti crvene, zelene i plave boje predstavljene u 8-bitnoj vrijednosti od 0 do 255.

Problem s ovim izračunom je što se svaki dio uvijek zaokružuje prije konačnog zbroja. Jedan od piksela u "prokletoj" pozadini, kada je u procesu pretvaranja slike iz sRGB i zatim prema sivim tonovima, ima sljedeće RGB vrijednosti: 255, 255, 243, što kada se uključi u gornju jednadžbu izgleda Kao:

r: .2126 * 255 = 54.213 => 55

g: 0,7152 * 255 = 182,376 => 183

b: 0,0722 * 255 = 18,411 => 19

Svjetlina = r+ g + b = 257

Ova vrijednost uzrokuje rušenje SystemUI-a i zapravo cijelog OS-a jer premašuje maksimalnu vrijednost. To je pogreška koja je tako nevjerojatno specifična jer uključuje kombinaciju pogreške zaokruživanja i pogreške pretvorbe prostora boja.

Ova pogreška ne utječe na Android 11 jer se prostor boja slike "Skia" prema zadanim postavkama ne pretvara u sRGB. Stoga se ova pogreška pretvorbe prostora boja i pogreška zaokruživanja ne pojavljuju na Androidu 11.

Međutim, Romain Guy iz tima Android Toolkit u Googleu vjeruje da je glavni uzrok ovog problema je samo u načinu na koji se izračunava svjetlina, a ne u problemima s pretvorbom prostora boja. Google provodi vlastito interno testiranje, pa ćemo vjerojatno uskoro vidjeti što će smisliti.

Ovo objašnjenje je ažurirano kako bi se razjasnilo da je jedan od piksela u "prokletoj" pozadini uzrok ove specifične pogreške izračuna zaokruživanja svjetline. Također smo pojasnili da se zaokruživanje događa tijekom svakog koraka izračuna svjetline, a ne na kraju.


2. ažuriranje: popravljeno u zakrpama za kolovoz 2020

Sigurnosne zakrpe za Android za mjesec kolovoz upravo krenulo uživo, i XDA Recognised Developer luca020400 uočio a počiniti u AOSP-u koji objedinjuje ispravak za ovu grešku u pozadini.