Android Cihazların Çökmesine Neden Olan Lanetli Duvar Kâğıdının Sırrı Çözüldü

Şu sıralar sosyal medyanın gündeminde 'lanetli duvar kâğıdı' olarak adlandırılan bir görsel yer alıyor. Geliştirici Davide Bianco, duvar kâğıdı olarak atandığı Android akıllı telefonları garip bir şekilde kullanılamaz hâle getiren bu manzara fotoğrafının sırrını açıkladı.

Basit bir duvar kâğıdı, bir Android telefonu kullanılamaz hâle getirebiliyor. Bunun son örneğini, 'lanetli duvar kâğıdı' olarak adlandırılan bir görüntüde görmüş ve konuyla ilgili detayları buradaki yazımızda sizlere aktarmıştık. İlk etapta basit bir manzara fotoğrafı gibi görünen bu görsel, Android sistemlerde duvar kâğıdı olarak ayarlandığında cihazı neredeyse tamamen kullanılamaz hâle getiriyor.

Yaşanan sorundan Samsung ve Google’ın birçok modeli etkilenirken OnePlus, Nokia ve Xiaomi cihaz kullanıcılarından gelen geri bildirimler olduğunu da gördük. Bu noktada paylaşılanlar, Huawei cihazların duvar kâğıdı kilitlenme sorunundan nispeten daha az etkilendiğini gösteriyor.

Bir geliştirici, sorunun neden kaynaklandığını açıkladı:

Android’e dair pek çok farklı gelişmenin paylaşıldığı bir internet sitesi olan Android Authority, basit bir manzara görselinin yol açtığı çökme sorunlarına neden olan şeyi bulmak için PotatoHub’ın baş geliştiricilerinden olan Davide Bianco’ya ulaştı. Davide, basit bir görüntünün nasıl bu tür sorunlara neden olabileceğini Android kullanıcıları için açıkladı. Davide Bianco’nun konu hakkındaki açıklamasına hemen aşağıdan göz atabilirsiniz.

“Buradaki ana sorun, SystemUI'ın duvar kâğıdı için yalnızca sRGB görüntüleri işlemesi ve sRGB olmayan duvar kağıtlarına karşı herhangi bir denetimi olmamasıdır. Bu, bir diziye erişmek için kullanılan değişken dizi sınırlarının üzerinden geçerken ImageProcessHelper’da özel bir çökmeye neden olabilir. Örnek olarak, yöntem tanımı buradadır.

Bu değişkene y denir ve mevcut taranan piksel rgb değerlerinin toplamıdır. Bu piksel, gri tonlamalı görsel yüzeyinin her satırını ve sütununu tarayarak elde edilir. Her piksel elde edişimizde, y’ye rgb değerlerinin toplamını (genellikle maksimum 255’tir) atarız ve histogram dizisinin bir elemanına (bu boyut maksimum 256) erişmek ve bahsedilen elemanla 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 (SysUI’daki herhangi bir istisna ölümcül olarak ele alınır ve SysUI her başlatıldığında görüntü işlendiğinden sonsuz bir çökme döngüsüne yol açar). Şimdi, y’nin maksimum sınırın üzerine çıkması durumunda y’yi 255’e ayarlayan bir değer atandıktan sonra bir kontrol eklemek çözüm olabilir. Bu gerçekten işe yarıyor ancak bir nedenden ötürü daha kötü kalite elde ediyoruz."

"LineageOS kullanıcıları bu özel sorunun zayıf yuvarlamadan kaynaklandığını fark ettiler çünkü rgb değerleri her zamanki normal yuvarlama yerine yukarı yuvarlanıyordu. Değerleri manuel olarak yuvarlayarak bunu düzeltmeyi başardılar ve bu yöntem kaliteyi koruyor gibi görünüyor ancak nasıl olduğunu gerçekten göremiyorum çünkü SysUI, görüntüyü her zaman sRGB'ye dönüştürüyor gibi görünüyor. Bu da renk alanı daha büyük olduğunda renk kaybına yol açıyor.

Görselin herhangi bir şekilde işlenmeden önce her zaman sRGB'ye dönüştürüldüğü için sorunun Android 11'de gerçekleşmediği de bir 9to5Google geliştiricisi tarafından keşfedildi. Ayrıca kendi bozuk görselimi Photoshop veya GIMP ile oluşturmayı denedim ancak SysUI görüntüyü her zaman güvenli renk alanına dönüştürdü ve hiçbir çökmeye yol açmadı (ancak renk kaybına yol açtı).  Bozuk görsel renk profilini çıkarmayı ve yeni bir görüntüde kullanmayı bile denedim fakat yine de SysUI’ın çökmesini sağlayamadım.”

Uzmanlar, Android’in en az birkaç yıldır benzer yapıdaki hatalara açık olduğunu ve hiçbir çözüm üretilmediğini söylüyor. Bu noktada bir şakaya veya kendi merakınıza yenik düşüp bu görseli akıllı telefonunuzda ekran görüntüsü yaparsanız cihazınızı fabrika ayarlarına döndürmekten başka çareniz olmadığını, bu yüzden de önemli dosyalarınızı her zaman yedeklemeniz gerektiğini unutmayın.