How to transfer files to the Google Nexus 7

It looks like a silly question, but it is not. The device does not support USB Mass storage, but some stuff called MTP. Unfortunately it does not work as expected with Linux.

The first try was to yum -y install libmtp.x86_64 libmtp-examples.x86_64 and mount the device with fuse: mtpfs /mnt. However, it seems it is not mature enough yet to use it.

If you just want to put some sound files on to your device, Amarok works pretty fine. But what if you want to put some i.e Movies on your device?

The only quick solution I figured out was to use adb with comes with the Android SDK. As root do the following:

yum -y install android-tools.x86_64
adb start-server
for i in /home/user/Movies/*; do
  adb push $i /sdcard/Movies
done

As you can read on the Wikipedia Article about Media Transfer Protocol it is a standard described by Microsoft and originally designed for managing photographs on cameras.

The idea behind it is that every operating system comes with its own file system(s) and when using USB Mass Storage, the common filesystem is FAT32. As you may know, FAT32 has some limitations. Unfortunately there is no other common file system available.

In the case of Linux users, it would be perfect to have USB Mass Storage support, because the file system used is ext4, also on the pseudo sdcard storage built in into the device.

The “successor” of FAT is called exFAT and is Microsoft proprietary and thus out of question for the next 20 years (Software Patents). There, the standardization organisation have completely failed to establish a free and open standard as a common file system suited for applications such as USB-Sticks, Smart Phones and others.

I have no clue how many software patents are related to MTP. I hope there are not any at all, so every operating system vendor can implement it as it seems to get the standard for such devices. Currently, the only “native” support for MTP comes with Windows Media Player. There is some software available for MacOS X provided by Google, and the FUSE implementation for Linux which I call experimental.

I’m sure someone would now bring in the argument that sound and movies can be accessed from the “cloud”. Well sure, but UMTS is too slow and too expensive for HD-Movies, WLAN is – at least in Europeen Hotels – even more expensive. The only way to store media is locally, at least for nomads like me.

Having fun? Not really…

    Tags:

    5 Responses to “How to transfer files to the Google Nexus 7”

    1. Mat says:

      Try installing Airdroid (Free) and do it wirelessly.
      OR
      If you have a non-rooted tablet, buy a OTG cable and install Nexus Media Importer ( Just under $3 )
      OR
      if you have a rooted tablet, you can simply install stickmount ( Free ) and use the OTG cable
      OR
      Goto settings, storage, click the menu (3 dots), select USB Computer connection and change MTP to PTP.
      OR
      Install on of the many FTP servers from the market and transfer via FTP

      There are other methods as well.

    2. PA says:

      If you’re rooted, install “Samba Filesharing” from Google Play, which turns your tablet into a samba server. Can’t get easier, IMO.

    3. OSH says:

      you could try following, which worked for me with the galaxy nexus

      yum install mtpfs (F17 – updates Repo)

      and create an according udev rule
      as described at
      http://developer.android.com/tools/device.html

    4. Matěj Cepl says:

      OR

      install SSHDroid and use scp (somehow seems to work more reliably than FTP server and I don’t have to worry in a coffeshop who’s snooping the traffic).

    5. Curt Sampson says:

      I just got my Nexus 7, mounted it with mtpfs, copied my book repos over (I keep a pair of Git repos for my EPUB and PDF books), and it’s working fine for me. Did take some mucking about with rsync options, though; –inplace appears to be essential, and -c seems to be helpful.