- Resmî syncthing-android uygulaması emekliye ayrılıyor; GitHub ve F-Droid’deki son sürümün Aralık 2024 Syncthing sürümü ile birlikte yayınlanması planlanıyor
- Sonlandırma kararının arkasında, Google Play dağıtımının “zor ya da imkânsız düzeye” gelmesi ile aktif bakım eksikliği birlikte yer alıyor
- Neden yalnızca Play Store sürümlerinin engellenmesi değil; uygulamanın yeniden canlandırılması veya sürdürülmesi için birinin uzun vadeli bakım sorumluluğunu üstlenmesi gerekiyor
- Bu, Android’de Syncthing’in tamamen ortadan kalktığı anlamına gelmiyor; mevcut uygulamayı kullanmak, Syncthing Fork veya Termux tabanlı çalışma gibi alternatifler tartışılıyor
- Son resmî uygulama bir süre daha çalışmaya devam edebilir, ancak daha yeni Syncthing sürümlerine ihtiyaç duyan kullanıcıların ayarlarını dışa aktarıp Fork’a geçişi değerlendirmesi gerekiyor
Resmî syncthing-android uygulaması sona eriyor
- Resmî syncthing-android uygulamasının emekliye ayrılmasına karar verildi ve son GitHub ile F-Droid sürümü Aralık 2024 Syncthing sürümü ile birlikte yayınlanacak
- Kararın arkasında iki nedenin birleşimi var
- Google’ın Play dağıtımını “zor ya da imkânsız düzeye” getirmesi
- Uygulama için aktif bakımın bulunmaması
- Uygulama uzun süredir anlamlı bir geliştirme almıyordu; Play sürümü de zorlaştıkça sürekli bakım için zaman ve motivasyon ayırmanın getirisi azaldı
- Uygulamaya katkı sunanlara teşekkür edildi ve birçok kullanıcı da bakım süreci için hem teşekkürlerini hem üzüntülerini dile getirdi
Play Store dağıtım sorunu ve bakım sınırları
- Toplulukta, Play Store politikalarının meşru gelişmiş yetkiler isteyen uygulamalar için dezavantajlı işlediği yönünde tepkiler geldi
- Gelişmiş yetki gerektiren uygulamaların Store’a girmesi zorlaşıyor
- Buna karşılık kullanıcı verisi toplayan veya casus yazılıma yakın uygulamaların ciddi bir yaptırım olmadan kalabildiği de eleştiriliyor
- F-Droid’de birkaç sürüm daha devam edilip geçiş rehberi veya dokümantasyon sağlanıp sağlanamayacağı da önerildi
- Proje tarafı, genel dağıtım kanallarında sürüm yayınlayamamanın yalnızca ek bir motivasyon kaybı unsuru olduğunu, tek neden olmadığını özellikle vurguladı
- Uygulamanın yeniden canlanması veya sürmesi ancak birinin uzun vadeli emek vermesiyle mümkün; uygulama uzun süredir “life support” durumundaydı
Android’de Syncthing kullanmaya devam etme yolları
- Bu karar, uzun zamandır neredeyse uykuda olan resmî Android uygulamasının sonlandırılmasıyla sınırlı
- Bu, Android’de Syncthing’in artık kullanılamayacağı anlamına gelmiyor; başka kişiler Android için Syncthing uygulaması dağıtmaya devam edebilir
- Android’in giderek iOS’a benzer bir yöne gitmesi nedeniyle işlerin zorlaşabileceği endişesi var, ancak yakın zamanda iOS için yeni bir açık kaynak Syncthing uygulamasının geliştirildiği de hatırlatılıyor
- Resmî duyuruyu yapan kişi, kendisinin de Android’de Syncthing kullandığını ve kişisel olarak Android’de uzun süre kullanılmaya devam etmesini umduğunu belirtti
Tartışılan alternatifler: Fork ve Termux
- Doğrudan alternatif olarak Catfriend1/syncthing-android anılıyor
- Mevcut resmî uygulamanın son sürümü artık güncellenmeyecek olsa da bir süre daha sorunsuz çalışması muhtemel
- Daha güncel Syncthing sürümüne ihtiyaç varsa Syncthing Fork’a geçilebilir
- Mevcut yapılandırma resmî uygulamanın ayarlarından dışa aktarılabilir
- Fork içine içe aktarılabilir
- Syncthing açısından iki uygulama birbiriyle uyumlu
- Syncthing’i Termux içinde çalıştırmak da bir alternatif olarak tartışılıyor
- Dosyaları dışa aktarıp veya kopyalayıp bazı ayarları düzenleyince çalışıyor
- Telefonun sürekli uyanık kalmasını istemiyorsanız elle başlatıp durdurma gereksinimi dezavantaj olarak öne çıkıyor
- Android ayarlarında Termux uygulaması için pil optimizasyonu açık bırakılırsa Android doze modunda zorla uyku durumuna geçebileceği de belirtiliyor
- Web GUI’ye yerel tarayıcıdan
http://127.0.0.1:8384 adresiyle erişilebilir; bu, mevcut Syncthing uygulaması kullanılırken de mümkün olan bir yöntem
Termux + Tasker yapılandırma örneği
- Bir kullanıcı, Syncthing + Tasker + Termux kombinasyonunun çalışan bir alternatif olduğunu doğruladı
- Kurulum şu şekilde
- Play Store’dan Tasker kurulumu
- F-Droid’den Termux ve
termux:tasker kurulumu
- Gerekli ek izinler şunlar
- Tasker:
additional → run commands in termux environment
- Termux:
Appear on top
- Termux içinde Syncthing kurulum komutu şöyle
termux-setup-storage
apt install syncthing
~/.termux/tasker/start-syncthing-for-5minutes.sh dosyası oluşturulup Syncthing’in 5 dakika çalışması sağlanıyor
#!/usr/bin/bash
timeout -s KILL 5m syncthing
- Tasker içinde 00:00’dan 23:59’a kadar her 1 saatte bir
Plugin→Termux:Tasker ile ilgili betiğin çalıştırılması ayarlanıyor
start-syncthing-for-5minutes.sh
- terminal session:
X
- GUI’de Start browser seçeneği kapatılırsa başlangıçta tarayıcı otomatik açılmaz
- Mevcut Android uygulamasından ayarlar dışa aktarıldıktan sonra
~/.local/state/syncthing içine kopyalanırsa yeni kurulum yapmak yerine mevcut yapılandırma sürdürülebilir
- Sonrasında
config.xml içindeki GUI erişimi için kullanılan username/password silinip gerekirse yeniden ayarlanabilir
2 yorum
Syncthing - sürekli dosya senkronizasyonu için açık kaynak
Hacker News görüşleri
Google ile yapılan görüşmelerden hiçbir sonuç çıkmamış. İzin alabilmek için Google'ın istediği değişiklikler belirsiz olduğu için nasıl yanıt verileceğini anlamak bile zormuş ve ne yapılırsa yapılsın başarılı olup olmayacağı da açık değilmiş
Sonrasında da Play'de kalmak için geliştirici doğrulaması, hedef API seviyesi gibi ayrı işler eklenmiş; sonunda bu oyunu sürdürmek için artık motivasyon ve zaman kalmadığını fark ettiğini söylüyor
Bu, şirkette PR yorumlarını düzeltmek yerine kendi yaklaşımının daha iyi olduğunu söyleyip patlayan insanlara benziyor. Apple da ObjC/Swift API'lerini kullanmak zor diye keyfi dizinlere yazma izni vermiyor
Eskiden Dropbox'ta 2010'larda profesyonel olarak Android geliştirdim ve eski Android dosya sistemi API'lerini de bir ölçüde biliyordum; ama bilinçli şekilde geliştirici deneyimi/backend tarafına geçip Android'den uzaklaştım. Eski Android ekip arkadaşlarımın çoğu da benzerini yaptı
Uygulamayı çalışır durumda tutmak için sonsuz prosedür ve API değişikliğinden geçmek çok acı vericiydi. 2014'te “güvenli” Storage Access Framework çıktığında, dosya adına sadece
"../../"vermekle herhangi bir uygulamanın özel dizinine yazılabilen basit bir directory traversal açığı bulmuştum. SAF'ı anlamaya çalışırken AOSP kaynak koduna göz atınca hemen fark edilecek kadar açıktıAndroid uzun süre uygulama klasörlerine global execute biti de veriyordu; bu yüzden kötü amaçlı bir uygulama, başka bir uygulamanın dosyalarına isim üzerinden hard link oluşturup sonra bunu tekrar o uygulamaya vererek dosya içeriğine erişen confused deputy saldırıları da yapabiliyordu
Android'in güvenliği sıkılaştırmış olması sevindirici, ama çok gevşek bir temel üzerine kuruldu ve sayısız uygulama bu temeli kullandı ya da suistimal etti; bu yüzden kilitler sıkılaştıkça ortaya çıkan büyük uyumluluk kırılmalarına uyum sağlamak zorunda kalan geliştiriciler ekosistemi terk edecek gibi görünüyor
[0] Bug 18512473 fixed in https://android.googlesource.com/platform/frameworks/base/+/...
[1] Proof of concept video: https://www.dropbox.com/s/8dpd8visrttqbfo/poc.mp4?dl=0
webOS'un vizyonunu özlüyorum. 14 yıl önceki webOS implementasyonunun kendisini özlediğim anlamında değil
Aktif olarak bakımı yapılan bir Android Syncthing fork'u var ve ayrı bir ölçüt olsa da ayrıca 1.3K yıldız almış
[1] https://github.com/Catfriend1/syncthing-android
Asıl iş parçacığında yazar, Google Play'de yayın yapmanın çok zor olduğunu söylüyor
“Bunun nedeni Google'ın Play'de yayınlamayı zor ya da imkânsıza yakın hâle getirmesi” diyor; burada tam olarak neler olduğunu biraz daha açıklayabilecek biri var mı?
[1]: https://forum.syncthing.net/t/discontinuing-syncthing-androi...
Bu API yalnızca Java için ve Syncthing'in çekirdeği Java ile yazılmadığından, dosya okuma ve yazmada Android'i çağırmak için muhtemelen JNI bağlantı kodu yazması gerekecekti. SAF ayrıca her dosyaya bir URI veriyor ve klasör yapısını sürekli sorgulamayı gerektiriyor; yani normal dosyalardaki gibi yolları birleştiremiyorsunuz, bu da epey zahmetli
Yazar bu işi yapmak istememiş ve Google'ı tüm dosyalara, fotoğraflara ve belgelere doğrudan erişime izin vermeye ikna etmeye çalışmış ama Google reddetmiş. Buradaki “zorluk”, yönergelere uyulmadığında Play'de yayın yapmanın gerçekten zor olması anlamına geliyor gibi. App Store'da da durum benzer
Benim uygulamam da bir küçük sürümde izin onayı alıp sonraki hafta uygulamada yalnızca ufak değişiklikler olmasına rağmen reddedilebiliyordu. Google Play destek ekibine sorunca gelen yanıtlar hep muğlak, kalıp ve tekrarlı oluyor. Uygulama güncellemesinin onay alıp almayacağını hiç bilememek, bir şey geliştirmek için korkunç bir yöntem
Sonuçta bu yapı küçük, düşük bütçeli, zamanı kısıtlı geliştiricileri cezalandırıyor ve birleşmeyi büyük şirketler etrafında teşvik ediyor. Büyük şirketler bir miktar etki kullanabiliyor, varsayılan güvene sahip oluyor ve saçma, bazen de ağır yük oluşturan gereksinimleri uygulayacak bütçe ve zamana sahip oluyor. Sonuç olarak bu, pazar konumunu sağlamlaştırmaya ve önümüzdeki onlarca yıl boyunca Play Store'u ayakta tutacak bağlı katılımcılar oluşturmaya çalışıyormuş gibi görünüyor
Bunu telefonumda KeePass veritabanı tutmak için kullanıyordum, can sıkıcı oldu. Benimle aynı durumda olan var mı?
Bir makineye SFTP ile bağlanıp, o makinede de diğer cihazlarla Syncthing çalıştırmanızı öneririm
Syncthing'i kullanmayı bilen ve isteyecek türden kullanıcılar için APK kaynağı olarak F-Droid'a güvenmek gayet mümkün değil mi? Sırf onu dağıtım kanalı yapmak yetmiyor mu?
Mobil bilişimden nefret ediyorum
APK'yı Turbo Pascal disketleriyle birlikte güvenli bir yerde saklayacağım. Android için Syncthing benim nota koleksiyonumu yönetmek için vazgeçilmezdi
Şu an Syncthing Android uygulamasının bundan sonra ne kadar daha çalışmaya devam edeceğini bilen var mı?