Comment by cosmic_cheese
3 months ago
MTP is really, really bad. I have a better experience managing files on iOS devices using Linux than I do managing files on Android devices using macOS simply because available MTP implementations are so awful.
I know that read/write conflict concerns are what got USB Mass Storage mode removed from Android, but surely there's some way to resolve that. Like it wouldn't bother me a bit if Android just locked the device and put it in "file transfer mode" when it's mounted on a computer, similar to how iPods used to and how Kobo e-readers do now. It'd be worth the universal robust multi-platform support.
Or they could have figured out a new version of MTP that supports basic features like concurrent access and normal metadata. Or they could have gone for SMB/NFS over a virtual network link. Anything but this horrible interface they've doubled down on.
> I know that read/write conflict concerns are what got USB Mass Storage mode removed from Android, but surely there's some way to resolve that.
Depending on whether the respective kernel supported it, you were still unofficially able to switch removable SD cards into mass storage mode (though only with a rooted phone), although somehow, even if I remembered to officially unmount the SD card from Android first, it somehow still often led to mild filesystem corruption (luckily never anything fatal, though) that required regular chkdsk-usage.
> Or they could have figured out a new version of MTP that supports basic features like concurrent access and normal metadata. Or they could have gone for SMB/NFS over a virtual network link.
My current phone no longer supports the above mass storage mode-hack for the removable SD card, which annoyed me enough that I actually wrote my own SMB server app (https://github.com/buttercookie42/SimbaDroid), because all other SMB servers for Android that I'm aware of were either outright broken, unsupported, buggy or fiddly to use. Sadly the only open source Java-based SMB server only supports SMBv1, so you're stuck with that, and you still need root for full comfort, but within those limitations it works quite nicely.