Archive for October 23rd, 2017

Google Pixel vs. USB Mounting

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.


Leave a comment