Android telefonları bozan duvar kağıdı tüm dünyayı çalkalamıştı. Özellikle Samsung telefonları bozan bu duvar kağıdının foyası ortaya çıktı.
Google, Android’i güvenli kılmak için bildiğiniz gibi her ay güvenlik güncellemeleri yayınlıyor. Bu güncellemeler ile stabilite de iyileştirmeler yapan Google, geçtiğimiz gün ilginç bir olay ile karşı karşıya kalmıştı. Android telefonları bozan duvar kağıdı tüm dünyayı çalkalamış ve kullanıcılar tedirgin etmişti. İlk baktığınızda normal bir manzara duvar kağıdı gibi görünen bu duvar kağıdı kullanılmaya başlandığında telefonları loop’a yani döngüye alıyordu.
>> Android güncellemesi bu açığı kapatıyor! Telefonunuz mutlaka güncelleyin!
Duvar kağıdını ayarladıktan sonra telefon tuş kilit ekranında takılıp kalıyor ve sürekli ekran yanıp sönüyordu. Tek çözümü telefonu fabrika ayarlarına döndürmek olan bu sorunun neden kaynaklandığı bugün ortaya çıktı. PotatoHub’ın baş geliştiricilerinden olan Davide Bianco bu duvar kağıdının neden Android’i döngüye soktuğunu uzun uzadıya anlattı.
Davide Bianco‘nun açıklamasının özetine bakacak olursak; bu duvar kağıdı Android tarafından ölçeklendirmede sorun yaşadığı için telefonu döngüye sokuyor. Yani duvar kağıdında kötücül bir yazılım yok. Sadece Android’in RGB ölçeklendirme algoritması bu duvar kağıdı ile sapıtıyor.
Davide Bianco’nun açıklamasına aşağıdan ulaşabilirsiniz.
Android neden çöktü? İşte açıklaması!
“Buradaki ana sorun, sistem arayüzünün sadece duvar kağıdı için sRGB görüntülerini işlemesi ve sRGB olmayan duvar kağıtlarına karşı herhangi bir kontrolü olmamasıdır. Bu, bir diziye erişmek için kullanılan bir değişken dizi sınırlarının üzerinden geçerken ImageProcessHelper sınıfında belirli bir çökmeye neden olabilir.
Bu değişkene y denir ve mevcut taranan piksel RGB değerlerinin toplamıdır. Bu piksel, gri tonlamalı resim yüzeyinin her satırını ve sütununu tarayarak elde edilir. Her piksel elde ettiğimizde, y’ye RGB değerlerinin toplamını atarız. Histogram dizisinin bir elemanına öğesine ve bahsedilen öğesine bir şeyler yapmak için adı geçen değişkeni kullanırız.
Şimdi, normal gri tonlamalı görüntüler için RGB değerlerinin toplamı her zaman 255’tir. Ancak bu normal bir görüntü değildir. Y değişkeni 255’in üzerine çıkar ve sınırların dışında bir istisna oluşturur. Şimdi, bir çözüm y’ye maksimum sınırın üzerine çıkarsa y’yi 255’e ayarlayan bir değer atandıktan sonra bir kontrol eklemek olabilir. Bu gerçekten işe yarıyor, ancak bir nedenden dolayı daha kötü kalite elde ediyoruz.
LineageOS’un geliştiricileri bu sorunun kötü bir yuvarlamadan kaynaklandığını fark ettiler. Çünkü RGB değerleri her zaman normal yuvarlama yerine tavana yuvarlandı. Değerleri elle yuvarlayarak düzeltmeyi başardılar. Görünüşe göre bu yöntem de kaliteyi koruyor. Ancak gerçekten nasıl göremiyorum, çünkü çoğunlukla sistem arayüzü her zaman görüntüyü sRGB’ye dönüştürdüğü için renk alanı olduğunda renk kaybına yol açıyor.”