[Aktualizácia 2: Opravené] Táto tapeta spúšťa zriedkavú chybu, ktorá spôsobuje spúšťanie zariadení so systémom Android

click fraud protection

Táto tapeta spúšťa vzácnu chybu, ktorá spôsobuje bootloop zariadení Android. Wallaper na svojom zariadení neskúšajte, inak môžete stratiť všetky svoje dáta.

Aktualizácia 2 (08/03/2020 o 15:03 ET): Vďaka opravám zabezpečenia systému Android z augusta 2020 spoločnosť Google aktualizovala systém Android, aby túto chybu opravila. Viac podrobností nájdete v spodnej časti.

Aktualizácia 1 (6. 4. 2020, 03:12 ET): Objavili sa novšie vysvetlenia o tom, čo spôsobuje, že „prekliata tapeta“ havaruje telefóny, spolu s odpoveďou od spoločnosti Google. Ak chcete získať ďalšie informácie, prejdite nadol. Článok zverejnený 1. júna 2020 je zachovaný nižšie.

Predstavte si, že hľadáte internet cool tapety a narazíte na malebnú krajinu. Má všetko; svieži zelený les, nedotknuté jazero s maličkým ostrovom, zasnežené hory v pozadí a hustá oblačnosť so slnečným žiarením prenikajúcim cez medzery. Okamžite si stiahnete obrázok, nastavíte ho ako tapetu telefónu a bum! Váš telefón s Androidom uviazne v bootloop. Znie to nepravdepodobne, však? No, to platí pre túto konkrétnu tapetu.

Tapeta bola nedávno zdieľaná na Twitterod renomovaných Samsung leakster Ice Universe, ktorý tvrdil, že tapeta "spôsobí pád vášho telefónu!" Napriek ich varovaniu niekoľko používatelia si stiahli tapetu, aby skontrolovali, či skutočne robila niečo na ich telefóne, a stretli sa s nasledujúcim výsledky:

Podľa Davide Bianco, vedúci vývojár AOSP-based vlastná ROM „POSP“, táto konkrétna tapeta spôsobuje zlyhanie niektorých zariadení so systémom Android, pretože využíva farebný priestor RGB namiesto farebného priestoru sRGB, ktorý je natívne podporovaný v systéme Android. Bianco má odoslal náplasť na AOSP, ktorá údajne rieši problém a popis opravy uvádza, že „Problém sa vyskytuje, keď sa používateľ pokúsi nastaviť ako tapetu obrázok, ktorý nie je sRGB. Čo sa stane, je, že hodnota premennej y je vyššia ako hranice histogramu, čo spôsobí zlyhanie SysUI. Jednou možnou opravou je obmedziť hodnotu y tak, aby bola vždy menšia ako 256." Spolu s Bianco, dvaja vývojári, XDA Senior Member BadDaemon a XDA uznávaný vývojár luca020400, z populárneho tímu LineageOS custom ROM tiež prišli s jedinečným riešením problému. Popisy opráv na LineageOS Gerrit si môžete pozrieť nasledujúcim spôsobom tento odkaz a tento odkaz.

Za žiadnych okolností dôrazne neodporúčame používať tento obrázok ako tapetu. V prípade, že ste ho už použili a vaše zariadenie uviazlo v bootloop, pozrite si nižšie uvedené pokyny o tom, ako by ste mohli zariadenie obnoviť.

A správa z 9to5Google v tejto veci ďalej odhaľuje, že problém je obmedzený na zariadenia so systémom Android 10 alebo starším a neovplyvňuje zariadenia so systémom Android 11 Ukážka vývojára. Dôvodom je skutočnosť, že v systéme Android 11 systém prevádza farebný priestor, ak nie je podporovaný, ale v systéme Android 10 nie. Čo znamená, že to nie je problém s týmto konkrétnym obrázkom a môže to byť spôsobené inými obrázkami používajúcimi farebný priestor RGB.

Upozorňujeme, že hoci sa problém netýka všetkých zariadení so systémom Android, dôrazne neodporúčame skúšať tapetu na telefóne. V prípade, že to napriek tomu vyskúšate, možno budete môcť obnoviť svoje zariadenie buď úplným resetovaním, alebo vstupom do núdzového režimu a zmenou tapety. Ale keďže niektorí používatelia prešli Twitter nedokázali obnoviť svoje zariadenia pomocou vyššie uvedených metód, bolo by najlepšie, keby ste ako tapetu nepoužili presný obrázok. Ak sa vám tapeta naozaj páči, urobte snímku obrazovky a použite ju ako tapetu.


Aktualizácia 1: Nové vysvetlenie, odpoveď od spoločnosti Google

Rozšírenie o príčinách chyby, ako to vysvetlil senior člen XDA BadDaemon a XDA uznávaný vývojár luca020400, „prekliata“ tapeta je zakódovaná v špeciálnom farebnom priestore, ktorý sa nazýva „Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126“ (toto je úplný názov farebného priestoru a Skia označuje 2D grafická knižnica vytvorená spoločnosťou Google.) Na rozdiel od toho je väčšina ostatných obrázkov tapiet kódovaná vo farebnom priestore nazývanom "sRGB".

Vo verziách Androidu 10 a starších sa všetky obrázky skonvertujú na sRGB, pokiaľ vývojári neurčia inak. Existuje zriedkavá chyba, ktorá sa môže vyskytnúť pri konverzii obrázka na sRGB, pričom kód, ktorý vypočítava hodnotu „jasu“ každého pixelu, dokáže prekročiť maximálny limit 255.

Svietivosť sa vypočíta podľa nasledujúceho vzorca:

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

Tu „r“, „g“ a „b“ sú hodnoty červenej, zelenej a modrej farby reprezentované v 8-bitovej hodnote od 0 do 255.

Problém s týmto výpočtom je, že každá časť sa pred konečným súčtom vždy zaokrúhli nahor. Jeden z pixelov v „prekliatej“ tapete, keď prebieha konverzia obrázka z sRGB a potom v odtieňoch sivej má nasledujúce hodnoty RGB: 255, 255, 243, ktoré po zapojení do vyššie uvedenej rovnice vyzerajú Páči sa mi to:

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

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

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

Svietivosť = r + g + b = 257

Táto hodnota spôsobuje zlyhanie SystemUI a v podstate celého OS, pretože prekračuje maximálnu hodnotu. Je to chyba, ktorá je tak neuveriteľne špecifická, pretože zahŕňa kombináciu chyby zaokrúhľovania a chyby prevodu farebného priestoru.

Táto chyba neovplyvňuje Android 11, pretože farebný priestor „Skia“ obrázka nie je predvolene prevedený na sRGB. Táto chyba prevodu farebného priestoru a chyba zaokrúhľovania sa teda v systéme Android 11 nevyskytujú.

Avšak Romain Guy z tímu Android Toolkit v Google domnieva sa, že hlavnou príčinou tohto problému je len spôsobom, akým sa počíta jas, a nie v žiadnych problémoch s konverziou farebného priestoru. Google vykonáva svoje vlastné interné testovanie, takže čoskoro uvidíme, s čím prídu.

Toto vysvetlenie bolo aktualizované, aby sa objasnilo, že jeden z pixelov na „prekliatej“ tapete je príčinou tejto špecifickej chyby výpočtu zaokrúhľovania jasu. Tiež sme objasnili, že k zaokrúhľovaniu dochádza počas každého kroku výpočtu jasu a nie na konci.


Aktualizácia 2: Opravené v opravách z augusta 2020

Opravy zabezpečenia systému Android za mesiac august práve vysielali naživoa XDA Recognized Developer luca020400 škvrnitý a zaviazať v AOSP ktorý spája opravu tejto chyby tapety.