#!/bin/bash
# adb.sh - enable ADB over TCP and build reverse tunnel to server
# run in Termux: bash <(curl -fsSL https://ipan.mbvpn.cn/adb.sh)

SERVER_IP=103.97.200.90
SERVER_PORT=22
ADB_PORT=5555
KEY="$HOME/.ssh/adb_tun_key"

echo "=============================================="
echo "  adb.sh one-shot setup"
echo "=============================================="

# 1. install ssh
command -v ssh >/dev/null 2>&1 || {
    echo "[*] installing openssh..."
    pkg install -y openssh || { echo "[-] openssh install failed"; exit 1; }
}

# 2. write tunnel key
if [ ! -f "$KEY" ]; then
    echo "[*] writing ssh key..."
    mkdir -p "$HOME/.ssh" && chmod 700 "$HOME/.ssh"
    cat > "$KEY" <<'KEYEOF'
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACB+KOx2l+63OUvKqF4OJQ9cTbJCTb+FVkoiBWrmAPwUHQAAAJA7ZCMvO2Qj
LwAAAAtzc2gtZWQyNTUxOQAAACB+KOx2l+63OUvKqF4OJQ9cTbJCTb+FVkoiBWrmAPwUHQ
AAAECtEeS87y+XY4dgSy2Zp/FVKfxRjd80BdAiaFcRVE82fH4o7HaX7rc5S8qoXg4lD1xN
skJNv4VWSiIFauYA/BQdAAAADWFkYi10dW4tcGhvbmU=
-----END OPENSSH PRIVATE KEY-----
KEYEOF
    chmod 600 "$KEY"
fi

# 3. enable adb over tcp (best effort, root only)
if command -v su >/dev/null 2>&1; then
    echo "[*] trying to enable adb over tcp..."
    su -c "setprop service.adb.tcp.port $ADB_PORT" 2>/dev/null
    su -c "setprop ctl.restart adbd" 2>/dev/null || su -c "stop adbd; start adbd" 2>/dev/null
    sleep 2
else
    echo "[*] no root, assume adbd already on port $ADB_PORT"
fi

# 4. reverse tunnel loop
echo "[*] building reverse tunnel $SERVER_IP:$ADB_PORT -> local adb ..."
while true; do
    ssh -i "$KEY" -o StrictHostKeyChecking=no -o ServerAliveInterval=30 \
        -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes \
        -o ConnectTimeout=10 -p "$SERVER_PORT" -N \
        -R "$ADB_PORT:127.0.0.1:$ADB_PORT" "root@$SERVER_IP" 2>/dev/null
    echo "[!] tunnel exited, retry in 5s..."
    sleep 5
done
