Skip to content

Instantly share code, notes, and snippets.

@parkerlreed
Last active June 13, 2024 17:00
Show Gist options
  • Save parkerlreed/ebc3c24a08b2d94dd510f502f3d5edd7 to your computer and use it in GitHub Desktop.
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
#!/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 parker@127.0.0.1:"$pull_path" .
stop_sshd
;;
push)
push_path="$3"
init_sshd
mscp -P 8022 "$pull_path" parker@127.0.0.1:"$push_path"
stop_sshd
;;
*)
echo "Invalid option"
;;
esac
@parkerlreed
Copy link
Author

Ok this must be something new with Android 14. I'm seeing the same error here. I can list in Termux but not over the adb shell termux wrapper or SSH.

I'll let you know if I get it working.

@parkerlreed
Copy link
Author

In the meantime, the proper fix for path is \ escaping the $

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; bash'"```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment