How to transfer files between Linux and Android in a fast and reliable way?

15

4

As the title says, I need to find a fast and reliable way to transfer files between my Linux laptop (OpenSUSE with KDE 4) and my Android phone (Samsung Galaxy S3 Neo).

I have already tried several methods

  • MTP protocol over a physical USB cable connection;
  • FTP protocol over WiFi, provided by ES File Manager app;
  • Bluetooth connection;
  • KDE Connect over WiFi;

but everything seems to be either slow, not reliable, or both; what I mean is that, no matter what kind of connection I try, I always find out that my files are transferring at a low speed (in the 100~500 Kb/s range) or, when the speed is a bit more acceptable (some Mb/s), the connection breaks more often than not; It really get on my nerves to have to wait an hour, or so, to transfer some songs or video files between my devices, or to have to restart the process for the Nth time because it suddenly stop working; after all, in these days, a filesize weighting in the hundreds Mb range is the norm for medium-sized files, I'm not talking about transferring a whole Hard Disk content.

My various trials showed me that MPT is the buggiest way, even if it can achieve the best speeds when working (but this kind of connection breaks way too often to be of any practical use), while the other seem to be more reliable, but whit such low speeds that render the whole process a waste of time (like I said, I find not acceptable to have to wait an hour or so to transfer a music album, an episode of a TV series, or any other file that weights more that a couple of MB's).

What is my best option to perform this simple task? Please bear in mind that I'd like to do it without using any online service (Dropbox, Google Drive, or anything like that), I find it absurd that to transfer some personal files between two personal devices located in the same physical room I have to use a server located, very likely, on another continent.

Sekhemty

Posted 2016-01-18T00:01:49.517

Reputation: 6 654

If the MTP protocol over physical USB connection is causing you problems, that indicates a problem with your setup. It should be reliable and fast. It should be much, much faster than the 12.5 - 62.5 KB/sec you are reporting and I've never seen it break the connection. – ChrisInEdmonton – 2016-01-18T13:17:25.290

3Do you have some suggestions on how can I try to find out where the problem lies? A Google search showed me that I’m not the only one to have problems with this technology under Linux. – Sekhemty – 2016-01-18T13:24:33.277

FWIW, I use jmtpfs and it's also often buggy/slow. I don't think it's a problem with the physical connection because adb push is fast and reliable. – András Korn – 2016-01-20T19:50:10.713

1The problem is not just the slowness -- I would be comfortable for some transfers to be slow ... When I copy a file (say a movie or songs) the entire PC 'stops'. Why?! If I drag files to a device on Windows to the exact same Android device -- I can still do real things like compile Java or answer Email. But using a copy on Linux, no it must wait just like a Single Threaded MSDOS PC. What ever the problem is appears to be a buggy implementation for the Linux - Android interface. Bit sad if they both come from the same Linux stable. – will – 2017-03-04T07:55:32.263

Answers

4

KDE connect. I'm transferring pictures from my phone with 35 Megabytes per second on my home wifi. At my workplace the wifi/network is considerably poorer: I only get ca 0.5 megabyte per second. Same computer - same phone.

Creating a shared wifi on the computer via the network manager can speed things up a lot. (Remember to set a wifi code so you don't open the network)

user130356

Posted 2016-01-18T00:01:49.517

Reputation: 153

35 MB/s? I only get 1-2MB for some reason. Which smartphone, router, computer you use? – Te Ri – 2018-04-09T09:29:46.073

Samsung s8 + TP-link Archer C9. Make sure your phone and laptop are not on two different bands (2.4Ghz and 5Ghz) – user130356 – 2018-04-09T13:07:48.170

UX on linux keeps getting better and better. – D. Dan – 2018-10-24T12:12:47.613

2

Use ADB push/pull. Or I think some devices support the pre-MTP USB mass transfer. Might need to enable it first. Though adb is probably best for large and fast transfers.

jiggunjer

Posted 2016-01-18T00:01:49.517

Reputation: 831

1

Permissions seem to be a frequent problem. I use

adb push <file on pc> /storage/self/primary/Download/

the latter directory is writeable by joe user, unlike system dirs which require a rooted phone.

N.b. this automatically invokes adb start-server; to tidy up, adb kill-server after file transfer.

The file which ends up in the Download folder can be moved with the phone's menu 'select' and 'move' functions.

If you're trying to modify the phone's inner workings you need root access...

Will 18

Posted 2016-01-18T00:01:49.517

Reputation: 11

1

I agree that copying files over WiFi between Linux computer and Android phone is absurdly difficult. The most convenient tool for this IMO is KDE Connect, however in my case it often has problems in the Linux -> Android direction returning errors with no meaningful comment.

For Linux -> Android direction in my case pure FTP solution works best. My set up:

  • Android: I use Total Commander App (TC) as an FTP client (you may need to install additionally an FTP plugin for TC)
  • Linux: I use vsftpd service as an FTP server:

    -- a great article how to set up an FTP server step by step you can find here: https://www.wikihow.com/Set-up-an-FTP-Server-in-Ubuntu-Linux

    -- sometimes you want to verify the status of your vsftpd service, how to do it you can find here: https://askubuntu.com/questions/19320/how-to-enable-or-disable-services

  • Once the above is set up create a new FTP connection in Total Commender App (user: anonymous, IP: [verify on Linux using ifconfig command - wlan0, most likely will start with 192.168.], SSL: no, name: [your favorite connection name]).

After connecting in TC to the FTP server on your Linux you can copy files from Linux computer to the Android device: in one panel you have your FTP server folder on Linux and in the other you can choose any directory on your Android and copy files from one to another.

Wassermann

Posted 2016-01-18T00:01:49.517

Reputation: 11

0

Maybe take a look at Airdroid, which should transfer the files locally via Wi-Fi.

kyze

Posted 2016-01-18T00:01:49.517

Reputation: 579

4Thanks, but like I said, I prefer not to rely on online solutions; AirDroid requires you to register an account to be used, it is not something that I'm willing to do for a simple file transfer task. – Sekhemty – 2016-01-18T13:22:05.537

Alright, sorry. Last time i used it, the phone would start a webserver and you could access it from the local wifi using a short (4 digit) authentication-code. Account was not forced back then. – kyze – 2016-01-18T13:24:53.903

2In addition, I do not see why I should give away my contact list in ordre to transfer files – Guido Kanschat – 2018-10-27T21:16:25.390

0

If you have samba on your Linux box, "FolderSync lite" works pretty well, but mainly for keeping pairs of directories in sync; thus it's good for songs and pictures, but not so much for one-off transfers.

As others have said, adb push is a good way of moving files to the phone over a cable connection. Somebody should write an adbfs for fuse. :)

András Korn

Posted 2016-01-18T00:01:49.517

Reputation: 266

0

Using SSH Server and Filezilla provides acceptable wireless transfer speeds, reliable and secure file transfers, in my opinion.

Teo

Posted 2016-01-18T00:01:49.517

Reputation: 705

2Except that your sshd user may not have write permission on the external SD card, for example... – Jay – 2016-09-08T20:25:05.993

0

I've found that it only works for USB if I use the cable supplied with that device or a similar device. The USB cable from my defunct Samsung tablet works fine with my Android Onix replacement. The only thing that works for my phone is that cable that came with it. Other USB charging / transfer cables don't work or not fully: won't copy .mp3 files for example. No idea why this is. But non device cables often don't show up as a USB device.

MazinOz

Posted 2016-01-18T00:01:49.517

Reputation: 1