Skip to content

Releases

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 26 Oct 10:22

hnscrcpy v1.0.3

鸿蒙 NEXT(HarmonyOS NEXT)投屏远控桌面工具,类似 scrcpy 的体验:打开即用,零外部环境依赖——JRE、hdc、投屏组件全部内置,无需安装 Java 或任何开发环境。

⚡ 新增

  • ASCII 打字快通道:在投屏窗口直接打英文/数字/符号时,单字符延迟从 ~900ms 降至 ~130ms(接近实时的打字手感)。全部 95 个可打印 ASCII 字符(含大写与 !@#$ 等移位符号)逐键直发 uinput 键盘事件,不再经设备侧「uiInput inputText」重通道(每次要起设备侧进程);中文输入仍走原有批量注入通道。与文本攒批共用同一控制线程,保证「先文后键」顺序不错乱。键码表已在真机逐键标定
  • 「窗口置顶」状态可见:菜单「窗口置顶」(⌘T)置顶后此前无任何标记,现在置顶时显示 ✓ 勾选

🔧 修复

  • 投屏画面周期性卡顿/黑屏闪烁(看门狗误杀):hosScrcpy 1.0.20 起静态画面不再强制推帧,旧看门狗把「手机画面静止」误判为断流,每 ~25 秒杀流重连一次,表现为画面周期性冻结-黑屏-闪帧。看门狗改为先探活再判死:静默时经桥内通道执行只读命令验证守护进程存活,探活正常 = 静态画面,绝不重连;另加「输入预言机」(有点击/键盘注入却画面不变才快速判死)与 5 分钟纯静默兜底
  • 应用闪退/崩溃(use-after-free):重连/关窗/截图与解码器环形缓冲释放存在竞态——渲染线程可能读取已释放的 14.5MB 原生内存(mmap 大对象,释放后即 unmap),导致 JVM 段错误无声退出。环形缓冲改为永不显式释放(交 GC 统一管理),重连时同时清空旧帧槽位,彻底消除这一类崩溃
  • 打开投屏长时间黑屏/主窗口卡死:会话建立(hdc 初始化 + 设备侧投屏服务握手,约 5-7s)此前跑在界面线程上,双击设备后整个应用冻结。改为窗口秒开、会话后台异步建立,状态栏实时显示进度;流就绪后客户端主动催 IDR 关键帧,首帧不再等设备「心情好」
  • 软键盘输入延迟大:打字攒批等待 150ms→80ms;按键与文本注入从「每次本地起 hdc 子进程」改为桥内通道(既有连接直发,单次省 ~140ms+);Enter/退格前的文本冲刷等待上限 5s→2.5s,不再偶发卡死感
  • 「关于」页版本号与发布版本不符:版本号此前在代码中硬编码(v1.0.2 显示 1.0.1),改为构建期从 pom.xml 自动注入,永远与发布 tag 一致

快通道键码表已用 scripts/spike-keymap.sh 在真机逐键标定(修正了文档值的两个错误:空格=2050 而非 2052、方向键=2012-2015 而非 2071-2074)。如遇异常可用 -Dhnscrcpy.keyFastPath=false 整体回退到原通道。

🛠 稳定性

  • 新增全局未捕获异常落盘 + JVM 崩溃尸检文件(macOS/Linux: /tmp/hnscrcpy_hs_err_pid*.log,Windows: %TEMP%),以后任何闪退都有现场可查
  • 重连竞态收口:关窗与重连/启动互斥,调度器关闭后的迟来回调安全丢弃
  • 单测 86 → 137:新增看门狗判死矩阵、重连清帧回归、解码器关闭安全性、shell 通道回退、版本号注入、置顶勾选态、ASCII 快通道键码表等用例

📦 下载

平台 文件
macOS (Apple Silicon) hnscrcpy-v1.0.3-macOS-arm64.dmg
macOS (Intel) hnscrcpy-v1.0.3-macOS-x86_64.dmg
Windows hnscrcpy-v1.0.3-windows-x64.exe
Linux hnscrcpy-v1.0.3-linux-x64.deb

📖 使用

  1. 手机开启「开发者模式 → USB 调试」(或无线调试),连接电脑
  2. 打开 hnscrcpy,双击设备开始投屏
  3. 快捷键:⌘/Ctrl+S 截图 · ⌘/Ctrl+R 旋转 · ⌘/Ctrl+V 粘贴到手机 · ⌘/Ctrl+I 中文输入

项目地址:https://github.com/taxiao213/hnscrcpy

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 18:53

hnscrcpy v1.0.2

鸿蒙 NEXT(HarmonyOS NEXT)投屏远控桌面工具,类似 scrcpy 的体验:打开即用,零外部环境依赖——JRE、hdc、投屏组件全部内置,无需安装 Java 或任何开发环境。

✨ 新增

  • 电脑键盘输入:投屏窗口聚焦后直接打字,英文/数字实时注入手机当前输入框(最后点击处);Enter / 退格 / Tab / 方向键走 uinput 注入
  • 中文输入(「输入文本…」对话框,⌘I):呼出独立文本框,完整支持中文输入法组词/选字与 ⌘V 粘贴,支持多行编辑预览,回车整段发送。投屏画面控件的 IME 直打受 JavaFX 非文本控件管线限制,中文/长文本请走此对话框
  • 剪贴板粘贴到手机(⌘V):复制电脑上的文本 → 点击投屏画面 → ⌘V 或工具条「粘贴到输入框」按钮,整段注入设备输入框;Win/Linux 为 Ctrl+V
  • 无线连接输入框:主界面码率/帧率下方新增「无线连接」行,填入手机无线调试页显示的 IP:端口,点「连接」(或回车)即可发起连接,成功后设备列表自动出现该设备;「断开」按钮一键断开(hdc tconn <IP:端口> -remove)并即时刷新列表;地址自动记忆,下次启动回填,无需再手敲 hdc 命令
  • 新增文本注入基础设施 TextInjector(150ms 攒批、换行拆段段间回车、单引号转义、超长分片)与键盘转发器 KeyInputForwarder(⌘/Ctrl 组合键不拦截,既有快捷键不受影响)
  • 诊断日志新增文本注入失败事件(TEXT_INJECT_FAILED),便于反馈问题

🔧 修复

  • 投屏零帧/反复重连(设备固件兼容性):部分设备固件更新后启用 XPM 代码签名管控,hosScrcpy 推送的设备侧投屏服务(含模拟器误判路径推送的变体)被内核拒绝加载,导致会话建立后零帧、看门狗反复重连。排查结论与设备侧解法(使用 libscrcpy_server_unix_6.8-20260801 变体)已记录在 docs/HOS_SCRCPY_PROTOCOL.md §10

📦 下载

平台 文件
macOS Apple Silicon hnscrcpy-v1.0.2-macOS-arm64.dmg
macOS Intel hnscrcpy-v1.0.2-macOS-x86_64.dmg
Windows x64 hnscrcpy-v1.0.2-windows-x64-setup.exe
Linux x86_64 hnscrcpy-v1.0.2-linux-x64.deb / .tar.gz

⚠️ 已知不足

  • 不支持鸿蒙模拟器(真机支持 USB 与无线调试两种连接方式;无线连接可在主界面输入 IP:端口 直接发起,也可用 hdc tconn 命令行连接)
  • 不支持音频转发(投屏组件无音频通道,仅画面+远控)
  • 手机 → 电脑剪贴板暂不支持:鸿蒙对剪贴板文本读取做了隐私限制,shell 层无公开通道(写入方向已通过文本注入实现)
  • ESCAPE / 方向键的 uinput 键值为文档值未真机标定,异常时请运行 scripts/spike-text-inject.sh 标定
  • macOS 未公证:首次打开如提示"未受信任的开发者",请 右键 → 打开

本项目代码以 Apache-2.0 授权;内置的 hosScrcpy / hdc 组件版权归华为所有,仅供个人学习研究、禁止商用,详见 THIRD-PARTY-NOTICES.md。

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 02:03

hnscrcpy v1.0.1

鸿蒙 NEXT(HarmonyOS NEXT)投屏远控桌面工具,类似 scrcpy 的体验:打开即用,零外部环境依赖——JRE、hdc、投屏组件全部内置,无需安装 Java 或任何开发环境。

🔧 本版修复

  • 修复投屏黑屏/无画面:部分设备系统环境更新后,hosScrcpy 1.0.15-beta 的设备侧投屏服务会在会话启动数秒后崩溃(画面无帧、反复重连)。内置组件升级至 hosScrcpy 1.0.20-beta 后实测恢复正常

✨ 新增

  • 全新应用图标:告别 Java 默认图标——HarmonyOS 风格蓝色渐变底 + 投射波纹大屏,macOS / Windows / Linux 三平台及运行时窗口图标全部替换
  • 诊断日志导出(设备列表底部「📤 导出诊断日志」):
    • 自动记录每台设备的异常事件:网络/流错误、重连过程、hdc 命令失败、解码异常(花屏代理信号)、卡顿看门狗、设备上下线
    • 分设备导出 zip:结构化异常时间线报告 + 运行日志 + 环境信息,一键反馈问题
    • 设备行尾红色徽标实时提示未读异常数,点击直接导出该设备
    • 「📁 打开日志文件夹」快速访问原始日志
  • 连接方式调整:打开应用不再自动连上次的设备,双击设备列表中的设备才会投屏(CLI --serial 显式指定时仍自动连接)

📦 下载

平台 文件
macOS Apple Silicon hnscrcpy-v1.0.1-macOS-arm64.dmg
macOS Intel hnscrcpy-v1.0.1-macOS-x86_64.dmg
Windows x64 hnscrcpy-v1.0.1-windows-x64-setup.exe
Linux x86_64 hnscrcpy-v1.0.1-linux-x64.deb / .tar.gz

⚠️ 已知不足

  • 不支持鸿蒙模拟器(仅支持 USB 真机连接)
  • 不支持音频转发(投屏组件无音频通道,仅画面+远控)
  • macOS 未公证:首次打开如提示"未受信任的开发者",请 右键 → 打开

本项目代码以 Apache-2.0 授权;内置的 hosScrcpy / hdc 组件版权归华为所有,仅供个人学习研究、禁止商用,详见 THIRD-PARTY-NOTICES.md。

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 02:35

hnscrcpy v1.0.0 — 首个正式版

鸿蒙 NEXT(HarmonyOS NEXT)投屏远控桌面工具,类似 scrcpy 的体验:打开即用,零外部环境依赖——JRE、hdc、投屏组件全部内置,无需安装 Java 或任何开发环境。

本文件由 CI 的 release job 按 tag 读取(body_path: docs/RELEASE_NOTES_<tag>.md),作为 GitHub Release 正文。

✨ 功能一览

投屏

  • 设备自动发现(USB 真机),双击即投屏,支持多台设备同时投屏
  • H.264 硬编实时镜像,最高 60fps 可配(码率可调)
  • avcodec 多线程直解 + 零拷贝渲染,高负载实测 50–57fps 零丢帧
  • 窗口等比缩放;设备横竖屏旋转时窗口与触控坐标自动跟随
  • 一键截图,保存至 ~/Pictures/hnscrcpy/
  • 断流自动重连(指数退避 + 看门狗心跳,状态栏可见进度)

远控

  • 鼠标:左键触摸 / 右键 / 中键 / 滚轮 / 拖拽
  • 侧边悬浮工具栏:截图、旋转、电源、音量±、返回、主页、最近任务
  • 快捷键齐全(macOS ⌘ / Win·Linux Ctrl):置顶 ⌘T、截图 ⇧⌘S、旋转 ⌘R 等
  • 支持「只看不控」模式(--no-control)

平台与分发

  • macOS(Apple Silicon / Intel)、Windows x64、Linux x86_64 四平台安装包
  • macOS 免安装 .app、Windows 安装程序(开始菜单+桌面快捷方式)、Linux deb / 免安装 tar.gz
  • CLI 参数:--serial / --bit-rate / --fps / --no-control

🔧 本版修复

  • 修复投屏卡顿风暴:关闭投屏窗口后残留僵尸会话,与活跃会话互踢设备侧投屏服务,导致画面卡顿、延迟升高、反复重连;现所有关闭路径均彻底清理会话
  • 修复降采样缩放器逐帧重建:窗口亚像素抖动导致每帧重建缩放缓冲(约 18MB/次),解码吞吐被 GC 拖垮;量化 + 迟滞后仅在窗口尺寸真实变化时重建
  • 同一设备重复双击只聚焦已有投屏窗口,不再开出第二个互踢会话

⚠️ 已知不足

  • 不支持鸿蒙模拟器(仅支持 USB 真机连接)
  • 不支持音频转发(投屏组件无音频通道,仅画面+远控)
  • 视频恒为设备原始分辨率(窗口缩放由客户端渲染层处理)
  • macOS 未公证:首次打开如提示"未受信任的开发者",请 右键 → 打开

📦 下载

平台 文件
macOS Apple Silicon hnscrcpy-v1.0.0-macOS-arm64.dmg
macOS Intel hnscrcpy-v1.0.0-macOS-x86_64.dmg
Windows x64 hnscrcpy-v1.0.0-windows-x64-setup.exe
Linux x86_64 hnscrcpy-v1.0.0-linux-x64.deb / .tar.gz