[Aktualizacja 2: Naprawiono] Ta tapeta powoduje rzadki błąd powodujący bootloop urządzeń z Androidem

Ta tapeta powoduje rzadki błąd, który powoduje, że urządzenia z Androidem uruchamiają się. Nie próbuj tapet na swoim urządzeniu, bo możesz stracić wszystkie swoje dane.

Aktualizacja 2 (08.03.2020 o 15:03 ET): Dzięki poprawkom zabezpieczeń systemu Android z sierpnia 2020 r. firma Google zaktualizowała system Android, aby naprawić ten błąd. Więcej szczegółów znajdziesz na dole.

Aktualizacja 1 (06.04.2020 o 03:12 ET): wraz z odpowiedzią Google pojawiły się nowe wyjaśnienia dotyczące przyczyn zawieszania się „przeklętej tapety” na telefonach. Przewiń w dół, aby uzyskać więcej informacji. Artykuł opublikowany 1 czerwca 2020 r. znajduje się poniżej.

Wyobraź sobie, że przeszukujesz Internet w poszukiwaniu fajne tapety i natkniesz się na malowniczy krajobraz. Ma wszystko; bujny zielony las, dziewicze jezioro z małą wyspą, ośnieżone góry w tle i gęsta pokrywa chmur, przez którą przedostaje się światło słoneczne. Natychmiast pobierasz obraz, ustawiasz go jako tapetę w telefonie i bum! Twój telefon z Androidem utknął w pętli rozruchowej. Brzmi nieprawdopodobnie, prawda? Cóż, to prawda w przypadku tej konkretnej tapety.

Tapeta została niedawno udostępniona Świergotprzez znanego SAMSUNG Leakster Ice Universe, który stwierdził, że tapeta „spowoduje awarię telefonu!” Pomimo ich ostrzeżeń, kilka użytkownicy pobrali tapetę, aby sprawdzić, czy faktycznie coś zrobiła na ich telefonie, i otrzymali następujący komunikat wyniki:

Według Davide Bianco, głównego programisty opartego na AOSP niestandardowy ROM „POSP”, ta konkretna tapeta powoduje awarię niektórych urządzeń z Androidem, ponieważ wykorzystuje przestrzeń kolorów RGB zamiast przestrzeni kolorów sRGB obsługiwanej natywnie w systemie Android. Bianco ma przesłał łatkę do AOSP, który podobno rozwiązuje problem, a opis łatki stwierdza, że ​​„Problem występuje, gdy użytkownik próbuje ustawić jako tapetę obraz inny niż sRGB. Dzieje się tak, że wartość zmiennej y jest wyższa niż granice histogramu, co powoduje awarię SysUI. Jednym z możliwych rozwiązań jest ograniczenie wartości y do zawsze mniejszej niż 256.” Wraz z Bianco, dwóch programistów, starszy członek XDA BadDaemon i uznany programista XDA Luca020400, od popularnego zespołu zajmującego się niestandardowymi ROMami LineageOS, również opracowało unikalne rozwiązanie tego problemu. Możesz sprawdzić opisy poprawek na LineageOS Gerrit, postępując zgodnie z poniższymi instrukcjami ten link I ten link.

Zdecydowanie odradzamy używanie tego obrazu jako tapety w żadnych okolicznościach. Jeśli już z niego korzystałeś i Twoje urządzenie utknęło w pętli rozruchowej, zapoznaj się z poniższymi instrukcjami, w jaki sposób możesz odzyskać swoje urządzenie.

A raport z 9to5Google w tej sprawie dodatkowo ujawnia, że ​​problem ogranicza się do urządzeń z systemem Android 10 lub starszym i nie wpływa na urządzenia z systemem Android 10 lub starszym Androida 11 Podgląd deweloperski. Wynika to z faktu, że w Androidzie 11 system konwertuje przestrzeń kolorów, jeśli nie jest obsługiwana, natomiast w Androidzie 10 już nie. Oznacza to, że nie jest to problem związany z tym konkretnym obrazem i może być spowodowany przez inne obrazy korzystające z przestrzeni kolorów RGB.

Pamiętaj, że chociaż problem nie dotyczy wszystkich urządzeń z Androidem, zdecydowanie odradzamy próbowanie zmiany tapety na telefonie. Jeśli mimo to spróbujesz, możesz odzyskać urządzenie, całkowicie je resetując lub przechodząc do trybu awaryjnego i zmieniając tapetę. Ale ponieważ niektórzy użytkownicy już to zrobili Świergot nie byli w stanie odzyskać swoich urządzeń przy użyciu wyżej wymienionych metod, najlepiej byłoby, gdybyś nie używał dokładnie tego obrazu jako tapety. Jeśli naprawdę podoba Ci się ta tapeta, po prostu zrób zrzut ekranu obrazu i użyj go jako tapety.


Aktualizacja 1: nowe wyjaśnienie, odpowiedź od Google

Rozszerzenie przyczyn błędu zgodnie z wyjaśnieniami starszego członka XDA BadDaemon i uznany programista XDA Luca020400, „przeklęta” tapeta jest zakodowana w specjalnej przestrzeni kolorów, która nazywa się „Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126” (jest to pełna nazwa przestrzeni kolorów, a Skia odnosi się do Biblioteka grafiki 2D stworzona przez Google.) Natomiast większość innych tapet jest kodowana w przestrzeni kolorów zwanej „sRGB”.

W Androidzie w wersji 10 i starszych wszystkie obrazy są konwertowane do sRGB, chyba że twórcy określili inaczej. Podczas konwersji obrazu do sRGB może wystąpić rzadki błąd, w wyniku którego kod obliczający wartość „luminancji” każdego piksela przekracza maksymalny limit 255.

Jasność oblicza się za pomocą następującego wzoru:

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

Tutaj „r”, „g” i „b” to wartości kolorów czerwonego, zielonego i niebieskiego reprezentowane w 8-bitowej wartości od 0 do 255.

Problem z tymi obliczeniami polega na tym, że przed ostatecznym sumowaniem każdą część zawsze zaokrągla się w górę. Jeden z pikseli w „przeklętej” tapecie podczas konwersji obrazu z sRGB i następnie do skali szarości, ma następujące wartości RGB: 255, 255, 243, co po podłączeniu do powyższego równania wygląda tak jak:

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

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

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

Luminancja = r+ g + b = 257

Ta wartość powoduje awarię SystemUI, a w zasadzie całego systemu operacyjnego, ponieważ przekracza wartość maksymalną. Jest to błąd tak niewiarygodnie specyficzny, ponieważ obejmuje kombinację błędu zaokrąglania i błędu konwersji przestrzeni kolorów.

Ten błąd nie dotyczy Androida 11, ponieważ przestrzeń kolorów „Skia” obrazu nie jest domyślnie konwertowana na sRGB. Dlatego ten błąd konwersji przestrzeni kolorów i błąd zaokrąglania nie występuje w systemie Android 11.

Jednak Romain Guy z zespołu Android Toolkit w Google uważa, że ​​jest to podstawowa przyczyna tego problemu dotyczy jedynie sposobu obliczania luminancji, a nie jakichkolwiek problemów z konwersją przestrzeni barw. Google przeprowadza własne wewnętrzne testy, więc prawdopodobnie wkrótce zobaczymy, co wymyślą.

To wyjaśnienie zostało zaktualizowane, aby wyjaśnić, że jeden z pikseli w „przeklętej” tapecie jest przyczyną tego konkretnego błędu w obliczeniu zaokrąglenia luminancji. Wyjaśniliśmy również, że zaokrąglanie następuje na każdym etapie obliczania luminancji, a nie na końcu.


Aktualizacja 2: Naprawiono w aktualizacjach z sierpnia 2020 r

Poprawki zabezpieczeń Androida na sierpień właśnie ruszyło na żywoi uznany programista XDA Luca020400 zauważył A popełnić w AOSP który łączy poprawkę tego błędu tapety.