termux-usb 命令无响应?Termux USB 设备访问问题快速修复指南
【免费下载链接】termux-appTermux - a terminal emulator application for Android OS extendible by variety of packages.项目地址: https://gitcode.com/GitHub_Trending/te/termux-app
在 Termux 终端里,你把 USB 设备插到手机上,敲下termux-usb -l想列出设备,命令却一直转圈、毫无输出——这个 termux-usb 卡死是 Termux 0.118.1 搭配 Termux-API 0.58.0-1 时的典型故障,根源出在 USB 设备访问机制上。按下面的思路排查,全程不超过 5 分钟。
命令卡住?先对号入座这三个迹象
如果你的设备同时出现下面几种现象,可以直接跳到修复步骤:
- 执行
termux-usb -l后终端挂起,没有任何输出,命令像"冻住"了一样 - 尝试拉起 Termux:API 服务时,报出
Not found; no service started错误 - 系统日志显示权限检查通过,服务却依然起不来——"日志正常但功能失效"的矛盾状态
"SELinux 检查通过"是条烟幕弹
排查时,多数人第一反应是查权限。但这个案例里日志已经替你回答了:SELinux(Android 的系统级权限管控机制,决定哪个应用能做什么操作)检查已通过。如果是权限卡住了调用,日志里会留下拦截记录,而不是"通过"。所以这条看似关键的线索其实是误导——你缺的不是许可,而是一个组件。继续往下翻。
真正的原因:USB 桥少了一半
Termux:API 从来不是一个程序,而是拆成两半交付的:
- 终端侧的命令行工具:即 termux-api 包里的
termux-usb等命令,跑在终端里,负责"发话" - Android 端插件应用:即应用列表里的 Termux:API 应用,它是终端与 Android 系统之间的桥梁,负责"办事"
最常见的装法错误是只装了终端包,忘了装插件应用。此时命令在终端里不断呼叫,而 Android 端本该接听的代理服务根本不存在,调用只能原地等待回音——卡死由此而来,Not found; no service started也是这么来的。🌉
三步让 USB 访问恢复
- 安装 Termux:API 插件应用:从官方应用商店获取,确认它和终端侧 termux-api 包是配套的一对
- 给两个应用都授权:Termux 与 Termux:API 插件各自弹出的权限请求都要确认
- 放行 Android USB 权限:在系统设置中允许 Termux 访问 USB 设备;插入设备后系统通常还会弹出 USB 授权界面,记得选 Termux
✅ 最后重跑一次termux-usb -l:能打印出已连接 USB 设备列表,即修复完成。
30 秒看懂背后的协作机制
Termux 本体跑在 Android 沙盒里——一个受限的隔离环境,没有资格直接触碰系统级接口。插件应用因此充当特权代理:它持有更高的系统权限,替终端接收请求并转交系统。两者之间的通话线路是 Binder IPC(Android 标准的进程间通信机制,相当于两个应用间的一条实时专线)。插件把 USB 请求转给系统、取回结果、再送回终端,一次完整的 USB 设备访问就此闭环。这套插件调用链路可在仓库的 TermuxPluginUtils.java 中查到实现。
用 USB 前的四个避坑提示
- 📌成对安装:用 termux-api 时,终端包与 Termux:API 插件应用必须同时装上,缺一不可
- 版本同步升级:Termux 与插件应用一起更新,避免两边版本错位
- 先查服务再跑命令:使用 USB 功能前,先确认插件服务已正确启动
- 复杂交互写脚本:重复性的 USB 设备操作建议用脚本自动化,减少手工来回
更多 Termux 用法可参考仓库内的官方文档 docs/en/index.md。
【免费下载链接】termux-appTermux - a terminal emulator application for Android OS extendible by variety of packages.项目地址: https://gitcode.com/GitHub_Trending/te/termux-app
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考