Manage your Android phone from a Linux computer.
File transfer, file browsing and in-place editing, screen control, tethering, reverse tethering, and an autostart feature when a phone is detected.
What do I use AndroidBuddy for?
- Reducing eye strain and improving posture by using the phone on a large screen that is farther away.
- Moving big videos to my computer to delete them from the phone
- Sharing my fast ethernet connection with my phone
- Using my phone's WiFi or mobile data connection, which is sometimes more reliable than my computer's built-in WiFi connection
- Responding to texts with a full size keyboard
- Copying and pasting links and other text between computer and phone
AndroidBuddy should work on any Debian-based distro regardless of CPU architecture, but it has been tested on ARM64 Raspberry Pi OS.
If your system is Raspberry Pi or ARM Linux, just install it with the Pi-Apps store.
<-- Pi-Apps lets you install AndroidBuddy with a few simple clicks.
For advanced setup and manual installation straight from this repository: (click to expand)
sudo apt install yad adb
Some features require additional dependencies.
- To use reverse tethering, a minimal rust compilation toolchain is required in order for AndroidBuddy to compile
gnirehtet
.AndroidBuddy will try to install these if you click "Share internet to phone"sudo apt install rustc cargo
- To browse files, this package needs to be installed and configured: (On most distros it already is)
AndroidBuddy will try to install this if you click "Browse phone's files"
sudo apt install gvfs-backends
- To control the screen, you need Scrcpy, which is not available on the Debian repositories.
- If you have an ARM-based machine, just install Scrcpy with Pi-Apps.
- Otherwise, follow the install instructions that can be found here.
- For AndroidBuddy to launch automatically when a phone is detected, your distro needs to be using udev. Most distros do, but if yours does not, you will need to enable that yourself.
git clone https://github.com/Botspot/androidbuddy
./androidbuddy/main.sh
AndroidBuddy is intended to be run as a normal user. When it needs escalated permissions, it will try to use passwordless sudo, and if that fails, it will fallback to a password prompt dialog.
- Connect your favorite Android device to your Linux computer using a USB cable.
1.1. Make sure that USB debugging is enabled. If AndroidBuddy detects an Android device with USB debugging disabled, instructions will be displayed for how to enable it.
1.2. Be sure to use a USB cable that has communication pins. Some cheap cables only supply charging power, and cannot be used. - Click the buttons.
- There is no step 3. This should be pretty self-explanatory. Hover the mouse over a button to learn more about it.
- Open an issue if you encounter any problems or have a question.
On first run, AndroidBuddy will copy its icon to the user's icons directory and create a menu launcher for convenient future usage. To remove these, run this command:
rm -f ~/.local/share/applications/androidbuddy.desktop ~/.local/share/icons/androidbuddy.png
If you used the reverse tethering feature:
sudo rm -rf /usr/bin/gnirehtet /opt/gnirehtet
AndroidBuddy will automatically keep itself updated using git pull
when necessary.
There are no settings or options. This app follows the KISS principle. Change the script to your liking if you need to adjust its behavior. If you make a new useful feature and want to see it added, please open a Pull Request! I would love to add new features, such as bluetooth support, which should actually be fairly straightforward since adb and scrcpy support that.
- scrcpy-gui - only deals with controlling the screen, and the project is abandoned
- guiscrcpy - only deals with controlling the screen, and the project is abandoned
- scrcpy-plus - only deals with controlling the screen
- droidbuddy - only major features are file transfer, APK installation, and screen control, and the project is abandoned
Thanks for reading!
-Botspot
PS. It took me 4 hours to make AndroidBuddy for my own personal use because I was tired of using droidbuddy. If you want to chat or need help then consider joining my Discord Server.