top | item 41895718

Syncthing Android App Discontinued

418 points| opengears | 1 year ago |forum.syncthing.net | reply

277 comments

order
[+] jasonjayr|1 year ago|reply
From the (current) final comment at https://github.com/syncthing/syncthing-android/issues/2064

> Nothing came of the discussions with google. Demands by Google for changes to get the permission granted were vague, which makes it both arduous to figure out how to address them and very unclear if whatever I do will actually lead to success. Then more unrelated work to stay on play came up (dev. verification, target API level), which among other influences finally made me realize I don't have the motivation or time anymore to play this game.

[+] izacus|1 year ago|reply
I don't think Google was ever buy a "I don't want to use file APIs because writing the code would be hard." excuse for a security issue. I don't know what kind of exact "discussions" were possible here for "give me access to all user data, photos and everything because I don't think I want to use SAF APIs". It's like that dude in your company that will have a meltdown in PRs over his better way instead of fixing the comments and having code submitted.

Apple won't let you write into random directories past their APIs either, just because it would be too hard to use ObjC/Swift.

[+] scottbez1|1 year ago|reply
I used to develop Android professionally (at Dropbox in the 2010s, so I have some familiarity with older Android filesystem APIs) and made a very conscious decision to switch to devx and backend work and get out of Android (as did most of my former Android colleagues). The unending hoops you had to jump through and API changes to keep your app working were too much of a pain.

As a fun anecdote, in 2014 when the "secure" Storage Access Framework was new, I found a trivial directory traversal vuln that allowed writing to any app's private directory by just passing a "../../" file name to the system [0, 1]. It was so trivial I noticed it while just browsing AOSP source to understand SAF better...

Android also used to grant world execute bits to app folders for the longest time, allowing malicious apps to create hard links to other apps' files by name, which could then be handed back to that app for a confused-deputy attack to gain access to the file contents.

All that to say - I'm glad Android has been working on security, but it was built upon such a loose foundation that tons of apps used and abused that it's going to drive developers out of the ecosystem as they have to keep adapting to a continuous stream of major breaking changes as things are locked down.

[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

[+] jsiepkes|1 year ago|reply
There is an Android Syncthing fork [1] which is active and 1.3K stars (for whatever that's worth).

[1] https://github.com/Catfriend1/syncthing-android

[+] ajb|1 year ago|reply
Good to know, although the Readme says:

"Planning to close my Google Play Developer Account. Please say hi if you are interested in obtaining the latest gplay release files from me to help in publishing this app."

[+] felurx|1 year ago|reply
I've been using that one for a long time now. I recall that when I got started with Syncthing (some months to a year or two ago?), it seemed to have been the folk wisdom to use Syncthing-Fork, but I don't recall what the reason was.
[+] krick|1 year ago|reply
Weirdly enough, I cannot find either on Play right now..even though I have it (the original, I believe) installed through Play.
[+] oakpond|1 year ago|reply
Seems to work. Exported the config of the other one and imported it in this one. Seems all the settings are there. Sync seems to work too. Kudos to the devs.
[+] SeriousM|1 year ago|reply
Yep, that's what I use. Very happy with it for years!
[+] _fat_santa|1 year ago|reply
Looking at the underlying thread[1], the author mentions that it's very hard to publish on Google Play

> Reason is a combination of Google making Play publishing something between hard and impossible

Can someone expand on what's going on here?

[1]: https://forum.syncthing.net/t/discontinuing-syncthing-androi...

[+] izacus|1 year ago|reply
In this case the author doesn't want to use Storage Access Framework APIs to access the file system which were mandated a few years ago as the way to access data outside the app sandbox.

They're Java-only APIs and since Syncthings core isn't written in Java, the author would have to write JNI glue to call Android when writing/reading files (and honestly this would be quite tedious, because the way SAF works is to assign Uris to each file and you need to keep querying it to get folder structure since you can't just concat paths like with files).

The author didn't want to do that and tried to persuade Google to continue letting them access all files, all photos and all documents directly and Google said no. That was the "difficulty" - turns out it's really hard to publish on Play if you refuse to follow the guidelines. Just like on AppStore.

[+] binkHN|1 year ago|reply
While I don't know about this developer's specific issues, I can comment on my own issues with Google Play as an Android developer. Google Play continues to become more and more stringent with app permissions and the approval of these permissions is very vague. With my own app, from one minor release the next, one day I'll receive approval for my app's permissions and the next week I will not even though only minor changes to the app have been made. When I reach out to Google Play support, the answers are always extremely vague, canned and repetitive and I never know if an update to my app will get approval or not. It's a horrible way to develop anything.
[+] zo1|1 year ago|reply
I've done a few apps as part of my day job. And my best explanation and/or analogy is government regulations. The store requirements, apis and rules are documented up to the upteenth degree in 49 pages spread across many areas, and unless you're "in the know", you have no way to implement it to a reliable degree. And then all this ends up doing is punishing small / low-budget / low-time developers, leading to consolidation around the big players.

The big players can push their weight around to some degree, they get an element of built-in trust, and they have the sheer budget/time to implement all the ridiculous and sometimes onerous requirements. All in all, they're cementing their market position and trying to make "sticky" and invested players that will prop-up the play store for the coming decades.

[+] treve|1 year ago|reply
Eek. That's how I get my keepass database on my phone. Anyone else in this predicament?
[+] lgbr|1 year ago|reply
The KeePass2Android app gains a bit of functionality if you use it with SFTP instead. You get the ability to, for example, merge changes in the event that there's a conflict. I recommend using SFTP to a machine that then runs SyncThing to the rest of your devices.
[+] replete|1 year ago|reply
Resilio Sync is pretty good although proprietary
[+] greenavocado|1 year ago|reply
I think ultimately KeepassDX must integrate Syncthing functionality into itself
[+] pomian|1 year ago|reply
I would think that a user competent to use and want sync thing, is perfectly capable of depending on f droid as a source for the apk. Can that not be enough of a distribution channel.
[+] KetoManx64|1 year ago|reply
I guess we will find out in the next couple of months as people either migrate to the F-Droid based "syncthing-fork" or move to a different sync tool.
[+] amelius|1 year ago|reply
I hate mobile computing so much.
[+] greenavocado|1 year ago|reply
This situation is so bad that I miss the Pocket PC Win32 developer experience
[+] analog31|1 year ago|reply
Well, I'll be putting the APK in a safe place, along with my Turbo Pascal floppies. ;-) Syncthing for Android has been vital to managing my sheet music collection.
[+] Symbiote|1 year ago|reply
Does anyone know how long I could expect the current Syncthing Android app to continue working?
[+] suprjami|1 year ago|reply
Please read the article before commenting. It is clearly stated.
[+] eightys3v3n|1 year ago|reply
Thank you for your work. I'm sorry to see you go. I really hope Syncthing continues to have a presence on Android.
[+] krick|1 year ago|reply
That's just great. It's literally the only use case I had for it. There are tons of better ways to share files on PC.
[+] thenoblesunfish|1 year ago|reply
That's a bummer! Can anyone suggest an alternative way I can get files from my macOS laptop to my Android phone? I "just" want to put my folder of music files and m3us there so I can play them (with PowerAmp).
[+] momo777|1 year ago|reply
Localsend
[+] TwoNineFive|1 year ago|reply
This is one the reasons I root my phone and just run an ssh server on it, I can rsync anything anywhere, and do full efficient filesystem backups.

If you don't have root, it's not your phone.

[+] RadiozRadioz|1 year ago|reply
I've been considering making a new Android app for a while. A simple one to interact with a couple of my web services with some on-device storage, nothing complicated. More than anything, the thing that's stopping me is that I _know_ if I make it, a few Android versions later, it either won't work or won't be allowed on Play. I can't predict what random piece of the Android API/policy will change, but I know something will. And I'll have to waste my time fixing something that worked fine until Google arbitrarily broke it.

I built one app before for JellyBean. I haven't been able to install it for years and I can't compile it for a new version because of a cascade of errors and required changes that I'm unwilling to do. JellyBean hadn't even reached 10 years old before my app broke, it's pathetic that app support crumbled and rotted away that quickly. It'll happen again, so I've been turned off of Android development.

I totally understand the discontentment. It makes you feel powerless.

[+] rcarmo|1 year ago|reply
I hope it can live on inside F-Droid somehow.
[+] redleader55|1 year ago|reply
It can be hosted in any app store, but because it doesn't use the correct APIs - according to Google - it will not work on newer Android devices.
[+] opengears|1 year ago|reply
For everyone using Android and fearing not to be able to use Syncthing anymore: fear not. This is only affecting the Google Play Store version of Syncthing. You can get Syncthing-Fork here on F-Droid http://f-droid.org/packages/com.github.catfriend1.syncthinga...
[+] JeremyNT|1 year ago|reply
The catfriend fork works great (I use it) but to be clear, this post is about the official version. The official version will cease all development, it's not just limited to the Play Store.
[+] kertoip_1|1 year ago|reply
I don't understand. Author of the linked forum thread states that he discontinues both Google Play AND F-droid verion
[+] eternityforest|1 year ago|reply
If the Catfriend fork goes, I'll have no use for Syncthing at all, and it will be a very sad day in open source. I'll probably move to some proprietary app, since I'm definitely not interested in self hosting anything, and there's not really any FOSS equivalents other than Syncthing itself.

Android really needs to just allow direct file access to any file which is under a user selected folder.

[+] sabbaticaldev|1 year ago|reply
Google is in self-destruct model
[+] krick|1 year ago|reply
It is self-destruct only if you have competition. They don't, so it's just destruct.
[+] 1over137|1 year ago|reply
Is Google treating Dropbox the same way? Sounds like it could be anticompetitive behaviour.
[+] izacus|1 year ago|reply
No, because Dropbox actually follows the API guidelines.
[+] xnx|1 year ago|reply
This is disappointing. SyncThing is one of my reasons for picking Android over iPhone. I hope the author reconsidered. Would any GoFundMe-style donation goal make the hassle worthwhile?
[+] andreldm|1 year ago|reply
When I migrated from Android to iPhone, syncthing was my main pain point. There is Möbius Sync, even though not open source, at least it’s an one-time small payment, which is fair considering the dev license cost. Unfortunately it’s not as reliable as the Android official app or the fork, I guess Apple is very strict with background processing, but hey it’s better than nothing.
[+] atmosx|1 year ago|reply
I'm using Syncthing to sync documents between devices and I own a mac fleet and an iPhone. The Möbius Sync[1] client (no affiliation) works great for me.

[1] https://mobiussync.com/

[+] exabyte|1 year ago|reply
One of the top comments has a link to a fork in case you haven't seen it