安卓ADB调试安卓

Termux 安卓跨机ADB调试 · 完整笔记(备忘录版)

控制机:GitHub原版Termux(非F-Droid/应用商店版)

一、两套方案总览

方案 工具 优点 缺点
无线ADB(推荐,最简单) android-tools(原生adb) 无需数据线、无需Termux:API插件、无USB角色反转问题,甲壳虫/SkyADB图形APP都能用 被控机要求Android11+,同一WiFi
C2C有线ADB(安卓直连安卓) termux-adb + Termux:API 不用WiFi,有线稳定 坑多:Termux:API桌面APK必须同签名、线材限制、USB主机角色协商,仅termux-adb命令行可用;甲壳虫/SkyADB图形APP不支持该接法

二、方案1:无线ADB(优先推荐)

安装(控制机Termux)

pkg update && pkg install android-tools -y

被控手机操作(Android11+)

  1. 开启开发者选项,打开无线调试
  2. 点击「配对设备,使用配对码」,拿到 IP:配对端口 和6位配对码

Termux命令

adb pair 192.168.x.x:34567 123456
adb connect 192.168.x.x:37123
adb devices

⚠️ 注意:配对端口 和 连接端口不是同一个!配对成功后页面显示的才是连接端口。
✅ 此模式下,甲壳虫ADB助手、SkyADB都可以正常连接使用。


三、方案2:C2C公对公有线ADB(安卓→安卓直连)

必须完成安装清单

  • 控制机必须安装 Termux APK

  • 控制机在Termux中执安装行 termux-api 命令 pkg install termux-api(终端内工具包,内含termux-usb)

  • 控制机在Termux中执安装行 termux-adb 命令, 以下(2选1方式)安装完成后,输入termux-adb --version 验证即可

    pkg install curl gnupg -y
    curl -s https://gitcode.com/gh_mirrors/ter/termux-adb/raw/master/install.sh | bash
    # 这个脚本会:
    # 添加 nohajc 的 apt 源
    # 导入 GPG 密钥
    # 安装`termux-adb` + `termux-fastboot`
    

    如果 curl 安装脚本失败 或者你不想使用gnupg,也可以手动安装(推荐)

    pkg install git -y
    git clone https://gitcode.com/gh_mirrors/ter/termux-adb
    cd termux-adb
    bash install.sh
    
  • 必须安装 Termux-API APK,并且打开后台运行!

最好的是系统设置:给Termux、Termux:API关闭电池优化,允许后台活动、自启动(国产手机必做,防止进程被杀)

操作步骤(严格顺序,防止反向充电)

  1. 拔掉C-C数据线
  2. 被控手机打开开发者选项, USB 调试 + USB 调试(安全设置);开发者选项 → 默认 USB 配置,设置为:传输文件 (MTP)
  3. Termux重启adb服务 termux-adb kill-server后再termux-adb start-server
  4. 插上C-C公对公数据线
  5. 弹窗①(控制机):Termux:API 请求访问USB设备 → 点【允许】, 弹窗②(被控机):允许USB调试 → 勾选始终允许,点【允许】
  6. 查看设备列表 termux-adb devices,出现设备序列号即成功。

常用命令速查

# 查看termux-adb版本
termux-adb --version

# 列出USB设备(底层调试工具)
termux-usb -l

# 重启adb服务
termux-adb kill-server
termux-adb start-server

# 查看已连接设备
termux-adb devices 
# adb devices 也可以

❗C2C有线避坑清单

  1. 弹出【反向充电】:USB角色颠倒,被控机变成主机,adb直接失效,只能MTP浏览相册。点取消,更换线材重试。
  2. termux-usb -l 提示No Termux:API application installed:缺少桌面端Termux:API APK。
  3. 线材必须是数据传输线,纯充电线无法通信;优先选用无E-Marker短线。
  4. 图形APP限制:C2C公对公直连场景,甲壳虫ADB助手、SkyADB无法使用,只能用termux-adb命令行;投屏需求可在termux内运行scrcpy。

四、甲壳虫ADB助手 / SkyADB 有线OTG说明(重点)

  1. ✅ 它们支持有线OTG,但稳定接法要求:至少一端必须是USB-A口

    接法:控制手机C口 → C转A母OTG转接头 → A to C数据线 → 被控手机
    USB-A物理固定为主机角色,不会发生角色反转,系统UsbManager正常弹出USB授权,甲壳虫/SkyADB可正常识别设备。

  2. ❌ C2C公对公直连(安卓直连安卓)不推荐给这两个GUI APP:双C口动态协商主机/从机,极易协商失败,系统UsbManager无法分配USB权限,大概率只能打开MTP文件浏览,无法ADB。
  3. 底层原理区分
    • 甲壳虫/SkyADB:调用安卓系统原生UsbManagerAPI,依赖固定USB主机角色。
    • termux-adb:依靠Termux:API的termux-usb底层捕获USB设备,可以处理C2C动态角色协商,不受上面的限制。
  4. 冲突提醒:不要同时启动termux-adb和其他ADB客户端,会出现ADB服务端口冲突。

五、一句话总结

想省事、想用图形界面:无线ADB,只装android-tools,甲壳虫/SkyADB都能用,没有线材坑
想用有线、无WiFi环境:C2C公对公直连只能用termux-adb命令行,图形ADBAPP不支持这个接法;如果想用甲壳虫/SkyADB做有线调试,需要OTG转接头,接入USB-A口固定主机角色。

后续想加scrcpy投屏,也可继续相关安装命令的学习!

六、其它-安装软件到设备

当前环境一般为adb shell 普通shell用户,非root

  1. 可以执行 cd / 进入根目录,但根目录权限为 r-x--x其他用户只有进入权限、无读取目录列表权限,所以ls会报Permission denied
  2. 无root限制:
    • ❌ 不能ls /浏览根目录文件
    • ✅ 可直接访问已知路径:/data/local/tmp/sdcard/proc,可读写、ls查看
    • ✅ 正常执行先推送到目标设备再安装adb push apk → adb shell → pm install /data/local/tmp/xxx.apk,也可以直接adb install xx.apk
  3. 获取root:输入su,提示符由$变为#后,就能ls /;提示su不存在代表设备未root。
posted @ 2026-09-14 01:50  丁少华  阅读(25)  评论(0)    收藏  举报