spion/adbfs-rootless

Mount Android phones on Linux with adb. No root required.

C++

1,061

142 commits

updated Aug 30, 2026

See the code

README

This variant of adbfs works even WITHOUT having root access (busybox) on your phone!

Instructions:

Ubuntu

You will need libfuse-dev and adb. You will also need build-essential, git, and pkg-config.

sudo apt-get install libfuse-dev android-tools-adb
sudo apt-get install build-essential git pkg-config

Clone the repository:

git clone git@github.com:spion/adbfs-rootless.git
cd adbfs-rootless    

Build:

make

Optional: If you have a separate copy of android-sdk and would like to use that adb, copy the binary adbfs to the android-sdk/platform-tools directory. If platform-tools is in your $PATH you can skip this step.

Create a mount point if needed (e.g. in your home directory):

mkdir ~/droid

You can now mount your device (also from the platform-tools dir):

./adbfs ~/droid

If you want to trigger a media rescan after every operation, use the option -o rescan:

./adbfs -o rescan ~/droid

Have fun!

MacOS

Install adb and fuse

brew install --cask android-platform-tools
brew install --cask macfuse

Check access to phone through adb

adb devices

Clone the repository:

git clone https://github.com/spion/adbfs-rootless.git
cd adbfs-rootless

Build:

make

Create a mount point if needed (e.g. in your home directory):

mkdir ~/droid

Mount your device (You will be asked and have to allow fuse extension):

./adbfs ~/droid

Have fun!

Troubleshooting

Error: device not found

When running you get the following error:

--*-- exec_command: adb shell ls
error: device not found

Solution: Make sure that USB Debugging is enabled.

Then fusermount -u /media/mount/path before trying again. Note that if for any reason fusermount is not available in your system, you can use sudo umount /media/mount/path instead.

Error: device offline

When running you get the following error:

--*-- exec_command: adb shell ls
error: device offline

Solution: Make sure that

  1. Your android-sdk-tools are up to date. Newer versions of Android also require newer versions of adb. For more info, see this Stack Overflow post.

  2. You answer Yes when your phone asks whether it should allow the computer with the specified RSA key to access the device.

Then killall -9 adb; fusermount -u /media/mount/path before trying again.

spion/adbfs-rootless

Mount Android phones on Linux with adb. No root required.

C++

1,061

142 commits

updated Aug 30, 2026

See the code

README

This variant of adbfs works even WITHOUT having root access (busybox) on your phone!

Instructions:

Ubuntu

You will need libfuse-dev and adb. You will also need build-essential, git, and pkg-config.

sudo apt-get install libfuse-dev android-tools-adb
sudo apt-get install build-essential git pkg-config

Clone the repository:

git clone git@github.com:spion/adbfs-rootless.git
cd adbfs-rootless    

Build:

make

Optional: If you have a separate copy of android-sdk and would like to use that adb, copy the binary adbfs to the android-sdk/platform-tools directory. If platform-tools is in your $PATH you can skip this step.

Create a mount point if needed (e.g. in your home directory):

mkdir ~/droid

You can now mount your device (also from the platform-tools dir):

./adbfs ~/droid

If you want to trigger a media rescan after every operation, use the option -o rescan:

./adbfs -o rescan ~/droid

Have fun!

MacOS

Install adb and fuse

brew install --cask android-platform-tools
brew install --cask macfuse

Check access to phone through adb

adb devices

Clone the repository:

git clone https://github.com/spion/adbfs-rootless.git
cd adbfs-rootless

Build:

make

Create a mount point if needed (e.g. in your home directory):

mkdir ~/droid

Mount your device (You will be asked and have to allow fuse extension):

./adbfs ~/droid

Have fun!

Troubleshooting

Error: device not found

When running you get the following error:

--*-- exec_command: adb shell ls
error: device not found

Solution: Make sure that USB Debugging is enabled.

Then fusermount -u /media/mount/path before trying again. Note that if for any reason fusermount is not available in your system, you can use sudo umount /media/mount/path instead.

Error: device offline

When running you get the following error:

--*-- exec_command: adb shell ls
error: device offline

Solution: Make sure that

  1. Your android-sdk-tools are up to date. Newer versions of Android also require newer versions of adb. For more info, see this Stack Overflow post.

  2. You answer Yes when your phone asks whether it should allow the computer with the specified RSA key to access the device.

Then killall -9 adb; fusermount -u /media/mount/path before trying again.

Significant stargazers

(top 24 of 25)

Ben Boeckel

134 followers · starred Aug 2024

Maciej Małecki

625 followers · starred Sep 2014

Robin

341 followers · starred Aug 2024

Paul Sokolovsky

802 followers · starred Apr 2021