Last active
April 16, 2025 09:45
-
-
Save parkerlreed/ebc3c24a08b2d94dd510f502f3d5edd7 to your computer and use it in GitHub Desktop.
betteradbcopy - Multi-threaded SCP to/from Android device over USB/WiFi with Termux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Make sure to have OpenSSH setup in Termux as well as setting a password with `passwd` | |
# Requires https://github.com/upa/mscp and adb platform tools on your local machine | |
init_sshd() { | |
adb shell -t "run-as com.termux files/usr/bin/bash -lic 'export PATH=/data/data/com.termux/files/usr/bin:$PATH; export LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so; sshd'" | |
adb forward tcp:8022 tcp:8022; | |
} | |
stop_sshd() { | |
adb shell -t "run-as com.termux files/usr/bin/bash -lic 'export PATH=/data/data/com.termux/files/usr/bin:$PATH; export LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so; killall sshd'" | |
adb forward --remove tcp:8022; | |
} | |
pull_path="$2" | |
case "$1" in | |
pull) | |
init_sshd | |
mscp -P 8022 [email protected]:"$pull_path" . | |
stop_sshd | |
;; | |
push) | |
push_path="$3" | |
init_sshd | |
mscp -P 8022 "$pull_path" [email protected]:"$push_path" | |
stop_sshd | |
;; | |
*) | |
echo "Invalid option" | |
;; | |
esac |
I've figured out the solution. The way to correctly allow permissions is to disable files permission, termux-setup-storage, enable files permission and it would work.
Could this be made to work with specific files in a folder? I kind of don't want to do a one large file transfer
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the script, transferring my photos/videos with 250MB/s now. Much better than mtp.
But you did give Termux access to files right? :P