MTP sucks. Connecting your devices with a USB cable uses the awful MTP protocol. I don’t know why, but it crashes often and freezes some file managers. I always had problems with it, even with different phones, cables or Linux distros.
Syncthing sucks. I love the concept (a private, open-source cloud) but it’s too unstable. Syncthing upgrade? Ooops, stopped working. Android update? Ooops, broken again.
Mini-SD is ok. However, taking it out of my phone requires a special tool or a thin pin, which is not always available. Sometimes apps go crazy when you take the card out, which sucks.
Old but gold, FTP has been my favorite tool so far. Activate the FTP server in your phone, access it with a client in your PC and do whatever you want with your files - download, upload, delete, etc. I decided to use FTP Server (Free) because it is open-source and simple to use.
WARNING: I haven’t checked the source code, so no safety guarantee.
We’ll install F-Droid (an alternative app store) and then download and install FTP Server (Free) from it.
- Install F-Droid
- In F-Droid, search for FTP Server (Free), install and open it
- Enter login settings and set a username and password
- (Optional) On “Advanced settings” -> “Stay in folder” pick the parent directory you wish to use (such as internal storage or SD card).
- Return to the first menu and start the FTP Server using the toggle button
You got the FTP server, now you need the client to access and manage it. It can be a command line program (such as lftp) or a graphical program (such as filezilla). I’ll demonstrate lftp on Manjaro Linux.
- Install lftp
Warning: this script may delete files from your phone. It targets a folder from your computer and creates an exact copy in your phone. If you use a completely unrelated file in your phone, the script might delete everything!
Tip: don’t forget to fill in your username and password :)
Copy the following script to ftpsync.sh:
Example of usage:
And that’s it! You can now turn off the FTP Server in your phone.
For me, this has been the easiest way to share files between my computer and my smartphone.
Bug: sometimes the speed is really slow. Usually stopping the script and trying again later (a minute or so) fixes it.