Skip to content

USBLink v0.3.8 - 设备管理与交互优化

Choose a tag to compare

@cinitdev cinitdev released this 16 Sep 13:56
· 2 commits to main since this release

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 校验文件。推荐两台电脑都更新至此版本。