syncthing / syncthing-android

Wrapper of syncthing for Android.
https://syncthing.net/
Mozilla Public License 2.0
3.52k stars 396 forks source link

Syncthing doesn't work on Sd-Card #87

Closed bjo81 closed 6 years ago

bjo81 commented 10 years ago

When syncthing has been moved to the SD-card via the App2SD-function, it crashes with errorcode 126 when you try to run it.

The device is a Sony Xperia Neo V running CM11, the app is version 0.4.6.

Log: http://paste.m0u.de/paste/G2Fzx1yB#

Nutomic commented 10 years ago

There's something wrong with your log, that's definitely not an Android log ;)

bjo81 commented 10 years ago

Quite good "encryption" by the pastebin service ;)

I pasted the log at pastebin now: http://pastebin.com/vH9Dznw4

Nutomic commented 10 years ago

The log only shows that it fails to read the error stream, but I suppose the actual problem is that it can't start the binary in the first place.

I didn't find app2sd on my 4.4 device, did you use a third party app for this?

bjo81 commented 10 years ago

I'm using link2sd for moving apps to the sd, but "move to sd" is also available in androids own app-list, maybe it is enabled due to CM11.

jgscha commented 9 years ago

This happens also without moving app to SD on my tablet "Lenovo B6000-F" (Android 4.2.2). The crash happens with the first start of syncthing after download without any special configuration. I didn't found any log file.

AudriusButkevicius commented 9 years ago

So I'd be keen to see an strace on why the syncthing binary crashes.

Nutomic commented 9 years ago

The error code means "Command invoked cannot execute".

If you have root, could you post the output of # ls -l /data/data/com.nutomic.syncthing-android/lib?

jgscha commented 9 years ago

root@android:/ # cd /data/data/com.nutomic.syncthingandroid/ root@android:/data/data/com.nutomic.syncthingandroid # ls -l lib lrwxrwxrwx install install 2014-11-27 17:09 lib -> /mnt/asec2/[2]com.nutomic.syncthingandroid-2/lib root@android:/data/data/com.nutomic.syncthingandroid # ls -l lib/ -rw-r--r-- system system 8274533 2014-12-20 21:22 libsyncthing.so

Not more.

AudriusButkevicius commented 9 years ago

+x is missing on the .so file? chmod +x libsyncthing.so

But it seems it is on an SD card (/mnt?)

jgscha commented 9 years ago

chmod 755 lib/libsyncthing.so Unable to chmod lib/libsyncthing.so: Read-only file system

manuell remount rw and chmod again: Application starts Was goes wrong? Installer problem? Would it work on next update?

Nutomic commented 9 years ago

Yeah, the file needs to be executable to work. Remounting requires root, so we can't do that.

However, the whole "error 126" problem should be solved by #46, using the NDK, which is the official way to do this. At the moment, the approach is very hackish.

jgscha commented 9 years ago

OK. Thank you for your help.

kowach commented 9 years ago

I have the same problem, solved by moving back form SD card to main storage.

E/SyncthingRunnable( 4423): Failed to execute syncthing binary or read output
E/SyncthingRunnable( 4423): java.io.IOException: Error running exec(). Command: [/data/data/com.nutomic.syncthingandroid/lib/libsyncthing.so, -generate, /data/data/com.nutomic.syncthingandroid/files] Working Directory: null Environment: [ANDROID_SOCKET_zygote=9,SECONDARY_STORAGE=/storage/sdcard1, ANDROID_STORAGE=/storage, STNOUPGRADE=1, ANDROID_BOOTLOGO=1,EXTERNAL_STORAGE=/storage/sdcard0, ANDROID_ASSETS=/system/app...
...
E/SyncthingRunnable( 4423): Caused by: java.io.IOException: Permission denied
E/SyncthingRunnable( 4423):     at java.lang.ProcessManager.exec(Native Method)
E/SyncthingRunnable( 4423):     at java.lang.ProcessManager.exec(ProcessManager.java:209)

Running Oppo R819, Android 4.2.1

gerroon commented 9 years ago

It would be nice if this is allowed because my device has limited data storage and ST is taking abit of space ;(

trueschool commented 8 years ago

Yes, please address this! I have SyncThing installed in the phone's storage, but when I try to set a directory on my SD card as the sync location, I get an error saying that my phone doesn't allow it?!? (Galaxy S7)

I want to use SyncThing for syncing large files to my phone, so being able to use the SD card is pretty essential to my use case. Thanks, and keep up the great work! Ted

Nutomic commented 8 years ago

@trueschool Wrong issue, check #29.

ckotte commented 6 years ago

comments can't be added to #29 anymore. Is it possible to implement a one-way sync of folders located on external SD cards? My photos are automatically saved on the SD card and I want to sync that folder to my NAS, but I can't select it..

Nutomic commented 6 years ago

@ckotte Yes, you just have to create the .stfolder directory manually.

Catfriend1 commented 6 years ago

Closed as a duplicate of https://github.com/syncthing/syncthing-android/issues/29#issuecomment-383411994