Çerçeve değil, kılık değiştirmiş tablet
Wes Bos’un kız kardeşi 500 dolarlık bir Skylight duvar takvimi almış. Cihaz açılmış ama hiçbir Wi-Fi ağı görmemiş. Şirket yenisini göndermiş, eskisini de geri dönüşüme atmasını söylemiş. Wes atmamış. Bir yıl boyunca arada bir kurcalamış: Kasayı açmış, antenlere bakmış, karttaki seri port pinlerine lehim bile yapmış. Sonuç yok.
Bu tür akıllı takvimler ve dijital çerçeveler aslında ucuz birer Android tablet. İçlerinde düşük maliyetli cihazlarda sık görülen Rockchip işlemciler var, üstünde de üreticinin tek bir uygulaması çalışıyor. Wes’e göre birçoğu bir abonelik kapısı: Donanımı ucuza satıyor, sonra fotoğraf paylaşımı için aylık ücret istiyor.
Ajan ne yaptı?
Kırılma noktası, cihazı bilgisayara bağlayıp bir kodlama ajanına teslim etmek oldu. Adımlar kabaca şöyle:
- Gizli moda girmek. Skylight’ta bir tuşa basılı tutarak güç vermek, cihazı Rockchip’in yükleme moduna sokuyor. Böylece bilgisayar onu bir USB aygıtı olarak görüyor.
- ADB’yi açmak. ADB (Android Debug Bridge), bilgisayardan bir Android cihaza komut göndermeye, uygulama kurmaya, dosya taşımaya yarayan resmî araç. Skylight’ta kapalıydı. Ajan, üreticinin uygulamasını inceleyip gizli bir üretici menüsünü buldu.
- Önce yedek, sonra root. Bütün flash belleğin yedeği alınıp doğrulandı. Ardından cihazda tam yetki (root) elde edildi.
- Teşhis. Ajanın yazdığı test betikleri, Wi-Fi çipinin gerçekten bozuk olduğunu doğruladı.
- USB’den internet. Arkadaki “sadece servis” yazan micro USB port host moduna alındı. Bu modda Android cihaz, takılan USB aygıtlarına güç veriyor ve onları tanıyor. Önce bir Ethernet adaptörüyle, sonra videoya göre 11 dolarlık bir TP-Link USB Wi-Fi çubuğuyla cihaz internete çıktı. Bunun için çubuğun sürücüsünü cihazın çekirdeğine uygun derlemek ve açılışta host modunu açan bir betik eklemek gerekti.
İkinci tur: 50 dolarlık çerçeve
Wes aynı işi bu kez Amazon’dan aldığı rastgele bir 10,1 inçlik çerçeveyle sıfırdan yaptı. Bu cihazda ADB fabrikadan açıktı. Ama Android 6 çalışıyordu ve son güvenlik yaması 2016’dandı. Yapılanlar:
- Üreticinin fotoğraf uygulaması ve güncelleme servisleri kapatıldı. Repoya göre bunlar Çin’deki sunuculara bağlanıyordu.
- WebView, yani uygulamaların içinde web sayfası gösteren gömülü tarayıcı motoru, 44. sürümden 106’ya yükseltildi. Böylece CSS grid, flexbox gibi modern web özellikleri çalışıyor.
- 1 GB RAM dar geldiği için sıkıştırılmış takas alanı (swap) 128 MB’tan 512 MB’a çıkarıldı.
- Kasadaki kızılötesi hareket sensörü bulundu. Videoya göre ekran, bir süre kimse geçmezse kararıyor.
Ekranda Wes’in yazdığı bir web paneli tam ekran açılıyor. Arkasında, okuldan gelen e-postaları ve PDF’leri okuyup takvime etkinlik ve hatırlatma ekleyen bir ajan var. Bu fikri yazılımcı olmayanların ajan kullanımı yazısında da görmüştük.
Kod değil, talimat paylaşmak
Wes’in GitHub’da paylaştığı repo bir kurulum programından çok, ajana verilecek talimatlar ve araştırma notları. “Ajansan buradan başla” diye bir bölümü var. Kurallar net: Her yazma işleminden önce cihazın sahibine sor, doğrulanmış yedek olmadan hiçbir şey yazma, ilk uyumsuzlukta dur. Bu, ajanı raylarda tutmak fikrinin donanımdaki karşılığı. Burada yanlış bir yazma işlemi cihazı tamamen kullanılamaz hâle getirebilir.
Repo bir uyarı daha yapıyor: Aynı adla satılan çerçevelerin kartı ve yazılımı farklı olabilir. Yani bu hazır bir tarif değil, bir yol haritası.
Güvenlik ve e-atık
Root’lanmış, yıllardır güncelleme almamış bir cihaz güvenli değil. Repo bunu açıkça yazıyor: Bu çerçevede herhangi bir uygulama onay sormadan root yetkisi alabiliyor. Öneriler: Ana Google, Apple ya da banka hesabınla giriş yapma. Cihazı misafir ya da IoT ağında tut. Takvim için salt okunur bir bağlantı kullan. İnternetten bulduğun firmware ve uygulamaları körü körüne kurma. Açık bırakılmış ADB’nin neden önemli olduğunu kendini kopyalayan yapay zekâ yazısında anlattık.
Öte yandan madalyonun diğer yüzü de önemli. Wes’in vurgusu şu: Donanımın parasını ödedin, üzerinde istediğin yazılımı çalıştırabilmelisin. Küçük bir parçası bozulduğu, üretici desteği kestiği ya da abonelik istediği için çöpe giden cihazlar için ajanlar bu işi çok daha erişilebilir kılıyor. Yine de sihir yok: Skylight’ta iş, saatlerce deneme yanılma ve ek donanım gerektirdi.
Düşün
- Evinde, yazılımı ya da tek bir bozuk parçası yüzünden çekmecede bekleyen hangi cihaz var?
- Bir ajana cihazının belleğine yazma yetkisi vermeden önce hangi kuralları koyardın?
Videoyu izle
Kaynaklar (7, İngilizce)
- Syntax: I hacked this $50 picture frame into a $500 home display (video) (yeni sekmede açılır)
- GitHub: wesbos/photo-frame-dashboard (yeni sekmede açılır)
- photo-frame-dashboard: BIUFRAME browser setup guide (yeni sekmede açılır)
- photo-frame-dashboard: USB Wi-Fi dongle replacement (yeni sekmede açılır)
- Android Developers: Android Debug Bridge (adb) (yeni sekmede açılır)
- Android Developers: USB host overview (yeni sekmede açılır)
- Android Developers: Build web apps in WebView (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.