Repository navigation
Releases
v1.0.3
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 |
📖 使用
- 手机开启「开发者模式 → USB 调试」(或无线调试),连接电脑
- 打开 hnscrcpy,双击设备开始投屏
- 快捷键:⌘/Ctrl+S 截图 · ⌘/Ctrl+R 旋转 · ⌘/Ctrl+V 粘贴到手机 · ⌘/Ctrl+I 中文输入
v1.0.2
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
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
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 |