Repository navigation
Releases: cinitdev/USBLink
Release list
USBLink Windows 0.3.11 + Mobile 0.3.3
USBLink Windows 0.3.11 + Mobile 0.3.3
发布日期:2026-10-07。此版本正式发布,包含 Android 用户态 USB ADB 实验模块。汇总上一公开版本 v0.3.8 之后全部本地改动;Windows 与手机模块使用各自的版本号。
下载与安装
| 文件 | 用途 |
|---|---|
USBLink-0.3.11-x64-Setup.exe |
Windows x64 中文安装程序,支持原位更新、快捷方式与卸载注册 |
USBLink-Mobile-0.3.3-usb-adb-experimental-arm64.zip |
Android 12+ / ARM64 的 APatch / KernelSU 模块,作者:一只小柒夏 |
SHA256SUMS-v0.3.11.txt |
本次安装程序和模块的 SHA-256 校验 |
Windows 默认直接更新,保留配对与设置。运行占用时,经用户确认可结束 USBLink 进程后继续;强制结束留下的 USB 状态在下次应用启动清理。已安装 Windows 0.3.11 的用户仅更新模块即可。
手机覆盖安装 ZIP 后按管理器提示完成更新。Android 11 及以下或无法识别系统版本时中止安装。普通 USB 调试需由用户开启,首次连接需在手机确认 RSA 授权。无需无线调试,也无需在另一台电脑插入该手机。
Windows 的新增与修复
- 手机型号通过 Windows 原生只读属性识别,覆盖不同品牌提供的型号或产品名,不使用 K40、VID/PID 或端口机型表。正常系统与 fastboot / fastbootd 提供同一有效唯一序列号时可复用已知名称;缺失、占位、重复或冲突身份不套用历史名称。
- 名称历史在来源电脑使用 DPAPI 加密,仅保存身份摘要,限制容量和有效期;已接收的虚拟 USB 不进入本机型号学习与共享。查询失败保留原名,不启动 ADB / fastboot,也不切换设备模式。
- 手机在线状态通过配对密钥和随机挑战认证,区分 Windows USB/IP、旧 Android TCP 与 Android USB 实验通道;加入网络或端口开放本身不等于手机共享就绪。共享关闭仍可显示手机在线,过期状态不可继续授权连接。
- Android USB 实验模块可在现有连接页点击“连接设备”,支持单设备断开。挂载前核对签名设备名称、编号、VID/PID、共享实例与稳定的 USB/IP 导出记录;每次只提交一次
--once,不自动补试或重挂载。 - 保留旧 TCP 模块的状态和命令展示以便兼容。本次 USB 实验模块不要求执行
adb connect,USBLink 不启动、接管或捆绑另一套桌面 ADB / scrcpy。 - 保留既有设备分类、虚拟 USB 来源过滤、单设备断开、启动/退出双向清理及中文原位更新安装器。
首次发布 Android 模块
- APatch 优先、兼容 KernelSU 的 Root 模块,后端为 DEX JAR + app_process,内置中文手机 WebUI,无独立 APK。修复 Android mksh 对锁描述符的继承,模块操作入口等待管理服务实际就绪。
- 使用原版 EasyTier 2.6.4 建立加密网络,经用户态 USB 模拟向 Windows 提供 Android ADB Interface。复用现有虚拟 USB 驱动、电脑 ADB 和手机系统 adbd,保留 Android RSA 授权、SELinux 与用户调试开关。
- 共享开关持久保存,关闭会撤销监听与已有会话;日常重新启用不要求重启手机。启停会重启系统 adbd,已有调试可能短暂中断。旧 TCP 模块的开启偏好不会自动开启新 USB 通道。
- 启动前建立 IPv4 / IPv6 访问限制;内部端口仅允许本机 Root,外部共享只绑定 mesh 地址并限制 usblink0 入站;控制接口本地校验 Root UID,不提供网络 Root 命令接口。
- 临时调试端口变更前保存恢复日志;停止与异常恢复时验证监听释放,不覆盖其他程序改动,恢复失败保留防护。网络凭据不进入前端持久化、URL 或日志。
- 手机名称优先采用 ROM 市场名称,再回退配置名称和原型号;设备来源采用手机名称。没有硬编码的型号映射表。
WebUI 与重启恢复
- 蓝白浅色/藏蓝深色,保留设备、连接、设置三页。显示当前连接与单会话断开,首次连接指南默认折叠,支持即时操作反馈和页面切换。
- 共享时每 2 秒、关闭时每 5 秒静默读取状态;后台暂停前端轮询、返回立即同步。状态文件验证 daemon 身份、启动时间和时效,例行状态查询不启动 app_process。
- 查询去重、相同数据减少重绘;迟到响应不能覆盖新操作,自动刷新不覆盖编辑中的表单;失败与过期观察不显示缓存成功,不重复执行共享操作。
- 重启保留开启意愿,等待 Android 启动和防火墙稳定后再启动共享;显示“等待系统启动就绪/共享准备中”,用户关闭可取消。
- 仅在两种 IP 协议的全部防护规则仍完整时维护其优先级;不重启 adbd、不更改端口、不替电脑重挂载。真实规则缺失或持续干扰仍暂停并说明原因。
使用步骤
- 手机与电脑创建/加入同一个 USBLink 网络。
- 手机 WebUI 开启“共享这台手机”,等待共享就绪。
- Windows 连接页选中手机及其设备,点击“连接设备”。
- 手机确认 RSA 调试授权,使用电脑现有 ADB / Android Studio 调试接口。
- 在电脑单独断开设备,或在手机关闭共享以撤销所有会话。掉线后手动连接。
验证与已知范围
- 自动测试覆盖 Windows 名称/身份、在线认证、单次挂载/断开,以及 Android 组网、Root 控制、TCP 恢复、防火墙、重启准备、USB/IP 协议、模块生命周期和 WebUI。
- 独立 K40 / Android 12 / APatch 试验已验证驱动绑定、RSA 认证、64 MiB 双向传输和清理;用户反馈早期整合模块可用。最新重启修复的刷入重启、Android Studio 安装 APK 及不同品牌 ROM 尚未完成真机验收。
- 不支持 MTP 便携设备、资源管理器浏览手机存储、Fastboot、外接 U 盘或外接手机共享。 不能从 ADB 成功推断完整 USB 手机兼容。天玑等 ARM64 机型尚未实测。
- 不承诺原 Windows USB/IP 大 APK 传输掉线已被此次发布彻底修复;网络、ROM 和第三方驱动仍可能影响连接。USB 枚举可能产生正常设备提示音。
- 实验 USB 标识只在显式实验构建中纳入;Android 模块尚未完成正式产品 USB 标识或通用驱动认证。
- 第三方 EasyTier 二进制保持未修改,ZIP 和 EXE 附许可证与对应源代码链接。详细说明见仓库 THIRD_PARTY_NOTICES.md 和 mobile/vendor/easytier/NOTICE.md。
完整迭代记录见 CHANGELOG.md;模块架构、构建和兼容旧 TCP 路径见 mobile/README.md。本次测试结果与产物校验见 发布验证记录。
USBLink v0.3.8 - 设备管理与交互优化
USBLink v0.3.8 · 设备管理与交互优化
本次发布汇总上一个公开版本 v0.2.20 之后累积的全部本地改动,包含设备分类、远程 USB 来源校验、单设备断开和设备/连接/设置三页交互优化。中间的 0.3.0–0.3.7 为本地迭代安装包,未发布到 GitHub。
设备分类与共享
- 设备页新增“全部 / 手机 / 其他设备”标签及数量;仅依据已有 USB 名称和系统描述分类,不额外启动手机服务或进行 ADB 探测。
- 排除耳机、麦克风、摄像头、串口、存储、平板等常见误判;无法识别的设备保留在“其他设备”,也可从“全部”查看。
- 全选、共享仅作用于当前分类;切换分类清空选择,刷新保留分类并更新数量,离开页面再返回保留当前分类。
- 已共享设备不再进入新的勾选和全选,刷新后会清除已共享或已消失设备的旧选择,避免重复提交。
- 将没有实际作用的“更多操作”替换为行内“共享”;已共享设备提供“停止共享”及等待状态。
- 支持点击设备名称或行内空白勾选、全选的部分选择状态和“清除选择”;长设备名称与描述可悬停查看。设备选择仍无数量上限。
防止接收到的 USB 被再次共享
- 修复接收到的远程虚拟 USB 出现在本机设备列表、还能再次共享的问题;接收挂载统一在“连接”页管理。
- 通过 Windows 原生设备树追溯父控制器,识别 usbip-win2 虚拟控制器,避免按名称、型号、VID/PID、序列号或远端设备编号误删本机同型号设备。
- 支持识别 usbipd 的本机导出替身节点,保留正在共享给他人的物理设备;已拔出或无法确认来源的设备不作为可共享目标。
- 在进入管理员流程前、管理员授权后及每次绑定前重新验证共享目标;设备变更、失效或来源不明时明确拒绝操作。
- 既有启动/退出清理继续读取完整共享授权,仍可清理历史误共享和已拔出设备留下的记录。
单设备断开与连接操作
- 已连接设备支持单独“断开”,同时保留“断开全部 USB”;远程可用设备行也可直接“连接 / 断开”。
- 单设备断开前重新读取挂载状态,核对来源电脑、设备编号、VID/PID 和本机端口。端口已变化、已被其他设备使用或状态读取失败时,不执行错误的断开。
- 仅提交一次指定端口的断开命令,随后只读查询驱动确认结果;确认前保留设备行并显示进度,确认后更新实际挂载。
- 断开一个设备保留其他挂载;失败显示错误并允许手动重试,不自动补试,也不退回“断开全部”。对方离线时仍可断开本机挂载。
- 行内操作与批量操作共用串行操作锁;正在处理的行显示进度,并禁用冲突操作、来源切换和连接页刷新。
- “断开全部”显示等待状态;没有挂载且没有读取错误时禁用按钮。新的断开操作会清除旧通知。
- 保留一次点击等待实际挂载确认、连接期间保留设备行、过期查询不覆盖新状态的行为;继续禁止自动重挂载及任何自动补试。
电脑选择与配对
- 远程电脑菜单增加当前选中项、方向键、Home/End、Esc、Tab 和点击外部关闭;重新打开时聚焦当前电脑,关闭后恢复焦点,切换页面不残留菜单。
- 配对码支持按 Enter 加入;验证期间锁定输入并显示等待状态,失败在字段下方保留错误和原输入,方便修改后手动重试。
- 复制配对码显示处理中状态;获取不到配对码时明确报错,已经展示的配对码可以隐藏。
- 离开连接使用应用内确认对话框,说明删除配对信息及已有挂载的处理方式;默认聚焦“取消”,支持 Esc 取消并恢复焦点。
- 底部操作区补充网络、对方应用、驱动及设备状态未就绪时的说明。
设置与组件管理
- 中继地址支持 Enter 保存、未保存提示、撤销修改、字段校验和就地错误反馈;无修改时禁用保存。
- 保存期间锁定输入,防止旧响应覆盖新输入;保存失败不写入本地配置,创建连接只使用已经保存的中继地址。
- 手动刷新组件状态会等待真实查询完成;复用正在进行的查询,移除固定延时,刷新按钮显示等待状态并防止重复点击。
- 打开组件安装页面期间禁用重复提交;打开失败显示错误,不进入虚假的安装等待状态。
- 两个 USB 驱动可同时等待安装检测,也可以分别选择“暂不安装”;组件安装完成后自动更新状态。
- 开机启动设置增加保存中的文字与禁用反馈,保存失败保留原设置。
通用交互与显示
- 区分正在读取、没有设备、设备状态待确认以及对方不可达;刷新期间保留已有设备行。
- 错误通知保留到手动关闭,成功通知自动消失;通知移到不会遮挡底部主操作的位置,长错误支持换行和滚动。
- 补充通知播报、当前导航、复选框部分选择、菜单选中项、输入错误和操作忙碌等可访问状态。
- 修复未配对但仍有多个接收挂载时,下方配对操作难以访问的问题;内容可以滚动,窄窗口工具栏与网络操作区可换行。
- 改善深色模式的表头、数量标记、组件状态与悬停对比度,统一禁用和键盘焦点反馈,支持系统“减少动态效果”偏好。
本地手机实验的最终处理
- 本地 0.3.0–0.3.2 曾试验手机 ADB 转发和 scrcpy 投屏,并迭代启动与型号识别;这些实验已全部撤回,不属于本次发行功能。
- 已删除手机连接页面、ADB 转发/代理/共享通道、专用手机名称识别、投屏代码和相关资源、说明与测试;安装包不捆绑或启动 ADB、scrcpy。
- 0.3.3 曾加入的旧手机组件清理器、文件清单、安装钩子和配套测试也已在 0.3.4 移除。当前只保留设备/连接/设置及 USB/IP 流程,不管理 Android Studio 的 ADB 进程,也不自动清理历史 phone-tools 目录。
- 设备页的“手机”分类仅整理现有 USB/IP 列表,不恢复上述实验功能,也不承诺 USB/IP 接管手机时不中断枚举。
文档、测试与构建
- README 更新设备分类、来源过滤、单设备断开、三页交互及当前安装包路径;AGENTS.md 记录对应产品约束。
- 新增设备分类单元测试、Windows 设备来源判断和共享目标校验测试、单设备断开的身份/端口/确认/失败测试。
- 扩充浏览器回归,覆盖分类选择、行内共享/连接/断开、慢响应、过期查询、键盘操作、配对错误、中继保存、组件查询、安装提示、离开确认、深色模式和小窗口滚动。
- Node、Rust、Tauri 版本及锁文件统一为 0.3.8;为 Windows 原生设备树查询启用对应 windows-sys 功能。
- 验证通过:77 项 Rust 测试、17 项前端单元测试、24 项综合交互场景,以及 USB 状态/单次连接/对方在线/共享会话四组界面回归。2 项依赖实际设备或授权的 Rust 检查默认跳过。
- 窗口检查覆盖 1180×760、820×600 和深色模式;此前只读设备树检查已确认能区分本机与接收设备。界面回归使用模拟接口,本次发布未进行双机真实 USB 数据传输或实际安装升级测试。
- Windows x64 中文 NSIS 安装包构建成功;继续支持直接覆盖更新并保留配对、设置、目录、快捷方式和已启用的自启动。运行中程序的退出确认和安装器行为沿用 v0.2.20。
下载与校验
- 安装包:
USBLink-0.3.8-x64-Setup.exe(11,987,442 字节)。 - SHA-256:
715BB9C45CE5D246791D38B209A63AB5F49F9B9726B88BAED456423FDE1B17B3。 - 同时提供完整更新说明和
.sha256校验文件。推荐两台电脑都更新至此版本。
USBLink v0.2.20 - 安装器与单次连接修复
USBLink v0.2.20
发布日期:2026-09-14。
安装器发现 USBLink 正在运行时,用户点击“确定”即可结束进程并继续更新,无需手动打开任务管理器。
更新内容
- 安装、卸载及先卸载再安装时,明确确认后结束当前用户的 USBLink 进程,并核对进程与会话锁已释放后继续。
- 结束失败或会话锁仍被占用时,可以重试或取消;取消保留原安装。静默和被动安装遇占用仍返回 1618,不自行结束进程。
- 默认直接更新,无需先卸载,保留原目录、配对、设置、快捷方式和已启用的开机启动。
- 连接前连续读取远端所选 USB 的导出记录,核对编号、VID/PID 和设备路径;准备完成后只提交一次挂载,并等待实际端口确认。
- 设备变化或共享端一直未就绪时停止并显示原因;保留驱动分配的端口信息,方便诊断连接建立后又断开的情况。
- 继续禁止任何自动补试、自动重连,设备数量不限。
本次发布为现有 USB/IP 版本的备份,不包含正在规划的手机 ADB/投屏模式。
安装
使用 USBLink-0.2.20-x64-Setup.exe 直接更新。遇运行提示时,点击“确定”由安装器结束程序并继续,点击“取消”退出安装。
强制结束会跳过本次 USB 共享和挂载清理,遗留状态将在下次启动 USBLink 时清理。
验证
0.2.20 发布构建通过。独立安装器回归通过:取消保留旧版、确认后结束进程并自动完成更新、释放锁确认、未知进程占锁时重试/取消、静默占用退出、同版覆盖及测试卸载。核对新版文件、版本、原目录、模拟配置、快捷方式及开机启动均正确。
USB 连接代码通过 71 项 Rust 自动测试、16 项 JavaScript 测试及单击连接界面回归。Android USB 的准备检查与单次挂载对照通过;这不代表所有设备类型或所有首次连接失败场景都已解决。安装器回归使用独立测试产品,未覆盖实际安装或操作真实 USB。
SHA-256
3EE8F1D591F6E6BC72FBE512BD5D085256C9AAA22E0992CE21E66A21BA140983 USBLink-0.2.20-x64-Setup.exe
USBLink v0.2.17 - 在线状态与退出清理修复
USBLink v0.2.17
修复对方关闭 USBLink 后仍显示在线,以及退出后接收端 USB 挂载残留的问题。
安装
使用 USBLink-0.2.17-x64-Setup.exe。双方都需要更新并打开 USBLink;旧版本没有应用心跳接口。先正常退出旧版再升级,首次使用新版时按提示允许会话访问规则。usbip-win2 仍要求 0.9.8.0 或更新的安全版本。
更新内容
- 在线状态改为验证当前配对中 USBLink 应用的实时认证响应;后台网络/USB 服务继续运行不能代表应用在线。
- 没有运行 usbipd 的接收端也可以显示应用在线;应用就绪和 USB 共享可用分别判断。
- 正常退出及下次启动均清理共享授权和接收端挂载。停止旧连接任务、断开挂载、撤销共享按顺序执行;部分失败仍继续其他清理并显示错误。
- 断开后读取实际驱动端口,确认清空才完成退出;保留单击连接确认、无限设备选择和禁止自动重挂载。
- 应用离线时清除旧远程共享列表,实际遗留挂载在本机挂载区单独显示,支持手动断开。
- 慢设备名称查询不再阻塞应用心跳;会话接口或访问规则准备失败可见且可重试。
验证与限制
66 项 Rust 测试、16 项 JavaScript 测试及 5 个界面回归脚本通过;真实本机 socket 覆盖后台 USB 服务仍开放但应用接口关闭的场景。
未实测真实双机 USB 数据传输、UAC 退出清理和本轮安装/覆盖安装流程。强杀、崩溃或断电的遗留状态在下次启动处理。清理范围包括本机 usbipd 共享列表和 usbip-win2 挂载列表中其他工具创建的项目。后台服务和配对资料保留,不代表设备仍已共享。
SHA-256
4777637D702E4F1A1D2BF60EF39946E24F666A070B4AD49F295AEA5643F4E178 USBLink-0.2.17-x64-Setup.exe
USBLink v0.2.16 - 中文安装版与连接修复
USBLink v0.2.16
本版提供中文 Windows x64 安装程序,并集中修复 USB 连接、共享退出和对方电脑在线状态问题。
下载与安装
下载附件 USBLink-0.2.16-x64-Setup.exe,先正常关闭旧版 USBLink,再运行安装程序。支持安装目录选择、开始菜单和桌面快捷方式,以及 Windows“设置 → 应用”中的卸载入口。
WebView2 缺失时安装器会联网补装;usbipd-win 和 usbip-win2 仍通过应用“设置”页安装。usbip-win2 必须为 0.9.8.0 或更新的安全版本。
更新内容
- 点击一次即可完成连接确认:驱动初始化期间保持“正在连接”和设备行,确认本机实际挂载后显示成功;不会因列表暂时为空要求再点一次。
- 验证对方是否在线:区分电脑离线、网络不可达和电脑在线但 USB 共享服务不可用;失联时禁用新连接,恢复后自动刷新状态。
- 正常退出时停止共享:退出前撤销共享授权,重新打开需手动共享;启动时清理异常退出遗留的授权,涵盖已经拔出的设备。清理取消或失败会明确提示并支持重试。
- 中文安装程序:默认构建生成 Setup.exe;安装/卸载前要求正常关闭正在运行的 USBLink,更新已开启的开机启动项路径。
- 修复服务升级与停止竞态、配对保存失败后的恢复、管理员任务结果误判、外部命令超时,以及 USB 名称和状态解析等问题。
- 保留不限数量的设备选择、串行
--once手动挂载,以及单纯读取状态的确认机制;没有自动重新挂载。
使用说明与验证范围
- 共享清理范围为本机 usbipd-win 的共享列表,包含其他工具设置的绑定。强制杀进程或断电时无法运行退出清理,遗留授权会在下次启动处理。
- 卸载应用保留配对资料、独立的 EasyTier 网络服务和 USB 驱动;需要退出网络时先在应用内点击“离开连接”。
- 59 项 Rust 测试、16 项 JavaScript 测试及界面回归通过,Windows NSIS 安装包构建和文件校验通过。
- 实际安装/覆盖安装/卸载测试因旧版程序仍在运行而在预检查阶段停止;真实 UAC 退出流程和双机 USB 数据传输尚未实测。
SHA-256
30F2F53B4A717B85153D150307DA5DE6431C1E9447D06E510C530A01A103A9ED USBLink-0.2.16-x64-Setup.exe
更多修复细节见 BUGFIX_REPORT.md。