远程软件
竖屏看 16:9 桌面太小(用户 2026-11-01 反馈)。探针实测(docs/output/ 2026-11-01-landscape-probe/):App 级 setRequestedOrientation 在这台 vivo 上有效(761ms),且旋转只触发 surfaceChanged、不销毁 surface、不断会话、 横屏 fps=58~60——所以不需要 TextureView(探针另测 TextureView 掉 30~37% 帧率)、不需要任何解码器重建配合,旧 S3 作废。 - OrientationPolicy(AUTO/LANDSCAPE/PORTRAIT/SYSTEM)纯逻辑 + 10 单测, 常量值经 javap 对 android-34 核实;已做 mutation 反向验证(AUTO 判定 > 改 >= 时方屏用例确实红)。 - 表单页强制竖屏;连接成功按策略设方向(默认 AUTO:远端宽>高即横屏)。 - 横屏 immersive + 状态行压 36dp + 控制条 3s 无操作自动隐藏。 - 唤出区 = letterbox 黑边(stage 在隐藏态消费画面外触摸)。刻意不用 底部边缘带:R7 回归实测那种带会吃掉远端桌面底部 ~11%(Windows 任务栏 就在那里),点任务栏会变成唤出菜单。黑边不属于 SurfaceView,零冲突。 - 竖屏永不隐藏(裁决只针对横屏空间不足)。 |
||
|---|---|---|
| .cargo | ||
| agent | ||
| agent-core | ||
| android-ffi | ||
| apps/android-viewer | ||
| common | ||
| linux-agent | ||
| scripts | ||
| tools | ||
| vendor/nvenc | ||
| viewer | ||
| viewer-core | ||
| .gitattributes | ||
| .gitignore | ||
| B侧设计文档.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Git协作规范.md | ||
| README.md | ||
| 借鉴映射与落地规范.md | ||
| 多平台架构设计.md | ||
| 打洞与信令设计.md | ||
| 打洞验证记录.md | ||
| 构建运行手册.md | ||
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》。