[Värskendus 2: parandatud] See taustpilt käivitab haruldase vea, mis põhjustab Android-seadmete alglaadimise

See taustpilt käivitab haruldase vea, mis põhjustab Android-seadmete alglaadimise. Ärge proovige oma seadmes taustapilti, vastasel juhul võite kõik andmed kaotada.

Värskendus 2 (08/03/2020 kell 15:03 ET): 2020. aasta augusti Androidi turvapaikadega on Google selle vea parandamiseks Androidi värskendanud. Rohkem üksikasju leiate alt.

Värskendus 1 (06/04/2020 kell 03:12 ET): Lisaks Google'i vastusele on ilmnenud uuemad selgitused selle kohta, mis põhjustab "neetud taustapildi" telefonide kokkujooksmist. Lisateabe saamiseks kerige alla. Allpool on säilinud artikkel 1. juunil 2020 avaldatud kujul.

Kujutage ette, et otsite Internetti lahedad taustapildid ja satute maalilisele maastikule. Sellel on kõik; lopsakas roheline mets, ürgne järv pisikese saarega, taamal lumised mäed ja paks pilvkate, mille vahedest immitseb sisse päikesevalgus. Laadite pildi kohe alla, määrate selle oma telefoni taustapildiks ja buum! Teie Android-telefon jääb alglaadimisahelasse kinni. Kõlab ebatõenäoliselt, kas pole? Noh, see kehtib selle konkreetse tapeedi kohta.

Taustapilti jagati hiljuti Twittertuntud poolt Samsung leakster Ice Universe, kes väitis, et tapeet "põhjustab teie telefoni kokkujooksmist!" Hoiatusest hoolimata mitmed kasutajad laadisid taustapildi alla, et kontrollida, kas see tegelikult nende telefonis midagi tegi, ja neile esitati järgmine teave tulemused:

AOSP-põhise juhtiva arendaja Davide Bianco sõnul kohandatud ROM "POSP", see konkreetne taustpilt põhjustab mõne Android-seadme kokkujooksmist, kuna see kasutab RGB-värviruumi, mitte sRGB-värviruumi, mida Android toetab. Biancol on esitas plaastri AOSP-le, mis väidetavalt probleemi parandab, ja plaastri kirjelduses öeldakse, et "Probleem ilmneb siis, kui kasutaja proovib taustapildiks määrata pilti, mis ei ole sRGB. Juhtub see, et muutuja y väärtus on suurem kui histogrammi piirid, mistõttu SysUI jookseb kokku. Üks võimalik lahendus on piirata y väärtust alati alla 256." Koos Biancoga on kaks arendajat XDA vanemliige BadDaemon ja XDA tunnustatud arendaja luca020400, on populaarsest LineageOS-i kohandatud ROM-i meeskonnast välja mõelnud ka probleemile ainulaadse lahenduse. LineageOS Gerriti plaastrite kirjeldusi saate vaadata järgmiselt see link ja see link.

Soovitame tungivalt mitte mingil juhul seda pilti taustapildina kasutada. Kui olete seda juba kasutanud ja teie seade on alglaadimissilmuses kinni, vaadake allolevaid juhiseid selle kohta, kuidas saaksite oma seadet taastada.

A aruanne alates 9to5Google selles küsimuses selgub veelgi, et probleem on piiratud seadmetega, milles töötab Android 10 või vanem, ja see ei mõjuta seadmeid, mis töötavad Android 11 Arendaja eelvaade. Selle põhjuseks on asjaolu, et Android 11 puhul teisendab süsteem värviruumi, kui seda ei toetata, Android 10 puhul aga mitte. Mis tähendab, et see ei ole selle konkreetse pildi probleem ja selle põhjuseks võivad olla muud RGB-värviruumi kasutavad pildid.

Pidage meeles, et kuigi probleem ei mõjuta kõiki Android-seadmeid, soovitame tungivalt mitte proovida oma telefoni taustapilti. Kui proovite seda siiski proovida, võib teil olla võimalik oma seade taastada kas täielikult lähtestades või sisenedes turvarežiimi ja muutes taustapilti. Aga kuna mõned kasutajad on üle Twitter ei saanud oma seadmeid ülalnimetatud meetoditega taastada, oleks parem, kui te ei kasuta taustapildina täpset pilti. Kui teile väga meeldib taustpilt, tehke pildist ekraanipilt ja kasutage seda taustapildina.


Värskendus 1: uus selgitus, Google'i vastus

Vea põhjuste laiendamine, nagu XDA vanemliige selgitas BadDaemon ja XDA tunnustatud arendaja luca020400, on "neetud" tapeet kodeeritud spetsiaalsesse värviruumi, mille nimi on "Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126" (see on värviruumi täisnimi ja Skia viitab Google'i loodud 2D graafikateek.) Seevastu enamik teisi tapeedipilte on kodeeritud värviruumi nimega "sRGB".

Androidi versioonides 10 ja vanemates teisendatakse kõik pildid sRGB-vormingusse, kui arendajad pole teisiti määranud. Kujutise sRGB-vormingusse teisendamisel võib ilmneda haruldane viga, mille puhul iga piksli heledusväärtust arvutav kood suudab ületada maksimumpiiri 255.

Heledus arvutatakse järgmise valemi abil:

Heledus = 0,2126f * r + 0,7152f * g + 0,0722f * b

Siin on "r", "g" ja "b" punase, rohelise ja sinise värvi väärtused, mis on esitatud 8-bitise väärtusena vahemikus 0 kuni 255.

Selle arvutuse probleem seisneb selles, et iga osa ümardatakse alati enne lõplikku summeerimist. Üks pikslitest "neetud" taustapildil, kui pilti sRGB-st teisendatakse ja seejärel halltooniks, on järgmised RGB väärtused: 255, 255, 243, mis ülaltoodud võrrandisse ühendatuna näeb välja nagu:

r: 0,2126 * 255 = 54,213 => 55

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

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

Heledus = r+ g + b = 257

See väärtus põhjustab SystemUI ja põhimõtteliselt kogu OS-i krahhi, kuna see ületab maksimaalse väärtuse. See on viga, mis on nii uskumatult spetsiifiline, kuna see hõlmab ümardamisvea ja värviruumi teisendusvea kombinatsiooni.

See viga ei mõjuta Android 11, kuna pildi "Skia" värviruumi ei teisendata vaikimisi sRGB-ks. Seega seda värviruumi teisendusviga ja ümardamisviga Android 11 puhul ei esine.

Romain Guy aga Google'i Android Toolkiti meeskonnast usub, et selle probleemi algpõhjus on ainult heleduse arvutamise viisis, mitte värviruumi teisendusprobleemides. Google viib läbi oma sisetesti, nii et tõenäoliselt näeme varsti, millega nad välja tulevad.

Seda selgitust värskendati, et selgitada, et üks "neetud" taustapildi pikslitest on selle konkreetse heleduse ümardamise arvutamise vea põhjus. Samuti selgitasime, et ümardamine toimub heleduse arvutamise iga etapi ajal, mitte lõpus.


Värskendus 2: parandatud 2020. aasta augusti plaastrites

Androidi turvapaigad augustikuuks läks just otseülekandesseja XDA tunnustatud arendaja luca020400 täpiline a pühenduda AOSP-s mis ühendab selle tapeedivea paranduse.