Ini Alasan Wallpaper "Terkutuk" Bikin Smartphone Android Crash

Dijelaskan, bahwa wallpaper itu memakai ruang warna RGB, bukan sRGB seperti yang mendukung Android asli (native).

oleh Agustin Setyo Wardani diperbarui 11 Jun 2020, 18:00 WIB
Hati-hati, jangan pasang wallpaper ini di ponsel Android karena membuat smartphone alami soft brick (Foto: Android Authority)

Liputan6.com, Jakarta - Beberapa waktu lalu, sebuah wallpaper "terkutuk" bergambar pemandangan yang bisa membuat smartphone Android crash menjadi pembicaraan.

Smartphone Samsung dan Google Pixel dikabarkan crash dan mengalami soft brick ketika pengguna nekat memasang wallpaper yang dimaksud.

Kini, penyebab wallpaper tersebut membuat crash sejumlah smartphone Android pun terungkap, berdasarkan penjelasan dari Lead Developer AOSP Davide Bianco.

Sebagaimana dikutip dari laman XDA Developer, Kamis (11/9/2020), Bianco menjelaskan wallpaper itu memakai spektrum warna RGB, bukan sRGB seperti yang mendukung Android asli (native).

Bianco juga telah mengirimkan patch ke AOSP yang disebut-sebut telah memperbaiki masalah ini. Deskripsi patch tersebut menjelaskan, "Masalah terjadi ketika pengguna mencoba mengatur sebagai wallpaper gambar yang bukan sRGB."

Yang terjadi berikutnya adalah, nilai variabel y lebih tinggi dari batas histogram. Hal ini membuat SysUI crash. Satu-satunya kemungkinan perbaikan adalah membatasi nilai y agar selalu kurang dari 256.


Penjelasan Teknis Lengkapnya

Layar ponsel adalah bagian paling penting dari smartphone kamu (Sumber: Android Pit)

Selanjutnya, berdasarkan penjelasan dari Senior Member di XDA BadDaemon dan XDA Recognized Developer luca020400, wallpaper "terkutuk" itu ditulis dengan ruang warna spesial bernama “Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126”. "Skia" merujuk pada grafik library 2D yang dibuat oleh Google.

Padahal, kebanyakan wallpaper lain dikode menggunakan ruang warna bernama sRGB. Pada Android 10 dan yang lebih lawas, semua gambar dikonversi ke sRGB, kecuali ditentukan oleh pengembang.

Nah, rupanya ada bug langka yang dapat terjadi saat mengkonversi gambar ke sRGB, yakni kode yang menghitung nilai warna "luminance" dari setiap piksel melampaui batas maksimum, yakni 255.

Luminance sendiri dikalkulasi menggunakan formula sebagai berikut:

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

di mana, "r" merupakan red, "g" adalah green, dan "b" adalah blue yang merepresentasikan 8-bit-value dari 0-255.


Ada Bug di Pembulatan Hitungan

Ilustrasi Android, Robot Android. Kredit: Google

Masalahnya, pada perhitungan ini tiap bagian selalu dibulatkan sebelum penjumlahan akhir.

Nah, salah satu piksel dalam wallpaper tersebut ketika dalam proses konversi gambar dari sRGB dan kemudian ke skala abu-abu memiliki nilai RBG berikut: 255, 255, 243. Ketika dicocokkan ke persamaan di atas justru menjadi:

r: .2126 * 255 = 54.213 => 55

g: .7152 * 255 = 182.376 => 183

b: .0722 * 255 = 18.411 => 19

Luminance = r+ g + b = 257

Nilai yang melebihi 255 ini menyebabkan SystemUI dan seluruh OS jadi mogok karena melebihi nilai maksimum. Bisa dibilang, bug ini sangat spesifik karena melibatkan kombinasi kesalahan pembulatan dan kesalahan konversi ruang warna.

Uniknya, bug ini juga tidak memengaruhi Android 11 karena ruang warna "Skia" gambar tidak dikonversikan ke sRGB secara default. Dengan begitu, kesalahan konversi ruang warna ini dan kesalahan pembulatan ini tak terjadi pada Android 11.

(Tin/Why)

POPULER

Berita Terkini Selengkapnya