Info: Syncthing-Fork no longer published via Google Play / Android 11 problems

… due to massive Android 11 problems. We’re currently investigating issues reported by several users on the STF GitHub repository and this is just a precaution in case the data loss issues turn out to be real reproducible scenarios. Will need some time and exchange during chat with users to know more and follow up.

What would be useful info for me: if you’re using Syncthing Android official, are you experiencing issues, too? Is anyone on Android 11 and using the official app with success?

Both apps use the official Syncthing built from source without modifications. The wrappers are slightly different how they do their work, but the most differences are within the UI.

Ref. https://github.com/Catfriend1/syncthing-android/issues/704

2 Likes

I’m using the official Syncthing Android App and updated my Pixel 3a to Android 11 two days ago.

Syncthing is still working without problems. I can sync (with write access) to

  • /storage/emulated/0/Android/data/com.nutomic.syncthingandroid/*
  • /storage/emulated/0/Music/
  • /storage/emulated/0/Download/

But for other Apps to be able to use the synced data, I had to change /storage/emulated/0/Android/data/com.nutomic.syncthingandroid/* to /storage/emulated/0/Android/media/com.nutomic.syncthingandroid/* as e.g. TotalCommander or Keepass2Android cannot access /storage/emulated/0/Android/data/ anymore.

Syncthing is able to set mtime /storage/emulated/0/Android/media/com.nutomic.syncthingandroid/* as well.

EDIT: Another Sync-Tool I use is also still able to sync to its directory in /storage/emulated/0/Android/data/{appname}/ but its folder picker cannot list the contents of /storage/emulated/0/Android/data/. Very strange.

1 Like

Hi @wweich ,

Thanks for your detailed test and insight. I conclude this has something todo with the api / sdk levels. Syncthing-Fork already has compatibility and target at ‘r’ (Android 11, sdk 30). Syncthing official targets api 28. Would you mind giving me feedback for the forked APK release 1.9.0.2 ? It’s available here https://github.com/Catfriend1/syncthing-android/releases/download/v1.9.0.2/com.github.catfriend1.syncthingandroid_v1.9.0.2_7249908a.apk

That would be great - if it doesn’t take too much of your time.

I think the reason is quite clear: on 11/30 scoped storage is enforced, while before you could still request and get legacy storage. fork targets that, non-fork doesn’t.

@Catfriend1 your version 1.9.0.2 works on my Pixel 3a recently upgraded to Android 11. The previous version of ST-Fork required new file access permissions but were denied. Thanks!

@rustycanb Hi, thanks for your feedback on this. Just to avoid misunderstanding: Do I get it right that you’ve switched from the GPlay release to the GitHub release and exported, imported your settings to do so?

– Btw: I’ve discovered another possible way to probably repair big G’s mess by https://developer.android.com/reference/android/R.attr#preserveLegacyExternalStorage . I’m waiting for user feedback on the GitHub issue if it’s only possible to fix the mess before it comes up or if it also helps to upgrade now (from 1.9.0.2 to 1.9.0.3) and Google accepts the legacy way again to be fine then.

It’s really a sh*** that I can produce an APK with all files access (even supporting SD card write access) and this is blocked until January 2021 (as Android dev docs say) until it may be published by the store. I’m really angry with their strategy releasing an OS (Adnroid 11) to the public but holding developers off using their new and mandatory ways to be compatible again until half-a-year-later.

I was using Gplay version of ST-Fork successfully on Android 10. After upgrade to 11, ST reverted to initial setup/permissions pages. I could not get past storage permissions. I deleted ST-Fork and installed GitHub version 1.9.0.2 and succeeded in agreeing to all permissions. I then reinstalled each folder in the normal way, creating the new config file.

Folders sync’ed are available to the folder picker and are under storage/emulated/0/

Interestingly, folders under /storage/emulated/0/Android/data/ are now inaccessible, with permission denied.

1 Like

Ok, I’ve noted down a ticket that we deprecate the suggestion to put new folders below /Android/data/… and suggest /Android/media instead (for backwards compatibility).

@Catfriend1 What is the best way to updated ST-Fork now I’m on Android 11 and there is no ST-Fork on Gplay? Will there be versions (eg 1.9.0.3 and later) on F-droid?

I’m happy to upgrade from GitHub but as Android 11 rolls out, more and more users will hit this problem.

Thanks

@rustycanb Some users reported they could upgrade their existing “play app installation” successfully via this apk from github https://github.com/Catfriend1/syncthing-android/releases/download/v1.9.0.3/com.github.catfriend1.syncthingandroid_gplay_v1.9.0.3_304261d3.apk

But I’m not allowed to upload it to gplay even if it is a gplay signed release.

I ended up here because I was trying to figure out why synthing–fork stopped working after I updated the Android 11. Selecting the all files access is grayed out for it in the permissions screen.

I installed the official syncthing and everything seems to be working fine. I guess I don’t understand why 'fork is “disabled” if they’re ultimately the exact same thing under the hood.

M.

1 Like

@mpalermo73 Official has compatibility with Android API 28, the fork with 30. Google restricts more on API 30 at the moment and will get more lenient in January 2021 (probably).

Mine is showing similar problems since the update to Android 11. It can access some folders fine (like photos and downloads), but data from other apps seems to be denied. It was really handy for uploading lectures to Podcast Addict for example. Hopefully there’s a workaround soon. I’m running syncthing from google play (v1.9.0 last update 8th Sept)

@fraz This is not Syncthing-Fork (?)

it would be nice if the Android 11 and thus Syncthing-restrictions could have a separate FAQ-section. something like: the following directories can’t be selected via the native Android Directory-Picker (SAF), but can be selected via Web-GUI (please ensure to enable “Advanced” -> “Ignore Permissions”):

  • /storage/emulated/0
  • /storage/emulated/0/Download
  • external sd-cards? (don’t know how to test this)

the following directories and subdirectories can’t be accessed because of android 11 restrictions:

  • storage/emulated/0/Android/data
  • storage/emulated/0/Android/obb

read more: – insert link here which I had to remove: file-directory-restrictions–

also I noticed you chose to use the /storage/emulated/0/Android/media directory so that other apps can access configs. when I did some research I found the following information:

  • getExternalMediaDirs() is getting deprecated, but what bothers me is the wording “These directories still exist and are scanned” - does “still” mean in this case that android will get rid of these directories in the upcoming releases? I did not dig into MediaStore by now but by overlooking I couldn’t find an easy get-function to access /storage/emulated/0/Android/media/
  • Note: The /sdcard/Android/media⁠ directory is part of shared storage. - again the media-directory is mentioned in a special note and not in an ordinary bulletin and if you read the articles regarding shared storage – link removed – and the links in it, I couldn’t find the …/media/ directory mentioned there or did I just miss it?
  • the training content for Media uses new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), albumName) – link removed – instead of the …/Android/media/ directory - another hint, that this directory might not have a future?
  • am I just overinterpreting things?

so is the …/Android/media/ directory future-proof or would it be best to look for another place to save the configs?

p.s. syncthing is a great piece of software and I really appreciate your work p.p.s. I had more links in my post but I had to remove them because I’m a new user :frowning:

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.