远程软件
Go to file
郑博文 9792662181 test(android-2b): 真机中文候选词 proof——拼音组词经 commitText 落到 Windows
V6 的判据是「手机中文输入法能把汉字送进远端」,此前只能靠人手点候选词。
实测发现两条关键事实,决定了 proof 的可行形态:
1. adb keyevent 相当于物理键盘输入,中文 IME **不组词**,字母原样透传到
   Activity.onKeyDown——所以驱动候选词必须用 adb input text(走 IME)。
2. IME 自己的按键视图对 uiautomator 不可见(dump 里只有我们 App 的 15 个节点),
   中/英切换按钮读不到坐标,只能按截图标定一次点击位;且该按钮**有状态**,
   于是写成幂等重试:先试,只收到字母才翻转模式再来一次。

跑通结果:讯飞拼音 nihao + 空格 -> commitText 2u -> 靶窗收到 U+4F60 U+597D。
这补上了方案风险 R1(vivo ROM + 第三方中文 IME 行为未观测)的核心一环。
2026-10-30 13:15:27 +08:00
.cargo init: MVP remote desktop (agent/viewer/common) with H.264 pipeline 2026-10-23 09:17:55 +08:00
agent fix(agent): 文本注入改为单次 SendInput 批量——按官方文档消除事件被打散的风险 2026-10-30 11:41:54 +08:00
agent-core test(agent-core): v3 分发路径单测——默认后端不 panic、截断契约、空输入 2026-10-30 12:11:28 +08:00
android-ffi feat(viewer-core,android-ffi): 主控端文本上行与 JNI 入口 2026-10-30 11:41:53 +08:00
apps/android-viewer feat(android): 键盘事件双通道 + 手机到 Windows 全链路 proof 2026-10-30 12:58:36 +08:00
common feat(common): 协议 v3——新增 InputEvent::Text 文本注入通道 2026-10-30 11:29:13 +08:00
linux-agent feat(common): 协议 v2——版本号 + 帧头 seq/keyframe + 长度下界校验 2026-10-28 16:05:41 +08:00
scripts fix(linux-agent): 修正坐标换算单测期望值 + 冒烟脚本纳入单测 2026-10-23 15:04:56 +08:00
tools test(android-2b): 真机中文候选词 proof——拼音组词经 commitText 落到 Windows 2026-10-30 13:15:27 +08:00
vendor/nvenc fix(agent): vendor nvenc 并补 FORCEIDR 标志——修复运行期关键帧请求被静默忽略 2026-10-28 16:05:41 +08:00
viewer fix(viewer): 跳帧后进入「等待 IDR」状态,不再把必然失败的 P 帧喂给解码器 2026-10-28 16:10:40 +08:00
viewer-core chore(tools): 2b 注入 proof 路径随仓库位置推导,缺失参数报错文案改正 2026-10-30 12:21:19 +08:00
.gitattributes feat(agent): 新增 agent-core 与 Linux 被控端(X11 + XTest,纯新增不动 agent/) 2026-10-23 13:31:08 +08:00
.gitignore init: MVP remote desktop (agent/viewer/common) with H.264 pipeline 2026-10-23 09:17:55 +08:00
B侧设计文档.md docs: B侧设计文档(联调基线/码率自适应/打洞中继/多屏文件) 2026-10-23 09:34:21 +08:00
Cargo.lock feat(android-ffi): viewer-core 的 JNI 薄层,arm64 交叉编译通过(QUIC 栈上手机的第一道关) 2026-10-29 18:27:34 +08:00
Cargo.toml feat(android-ffi): viewer-core 的 JNI 薄层,arm64 交叉编译通过(QUIC 栈上手机的第一道关) 2026-10-29 18:27:34 +08:00
Git协作规范.md docs: 两人分工方案定稿 2026-10-23 09:31:52 +08:00
README.md docs: 打洞设计/多平台架构/借鉴映射/验证记录 2026-10-23 17:32:17 +08:00
借鉴映射与落地规范.md docs: 打洞设计/多平台架构/借鉴映射/验证记录 2026-10-23 17:32:17 +08:00
多平台架构设计.md docs: 记录「不做中继」的最终裁决(2026-10-28) 2026-10-28 16:35:32 +08:00
打洞与信令设计.md docs: 记录「不做中继」的最终裁决(2026-10-28) 2026-10-28 16:35:32 +08:00
打洞验证记录.md fix(tools): 探针区分信令回复与打洞包,修掉打洞假阳性 2026-10-23 18:02:14 +08:00
构建运行手册.md fix(linux-agent): 修正坐标换算单测期望值 + 冒烟脚本纳入单测 2026-10-23 15:04:56 +08:00

mvp-remote

自研远程桌面控制软件(办公场景),技术路线参考网易 UU 远程逆向分析结论。

架构

Crate 角色 说明
common 协议库 控制消息 / 视频帧线格式,三端共享契约
agent 被控端 DXGI 屏幕采集 + openh264(H.264) 编码 + QUIC 服务 + SendInput 键鼠注入
viewer 主控端 QUIC 客户端 + openh264 解码 + minifb 渲染 + 键鼠采集 + 延迟 HUD

构建

cargo build --release

产物:target/release/agent.exe(被控端)、viewer.exe(主控端),需附带 3 个 mingw 运行库 DLL(libstdc++-6 / libgcc_s_seh-1 / libwinpthread-1)。

运行

# 被控机
agent.exe --port 47800 --code 123456
# 主控机
viewer.exe --addr <被控机IP> --port 47800 --code 123456

详见《构建运行手册.md》、《Git协作规范.md》与《打洞与信令设计.md》。