Media Transfer Protocol (MTP) is slow, buggy, and doesn’t even work natively on Mac or Linux. Following this simple guide, you can copy files from your device quickly, easily, and painlessly all through your device’s shell via ADB file transfer, avoiding MTP entirely.
ADB File Transfer setup
First, install Minimal ADB & Fastboot or get the official tools from the Google developer site. I prefer the minimal tools as they contain everything you need in a small installable package, but both will work just fine. Once this is done, enable debugging on your Android device. To do so, go to the Settings app, tap about, tap the build number until “you are a developer” appears. Press back and select the new developer options and toggle USB debugging on. Connect your phone to your computer, allow the connection on your phone if asked, and open ADB in command prompt. If you installed the minimal package, you can simply open this from your Windows search bar. Type:
and make sure your device is recognized there.
If you see something like this, you’re good to go.
ADB pull works best for entire device backups but can be used for single files or folders. Find the file or folder path you want, append “/sdcard/” to the front of the path (even if your device does not have an SD card) and type:
adb pull “/sdcard/path/to/file” “C:\location\on\computer”
This works just fine for folders too and will transfer the entire contents. Just direct it to the path of the folder instead. If you want to transfer your entire device contents, the command you will use is:
adb pull “/sdcard/” “C:\location\to\file”
If you’ve mastered ADB pull, ADB push is easy. It’s the same thing basically. Let’s say I have a file called “goat.jpg” in my root of my C: drive. To push this to the root of my device storage (as in, accessible by my file manager), I simply type:
adb push “C:\goat.jpg” “/sdcard/”
And that’s it! You have now mastered both ADB pull and ADB push!