For reasons undoubtedly making sense at the time, the Google Pixel (and, most likely, current Android devices) don’t support the USB Mass Storage protocol. A bit of poking around suggests the jmtpfs utility supplies the other end of the Pixel’s Media Transfer Protocol and the process goes a little something like this:
- Once upon a time, create a mountpoint:
mkdir /mnt/pixel - Unlock the phone
- Plug in the USB cable
- Pull down the top menu, tap
USB charging this device - Select
Transfer Files sudo jmtpfs /mnt/pixel -o allow_other,fsname="Pixel"
The allow_other parameter sets the directory / file permissions so ordinary users can access the files. The fsname is just for pretty.
The Pixel’s storage then appears as the awkwardly named /mnt/pixel/Internal\ shared\ storage/ directory.
Despite being somewhat Linuxy under the hood, the mapped storage doesn’t support the usual filesystem attributes, so don’t try to transfer them with, say, rsync -a:
rsync -rhu --progress /mnt/music/Music\ for\ Programming /mnt/pixel/Internal\ shared\ storage/Music/
When you’re done: sudo umount /mnt/pixel
This may not be a win over bankshotting off Dropbox or Google Drive, except for sensitive bits like private keys and suchlike.
Thunar apparently knows how to detect and mount mtp devices automagically and I suppose GUI-fied drag-n-drop works as you’d expect.