There’s finally an alternative to Google’s horrible Android File Transfer app

OpenMTP is an open-source file transfer app for Mac that actually doesn't suck.

The anger and screaming man. Hate, rage. Crying emotional angry man in colorful bright lights at stu...

Update (1/4/2021 2:09 PM ET): We've updated the story to include some responses to questions we sent Rathinavel via email.

If you have a Mac and an Android device, you know that transferring files between them is a total nightmare. Apple, nearly a decade later, is still too petty to natively support MTP, Android’s file transfer protocol. Now that’s a grudge.

You would think that Google, the company behind the ascension of Android, would have an interest in making it easy to use an Android phone with a Mac, and you’d be wrong.

See, when Android phones transitioned from connecting to computers via “mass storage,” where the phone just looks like a drive, to MTP, Google made this work with a utility called Android File Transfer. Google has only updated the app three times, ever, to keep it working with newer versions of macOS.

The important thing to understand for the non-Android, non-Mac users out there, is that Android File Transfer (AFT) works like shit. It glitches out if you have too many files in a directory, it glitches out if the transfer is too large, it glitches out if you look at it the wrong way. Oh, and it also interferes with some other Android interface software, meaning that if you need to do some hacking (as Android users are wont to do), the reason it’s not working is probably because AFT is messing it up.

As you can probably infer by my tone, I have a lot of, uh, experience with AFT.

Luckily I was able to experience the joy of moving it directly to my Mac’s trash can, where it belongs, because there’s a new sheriff town: OpenMTP. This open source utility is the work of Ganesh Rathinavel, an Indian software developer who is now an international hero.

Here’s how the app works: First uninstall AFT as mentioned above, and maybe reboot just for good measure since this is a driver we’re talking about. Then install OpenMTP the way you would any other Mac app, and open it. Here’s what it looks like:

OpenMTP's launch screen, showing its most recent changelog.

The interface is simple but relatively complete: There are two panes, one for your computer (on the left) and one for your phone (on the right) and they can be organized in lists or with thumbnails, which is the default. Then you just drag from one side to the other, and a file transfer dialog box appears giving you some handy details, like transfer speed.

OpenMTP's file transfer dialog box.

I do have some details to share from my tests with the app:

Phones tested:

  • Samsung: Works.
  • LG: Works.
  • Xiaomi: Unstable.
  • HTC: Works.
  • OnePlus: Unstable.

There are some quirks with the app. My OnePlus 8 Pro basically wouldn't work at all, and though the Xiaomi appeared to work fine, it would time out as soon as the screen turned off after 60 seconds. Critically, large transfers do work and the speeds were good, hovering above 30 megabytes per second. Also — and this is quite the nitpick for free open-source software — holding shift to select a large number of files in succession does not work as you'd expect it to.

Those issues aside, OpenMTP works way better than any solo open-source project should. And, as it turns out, it wasn't a slam dunk from the beginning. I asked Rathinavel a few questions about the app, and here are his responses, which are lightly edited for clarity:

Why did you decide to create OpenMTP?

"When I bought a new Macbook, I was pretty shocked to see that Apple didn't have the support for reading a MTP device, which is a pretty basic thing in the other OSes. The experience with Google's official AFT was horrible and the other available applications were either too expensive or were too slow. I still remember those days when I had to use a FTP client to transfer files from macOS to Android. Then out of frustration, I decided to write an application for macOS."

Why was it important to make it an open-source project?

"I have been an advocate for Free and Open Source tools for a long time now and I use at least 5 open-source tools each day. If I am taking something for free from the community then I have a responsibility to give it back someday and I was sure that many like me were equally frustrated with the Android File Transfer application. From the emails and messages that I get, I understood that I was able to make life easier for a lot of people."

Why do you think Google hasn't updated Android File Transfer in forever?

"I am not sure about what's going on at Google, they haven't been updating the app for so long. It took them a while even to make the app compatible with the macOS Catalina since Apple dropped the support for 32bit apps in Catalina. I believe that Google decided to just give the bare minimum support so that the Android devices can be accessed across platforms. But unfortunately, the user experience with Google's Android File Transfer is appalling."

Did you run into any particularly difficult problems while creating OpenMTP? Was it difficult to create?

"Yes, a lot. OpenMTP was a product resulting from months of research and development. The MTP protocol in itself is very shabby and it has a lot of inherent issues such as not able to run a task in parallel, frequent connection drop-offs, data corruption etc. The main backbone of the app is the 'MTP Kernel', as I call it, and it acts as the layer between the app and the device. The first version of the MTP Kernel had a few issues like the support for Samsung devices were not available, it was a CLI tool and I had to spawn it within the app to read the MTP device and it was slower than the official Android File Transfer app. A lot of people, especially the Samsung device owners, kept messaging me over the years after the first launch of the app happened. To be honest I couldn't find any better MTP kernel than the one I was already using. I tried to integrate MTP packages from various other programming languages with OpenMTP but I eventually failed as there were a lot of technical challenges in implementing them. I even invited people who were proficient in Node.js and C++ to help me improve the libmtp implementation of the MTP kernel that I was writing back then. No one could help.

The last fall, I started working on a new MTP Kernel, 'Kalam MTP Kernel' as I call it, is named after the renowned scientist, poet and Statesman Dr APJ Abdul Kalam.

Yesterday, I released the 3.0 version of OpenMTP and it is the biggest and most important release so far. OpenMTP 3.0 sports wider device support, 5-6x faster data transfer rates, improved stability, a dark theme mode and numerous other feature requests.

It has worked great so far though occasionally I keep getting device compatibility issue reports from the users. But unfortunately, I don't have these devices to test and to add support for them. I urge the community members to look at the code and raise a pull request if they could add the support for an incompatible device."