FaceApp Android uygulamasının 3.4.8 versionu yani 17 Temmuz 2019 da güncellenen APK sının içindekilere bakarak sizinle sırlarını paylaşacağım..
Yazılımı kırdığımda gördüğüm ilk şey kaynak kodun oldukça güzel proguard ile karıştırıldığıdır. Biz bu işleme obfuscation diyoruz.. Başkaları kodları ters mühendislik yapsa bile tam olarak okuyamasın ve ne olduğunu anlayamasın diye yapılır..
Yazılım resmi cloud a atıp kendi filtrelerini uyguluyor.. Bunun AI çalışması olduğunu söylemek zor olur.. Çünkü yüzdeki belli noktaları biz zaten belli yazılımlarla AI olmaksızın alabiliyoruz. Yapılan resmin üzerine bunları bir algoritma ile oturtmak.. Peki Nasıl? Cloud taraftaki kodları göremiyoruz ama AI değil. Çok büyük ihtimalle OpenCV+Dlib (Dlib ile CLM-framework kullanmak) üçlüsü kullanılmış. OpenCV yani computer vision (bilgisayarlı görme – gözümüzle yaptığımız algılama işini bilgisayara yaptırma işi) teknik ve algoritmaları ile yüzdeki işaret noktalarını (facial landmark) yani gözler, ağız burun vb bulacak olan Dlib kütüphanesi. Merak edenler linkteki açıklamalara bakabilir.
Yani server tarafa bu kodlamayı yapıp resimleri API (mobilde retrofit kullanın) ile string olarak gönderip orada jpg ye çevirip işlemi yapıp geri alacaksınız işte o işlemi yukarıda linki verdiğim yaklaşımla yapacaksınız. FaceApp in kolayına gelmiş ve sanıyorum bu tür library leri mobil tarafta yazmak veya bir yerden alıntılamak yerine desktop veya server da kodlamak çok daha kolay ki bu yola başvurmuş.. Yoksa mobil tarafta herkesin bildiği bu işlem ve algoritmaları birileri yazılımı kırıp alacak diye korkmamışlardır değil mi?
Matisse isimli github da olan uygulamadan oldukça fazla yararlanmış.. Çalıntı demeyelim kızanlar oluyor ama oldukça fazla alıntılamış..
Facebook ile authentication yapabiliyor onu görüyorum.. (Ben hiç kullanmadım bu yazılımı inanın)
Resimleri yükleme ve Cache le me tekniği için com.bumptech.glide kütüphanesini kullanmış. Programdaki hataları yakalamak için Crashlytics kullanmış.
Yazılımda sanıyorum bazı buglar var ve bunu uygulamadaki process leri restart etmek ve sizden bunu gizlemek için jakewharton.processphoenix projesini de github dan almış ve kullanmış..
Yine image yani resimleri crop etmek içinde yine github da theartofdev image cropper kütüphanesini kullanmış..
Yazılım filtre uygulanacak resmi kendi cloud server ına atıyor dolayısı ile internetiniz açık değilse zaten çalışmaz. Tüm resimlerinizi alıp saklıyor diye bir şey kesinlikle yok. O an işlem yaptırdığınız resmi kesin kendi serverlarına atıyor. Kodlara bakıldığında bunları Amazondan kendi server larına da atabildiği görülüyor..
Yani öyle çok korkulacak bir şey yok siz izin vermezsiniz olur biter.. Öyle durup dururken resimlerinizi cihazınızdan almıyor.. Yazılımı kurarken cihaza erişme izinleri istemesi normal yoksa hiçbir bu tür yazılım çalışmaz.. Yani merak etmeyin benim bir çok yazılımım ve dünyadaki bu tür resimleri cihazdan getiren tüm uygulamalar bu izinleri ister başka bir şeye yormayın.. Ancak kodları göremediğiniz için şüphelenmek doğru. Ben de size böyle gizli bir şey yok diyorum..
Bazı özellikleri kullanmak için de paralı yapmışlar ki bu da normal..
Kasmadan , korkmadan kullanabilirsiniz bir iki resim önemli değil derseniz. Paylaşmanız da gerekmiyorsa paylaşma seçeneğini de seçmeyin.. Benim resmimin ne önemi var derseniz de o da size kalmış.
Benzer bir yazılımı tamamen merak ettiğimden geçmişte yazmıştım.. Fazla ileri götürmemiştim ve tamamen video üzerinde gerçekleştiriyor yani daha zor bir iş idi ve 15 saniyelik video sunu ve her video nun frame lere çevrilmiş resimlerini de cihaza kaydediyordum.
Linki : https://www.youtube.com/watch?v=4TjYUSmRQMU
Not: Mobil yazılımları bizler kodlarken siz kullanıcılardan bazı izinler isteriz. kamera, depolama aygıtı, konum gps vb.. Bazen gereksiz izinlerde istendiği oluyor. Sonuçta bu izinler olmasa zaten o yazılım bir işe yaramaz ve ilgili fonksiyonları çalışmaz. Ayrıca mobil yazılımlarda sizin Ip adresinizden cihazınızın türüne ve giriş isminize hatta lokasyonunuza kadar ki gps kapalı olsa bile baz istasyonu üzerinden yaklaşık lokasyonunuz alınır her bilgiyi depolarız. Bunun iznini privacy kısmında açıklayan yazılımlar olduğu gibi açıklamayan yazılımlarda vardır ve sayısı çok büyük yüzdeyi oluşturur.. Hatta analitik yazılımları bile çalıştırıp sizin tüm davranışınızı izler kaydederler. Mesela Turkcell BIP böyledir. Tüm bunlara bakarak FaceApp bunları privacy de yazdı diye vay bu bilgileri alıp şunu yapar buraya verir demek çok saflık oluyor. Zaten tüm mobil uygulamalar bunu böyle yapıyor ne yazık ki.. ABD li senatörler çok kaygılanmış bunu Rus yazılımcı yazdı diye işte Rus hükümeti ile paylaşacak vb.. Kendi yazılımlarına baksın diyorum alayı ne işler yapıyor hiç seslerini çıkarmadılar.. Peki hiç mi zararı yok FaceApp in derseniz. Her program kadar derim. Kötü amacı olan biri zaten her şeyi yapar yapıyor da merak etmeyin.. Benim gibi biri de çıkıp kodların içine dalıp size bunları yazıyorsa siz buna hem sevinin hem de buna göre düşünüp davranın isterim.
Kalın sağlıcakla..
Selcuk Celik