MTP and transferring files with Android and iOS phones, Cameras

About MTP:

Opus includes built-in support for the MTP protocol, which many phones and tablets (typically Android ones) use to allow file transfer between the phone/tablet and your PC, when both are connected together via a USB cable.

Some people find that MTP transfers do not always work, often with Samsung phones and/or older versions of Android. Since MTP depends on the devices at both ends of the cable cooperating with each other, and there are lots of versions of Android as well as custom MTP stacks from some OEMs, behavior is not always the same from one device to another. The Windows version can also play a part, since the Windows MTP stack is involved in the same way that the Android MTP stack is, and neither are entirely problem-free.

(Other things like firewall and antivirus may also get involved, as always, but that's an open topic and outside the scope of this post.)

MTP is also a very simple protocol, with limitations such as only being able to transfer one file at a time in its entirety. It is very different and simplified compared to a real filesystem, even if it looks like one when things are running smoothly.

On top of that simplicity, the MTP stacks in both Windows and Android are still not that mature, and you can see problems in both File Explorer and Directory Opus. Sometimes these are due to low-level issues in the Windows MTP stack. Sometimes problems are due to the device at the other end of the cable.

This post aims to collect suggestions for resolving problems, as well as alternatives for doing the same thing.

If you have problems with MTP:

  • Try toggling Preferences / Miscellaneous / Advanced: mtp_enable

    The name of this setting is a bit misleading. Some form of MTP support is enabled whether it is set to true or false.

    When mtp_enable = true (the default), Opus handles a lot more of the MTP support itself, giving you more of the standard look & feel that you get in other Opus windows, and so on.

    When mtp_enable = false, Opus delegates a lot more of the MTP work to the Windows shell (the same components which File Explorer uses). This means the look & feel when in an MTP folder may not be as consistent, but it may also help with compatibility issues.

    Since the MTP stack varies with different devices (as well as different OEMs, and different versions of Android on the same device), you may find that a device works better in one mode or the other. If you have problems in one mode, try switching to the other one. Unfortunately, it's one of those things where there isn't a single mode that works best for everything.

  • Make sure Opus and Windows are both up-to-date, of course.

    We've made some improvements on our side since MTP support was first introduced in Opus. Although a lot of how MTP works is outside our control, if we find areas that we can improve then we'll do so in future updates.

  • Check for updates from the phone/tablet manufacturer

    We've seen cases where updating Android on a device cured people's problems, presumably due to the new version including bug-fixes for the MTP stack in the device.

    We have also heard from people who resolved problems by updating the PC-side software which their device came with. Such software is less common -- usually you just plug a phone in to a Windows PC without needing to install anything extra -- but if you're using something like that then it can interfere with things and it's worth checking if it is up to date.

  • iPhone / iOS "Keep Originals" setting:

    It has been reported that turning on iOS's Settings / Photos / Keep Originals setting can help prevent problems transferring photos from iPhones and other iOS devices, with both Opus and File Explorer:

  • Check with File Explorer:

    In our experience, if an MTP device has trouble in Opus, it often also has trouble in Explorer (at least if you use it enough to trigger a problem, or attempt parallel access to it while copying from it). If you have problems with both, toggling the mtp_enable setting (mentioned above) may be worth a try, but it's also possible that MTP just doesn't work well between Windows and your device. Luckily, there are alternatives...

Alternatives to MTP: Android

The great thing about Android is you can install an FTP server or SFTP on your phone and transfer files that way, using a much more mature protocol (and also one where Opus handles everything itself, except for the very low-level network code, which is rock-solid in Windows).

Doing this does not require any kind of root access or "jailbreaking". An FTP server can be installed on any Android phone (unless it's something like a locked-down, corporate-provided phone that blocks you from installing apps at all).

Opus has built-in support for FTP, and optional support for FTPS and SFTP (SSH), and these work great with Android phones in our experience.

Installing a server on the phone is usually a very simple task:

  • Chose the app you want to use as a server and downloading it from the Play store.
  • Launch the app and it will ask you to enter the username and password you want the server to use, and it will tell you the phone's IP address on your network.
  • Enter the same details into Opus and you'll be looking at a directory listing of your phone.
  • When you're done, just close the Opus window, and tell the app to shut down the server (assuming you don't want it running 24/7).

As well as being far more reliable, a huge advantage to using FTP (etc.) over MTP is that it works over Wifi. No cable is required. Of course, a possible disadvantage is that it may be a bit slower than using a USB cable, depending on your Wifi speed, but Wifi speeds are usually fine for typical usage, and the convenience and time saved not having to physically tether the phone to the PC makes up for it.

Choosing which server to download from the Play store is the hardest part, as there are lots to chose from. Pretty much any of them should work, although some are better written than others. Some Android file managers have FTP servers built-in as well, if you want to kill two birds with one stone.

If you want a quick & easy Android FTP server which is known to work well (at time of updating this, June 2019), try this one:

(If you do find an Android FTP (etc.) server which doesn't work with Opus, check if it works with another FTP client like FileZilla. If it does, let us know. With FTP we can often resolve incompatibilities with particular servers, although it depends on the exact cause, of course.)

Alternatives to MTP: iOS

iOS also allows you to install an FTP server on the phone these days, although we don't know which ones to recommend. You can also do the reverse and access Windows file shares directly from an iOS device. (FE File Explorer Pro is known to work very well for this, in our experience, but there are many other options. The built-in iOS file manager can also do it, in theory, but seems to have problems with hidden shares.)

Alternatives to MTP: Cameras

If the camera can only use MTP to transfer files, with no other options, then removing the memory card and plugging it into a USB card reader (or similar) will give you much more results, and often faster as well.