Skip to content

v0.43.0 · 接入 UU 远程,一键远控电脑

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 14:30
· 18 commits to robbywang/god-android since this release
c5017c4

「功能 → 工具」新增「UU 远程」,按网易 UU 远程开源的接入协议(netease-uuyc/uuremote-integration-guide,MIT)把它的远控能力接进 God:在 UU 远程里选一台 Windows 或 Mac 电脑绑定,之后在 God 里一键全屏或小窗远控。只是本机两个 App 互相拉起,不经过 God 服务器。

  • 绑定:打开 uuremote://external/device/authorize,UU 远程回调 <applicationId>://uuremote/bind 并带回加密的 anonymous_device_id。每次请求带一个随机 nonce,回调的 nonce 对不上或超过 30 分钟就丢弃。
  • 远控:打开 uuremote://external/device/control,「远控」是全屏(window_type=0,协议规定不回调);点一台电脑可以选「小窗远控」(window_type=1),结果回调到 …/control。回调 URL 自带本机设备编号和 nonce,status=failure 时按 reason 给出说明:device_not_found 提供「重新绑定」,pip_unsupported 提供「改用全屏」,其他可重试;未知 reason 按 connect_failed 处理。
  • 拉起 UU 远程的 Intent 固定 setPackage("com.netease.uuremote"),设备标识不会被其他声明同一 scheme 的 App 截走。预览版和正式版各用自己的包名作回调 scheme,互不干扰。
  • 检测 UU 远程是否已安装、是否不低于 4.42.0(manifest 新增 <queries>);没装或版本过低时给出「安装 / 更新 UU 远程」,跳应用商店。
  • 电脑可以重命名、解除绑定、重新绑定(成功后沿用原名)。设备标识只存在本机私有 SharedPreferences uu-remote,不随账号同步,也不随系统备份(沿用 App 的备份排除规则)。

验证:289 项 JVM 测试通过(新增 UURemoteTest 10 项:URL 编码、nonce 校验、错误码与未知 reason、版本比较、设备序列化、重新绑定的合并、功能目录与搜索);Debug/Release 构建和 lint 通过,lint 0 错误。真机用小米 MIX Flip(HyperOS / Android 16,UU 远程 4.42.0):预览版在浅色、深色、1.6 倍字体下检查了页面和菜单;用 preview_real_uu 跑了真实协议,绑定了本人账号下的一台电脑,回调正确,nonce 用后清除;全屏远控,本人确认能看到电脑画面;小窗远控在授予 UU 远程悬浮窗权限后,1 秒内回调 status=success。正式签名包覆盖安装到 Flip,安装文件 SHA256 与构建一致,启动后没有崩溃日志。

限制与未验证:第一次小窗远控时 UU 远程跳去申请悬浮窗权限,那次请求没有回调 God,这是 UU 远程那边的行为,God 只能当成没有结果;HyperOS 第一次互相拉起时会弹「关联启动」确认,要本人允许;失败回调(离线、忙碌、未允许被控)只有单元测试覆盖,没在真机上复现;Find X9 Ultra 当天不在线,没有安装;正式版登录后截不了图,正式版里的真实绑定由本人验证。仍为预览版。

验证:GitHub Actions 自动构建(https://github.com/robbywang25/robby-console-android/actions/runs/40102576813)。289 项 JVM 测试、Debug/Release 构建与 lint 通过;签名证书 SHA-256 与正式证书一致,Release 附件下载回读后校验通过。

附 APK 与 SHA256SUMS,Android 11 及以上,可覆盖旧版。