Transfer Files Between Android and PC Using ADB Push and Pull (No Root)

12 min read Learn how to move files between your Android device and computer with ADB’s push and pull commands—no root required. Detailed steps, tips, and troubleshooting included. October 05, 2026 20:30 How to Transfer Files Between Android and PC Using ADB Push and Pull (No Root) – Step‑by‑Step Guide

Moving photos, logs, or APKs between your Android phone and a PC can feel clunky when you rely on Bluetooth, cloud sync, or USB‑MTP mode. ADB (Android Debug Bridge) offers a fast, scriptable, and root‑free way to copy files in either direction. This guide shows you exactly how to set up ADB, use the push and pull commands, and troubleshoot the most common hiccups.

Before you start

  • Computer OS: Windows 10/11, macOS 10.14+, or a recent Linux distro.
  • Android version: 5.0 (Lollipop) or newer – ADB works on virtually every modern device.
  • USB cable: Use a data‑capable cable; charging‑only cables will not establish a debug connection.
  • Backup important data: The commands themselves are read‑only, but it’s good practice to have a recent backup before fiddling with system folders.
  • Enable Developer Options & USB debugging: Settings > About phone > tap Build number seven times, then Settings > System > Developer options > toggle USB debugging on.

Step 1 – Install the ADB platform‑tools

  1. Visit the official Android developer site (developer.android.com/studio/releases/platform-tools) and download the platform-tools zip for your OS.
  2. Extract the zip to a convenient location, e.g., C:\adb on Windows or ~/adb on macOS/Linux.
  3. Add the folder to your system PATH so you can run adb from any terminal. On Windows, edit Environment Variables → Path. On macOS/Linux, add export PATH=$PATH:~/adb to ~/.bash_profile or ~/.zshrc.
  4. Open a new terminal/command prompt and verify the installation with adb version. You should see a version string like Android Debug Bridge version 1.0.41.

Step 2 – Verify the device connection

  1. Connect your phone to the computer with the USB cable.
  2. Run adb devices. The first time you do this, the phone will show a prompt “Allow USB debugging?” – tap Allow. You may also check Always allow from this computer to avoid future prompts.
  3. If the terminal lists your device’s serial number followed by device, the link is ready. Example output:
    List of devices attached
    1234567890ABCDEF    device
  4. If you see unauthorized, re‑grant permission on the phone or reconnect the cable.

Step 3 – Understand the file‑system layout

ADB sees the Android file system as a set of logical partitions:

  • /sdcard (or /storage/emulated/0) – the primary shared storage visible to the user and most apps. This is where photos, downloads, and music live.
  • /data – private app data. Access requires root; you will not be able to push/pull here without it.
  • /system – the read‑only system partition.

For most file‑transfer needs, you’ll work inside /sdcard. The path you use in ADB commands must match the device’s case‑sensitive layout.

Step 4 – Pull (download) a file from Android to PC

  1. Identify the source file on the device. For example, a photo saved at /sdcard/Pictures/Vacation/photo1.jpg.
  2. Choose a destination folder on your computer, e.g., C:\Users\Me\Downloads\android‑files (Windows) or ~/Downloads/android‑files (macOS/Linux).
  3. Run the pull command:
    adb pull /sdcard/Pictures/Vacation/photo1.jpg "C:\Users\Me\Downloads\android‑files"
    (On macOS/Linux replace the Windows path with ~/Downloads/android‑files.)
  4. ADB will display a progress bar. When it finishes, verify the file exists in the destination folder.

Pulling an entire folder

If you need a whole directory, add the -a flag to preserve timestamps and use the folder path as the source:

adb pull -a /sdcard/Download "C:\Users\Me\Downloads\android‑files\Download"

The command copies every file recursively. Be aware that large folders can take several minutes.

Step 5 – Push (upload) a file from PC to Android

  1. Locate the file on your computer you wish to copy, e.g., C:\Users\Me\Desktop\report.pdf.
  2. Decide where on the device you want it. A common choice is /sdcard/Download so you can open it from the device’s Downloads app.
  3. Run the push command:
    adb push "C:\Users\Me\Desktop\report.pdf" /sdcard/Download/
  4. After the transfer, the terminal will show the number of bytes transferred and the transfer speed.
  5. On the phone, open the Files or My Files app and navigate to Download to confirm the file is present.

Pushing multiple files at once

ADB does not accept wild‑cards directly, but you can push a whole folder:

adb push "C:\Users\Me\Music\MyPlaylist" /sdcard/Music/

This copies the MyPlaylist directory and all its contents into the device’s Music folder.

Step 6 – Using ADB shell for path discovery

If you’re unsure of a file’s exact location, you can explore the device with an interactive shell:

adb shell

Then use typical Linux commands:

  • ls -l /sdcard/ – list top‑level directories.
  • cd /sdcard/Pictures – change directory.
  • pwd – print the current path (useful for confirming case).
  • exit – leave the shell.

This step is optional but saves time when you’re dealing with obscure app‑specific folders.

Step 7 – Common pitfalls and how to fix them

1. "Permission denied" errors

ADB can only write to /sdcard and other world‑readable locations. If you try to push to /data or /system, you’ll see:

error: failed to copy '/path/to/file' to '/data/...': Permission denied

Solution: Stick to /sdcard or use a rooted device (outside the scope of this guide).

2. "device offline" or "no devices/emulators found"

This usually means the USB debugging handshake failed.

  • Reconnect the cable and re‑authorize the PC on the phone.
  • On Windows, try a different USB port or enable USB debugging (Security settings) under Developer options.
  • On macOS/Linux, ensure you have the correct udev rules (Linux) – install android-sdk-platform-tools from your distro’s repository.

3. File not found after pull

ADB may succeed but place the file in a different folder if you omitted quotes around a path containing spaces.

Always wrap Windows paths in double quotes, e.g., "C:\My Docs\file.txt".

4. Transfer stalls or is extremely slow

Possible causes:

  • Using a charging‑only cable – replace with a data cable.
  • USB port set to USB 2.0 instead of 3.0 – try a different port.
  • Device battery‑saving mode limiting USB throughput – disable any aggressive power‑saving options while transferring.

Step 8 – Automating repetitive transfers

Once you’re comfortable with the basic commands, you can script them. Below is a simple batch file for Windows that backs up a chosen folder from the phone to your PC every night:

:: backup_phone_photos.bat
@echo off
set SRC=/sdcard/Pictures
set DST=C:\Backups\Phone\Pictures
adb pull -a %SRC% %DST%
if %errorlevel% neq 0 (
  echo Transfer failed – check device connection.
) else (
  echo Backup completed at %date% %time%
)

Save the file, double‑click to run, or schedule it with Task Scheduler. macOS/Linux users can create a similar shell script and add it to cron.

Step 9 – Cleaning up after the session

  • Disable USB debugging when you’re done, especially on a device you use in public places. Settings > System > Developer options > toggle USB debugging off.
  • If you added the ADB folder to PATH only for this task, you can leave it – it’s harmless. Otherwise, remove it from Environment Variables if you prefer a cleaner system.

Troubleshooting checklist

IssueCheckFix
Device not listedRun adb devices and look for unauthorizedAccept the debugging prompt on the phone; try a different cable.
Permission deniedTarget path outside /sdcardUse a folder under /sdcard or root the device.
Transfer stallsUSB cable type / port speedSwitch to a certified data cable and a USB 3.0 port.
File not where expectedQuotes around paths with spacesWrap Windows paths in double quotes; verify case‑sensitivity on Android.

When to use ADB versus other methods

ADB shines when you need:

  • Batch transfers without opening a UI on the phone.
  • Automation via scripts or CI pipelines.
  • Access to hidden folders inside /sdcard that file managers may hide.

For occasional single‑file moves, the built‑in USB‑MTP mode or cloud services (Google Drive, OneDrive) are more user‑friendly. However, ADB remains the most reliable tool when the device’s UI is unresponsive or when you’re working on a headless device (e.g., a development board).

With the steps above, you can now copy any file to or from your Android phone quickly, safely, and without rooting. Whether you’re backing up screenshots, pulling log files for a bug report, or loading a new e‑book onto your device, ADB’s push/pull commands give you precise control over the transfer process.

User Comments (0)

Add Comment
We'll never share your email with anyone else.