手里有多台闲置 Android 手机,能不能像云服务器一样集中管理?本文介绍 ScrcpyOverWebRTC:通过 WebRTC + Scrcpy 将真实 Android 设备接入网页管理台,实现远程控制、设备群控、文件管理、Shell 终端、免密分享和卡密授权。

前言

很多开发者手里都有几台闲置 Android 手机。

这些设备可能是以前使用的旧手机,也可能是专门用于应用测试的真机。单独使用一两台设备并不麻烦,但设备数量增加后,日常管理很快就会遇到问题:

  • 每次操作都要寻找对应的数据线;
  • 多台手机来回切换非常麻烦;
  • 远程办公时无法访问公司里的测试机;
  • 不同成员共用设备时需要反复交接;
  • 查看日志、执行命令、传输文件需要切换多个工具;
  • 管理员账号不方便直接交给临时使用者。

一种更方便的思路是:把这些 Android 真机接入统一的云手机管理平台,通过浏览器集中查看和控制。

本文介绍的 ScrcpyOverWebRTC(穿云投屏),就是一套面向真实 Android 设备的远程控制和群控方案。

相关地址:

一、把真机变成“云手机”是什么意思?

这里的云手机并不是在服务器中虚拟出 Android 系统,而是将真实 Android 手机作为被控设备接入平台。

手机仍然负责运行 Android 系统和应用,管理平台主要负责:

  1. 获取设备画面;
  2. 将画面实时传输到浏览器;
  3. 接收浏览器中的触控和按键操作;
  4. 管理设备状态、标签和访问权限;
  5. 提供文件、终端、快照和群控等辅助功能。

这种方案可以保留真机的硬件、系统和应用环境,适合需要真实设备表现的测试与调试场景。

二、为什么选择 WebRTC + Scrcpy?

Scrcpy 是 Android 开发者熟悉的投屏与控制工具,具有延迟低、画面流畅、不需要在手机中安装完整投屏客户端等特点。

WebRTC 则常用于浏览器实时音视频通信,具备低延迟传输、网络协商和 NAT 穿透能力。

ScrcpyOverWebRTC 将两者结合:

  • Scrcpy 负责设备画面与控制;
  • WebRTC 负责实时媒体传输;
  • 网页管理台负责设备管理和用户交互;
  • Agent 负责 Android 设备接入;
  • STUN/TURN 用于不同网络环境下的连接协商和中转。

最终效果是:用户可以在浏览器中直接连接 Android 设备,不必在每台管理电脑上安装独立的桌面投屏软件。

三、网页设备矩阵:多台手机集中管理

设备接入后,管理台会以卡片形式展示多台手机。

相比一台设备打开一个窗口,设备矩阵更适合批量管理:

  • 快速查看设备是否在线;
  • 同时预览多台手机画面;
  • 根据名称或标签筛选设备;
  • 进入单台设备进行精细控制;
  • 选择主控和从控设备执行同步操作;
  • 统一调整设备画质参数。

对于 Android 兼容性测试、设备实验室和多机运维场景,网页矩阵可以显著减少寻找设备和切换窗口的时间。

四、群控功能能解决什么问题?

群控是云手机平台中比较直观的一项能力。

用户选择一台主控设备和多台从控设备后,可以将主控端的部分操作同步到从控设备。

例如:

  • 同时打开指定应用;
  • 执行统一的页面操作;
  • 调整多台测试机的基础设置;
  • 在相同环境中重复测试步骤;
  • 快速检查不同设备的界面表现。

群控并不意味着所有机型都能做到完全像素级同步。不同设备的屏幕比例、分辨率、Android 版本、系统动画和应用状态可能不同,因此更适合操作路径一致、设备环境接近的场景。

在正式批量操作前,建议先选两台测试设备验证操作结果。

五、v0.3.2:手机端可以管理文件了

远程控制设备不仅是“看画面、点屏幕”,开发和测试过程中还经常需要处理文件。

ScrcpyOverWebRTC v0.3.2 为 Android App 增加了文件管理功能,可以覆盖更多设备维护场景:

  • 查看测试日志;
  • 检查应用导出的文件;
  • 管理下载目录;
  • 准备测试素材;
  • 核对文件是否生成成功;
  • 清理不再需要的临时文件。

这样一来,用户不必为了简单的文件操作频繁切换 ADB 工具或第三方文件管理软件。

文件权限会受到 Android 系统版本、Agent 运行身份和目录权限限制。涉及业务数据和用户隐私时,应当遵循最小权限原则。

六、v0.3.2:新增 Shell 终端

Android App 中新增的 Shell 终端,可以用于设备状态检查和开发调试。

常见命令示例:

查看系统版本

getprop ro.build.version.release

查看设备型号

getprop ro.product.model

查看存储空间

df -h

查看应用安装路径

pm path <应用包名>

查看当前进程

ps -A

查看设备基本状态

dumpsys battery

Shell 能执行哪些命令,取决于设备的 Android 版本以及 Agent 当前拥有的 ADB、Shizuku 或 Root 权限。

不要直接执行来源不明的命令。删除文件、修改系统设置和停止系统进程前,应先了解命令影响并备份重要数据。

七、免密分享:无需交出管理员账号

团队共用设备时,最不推荐的方式就是直接把管理员账号和密码发给所有人。

管理员账号往往拥有全部设备和平台配置权限。一旦账号泄露,影响范围可能不只是某一台测试机。

v0.3.2 增加了免密分享机器功能。管理员可以分享指定设备,让其他用户更快捷地访问目标机器,而不需要获取平台主账号。

适合的场景包括:

  • 临时分享一台设备给开发人员;
  • 给客户演示指定测试环境;
  • 远程协助排查某台手机的问题;
  • 在团队内部按需分配设备;
  • 为短期测试提供访问入口。

需要强调的是,“免密访问”并不等于“公开访问”。分享链接本身就是一种凭据,应当妥善保管:

  • 不要发布到公开网站;
  • 不要长期保留不再使用的分享;
  • 分享前清理设备中的敏感信息;
  • 公网环境必须使用 HTTPS;
  • 定期检查有效分享记录;
  • 发现泄露后及时撤销。

八、卡密登录:让设备授权更灵活

除了免密分享,v0.3.2 还加入了卡密登录。

卡密可以作为独立的访问凭据,用于向用户提供登录或设备使用权限。它比较适合需要临时授权、批量分配和后续回收的场景。

卡密系统可以减少直接共享管理员账号的情况,但卡密本身仍然属于敏感凭据。

建议在设计使用流程时考虑:

  • 卡密是否需要设置有效期;
  • 是否限制可访问的设备;
  • 是否限制使用次数;
  • 是否能够单独作废;
  • 是否记录必要的访问日志;
  • 是否避免在日志中保存完整明文卡密。

实际支持的卡密字段和权限范围,以 v0.3.2 管理台界面及官方文档为准。

九、Android 设备有哪些接入方式?

不同设备环境可以选择不同的 Agent 运行方式。

方式一:ADB 一键部署

适合初次体验、开发调试和临时使用。

特点:

  • 不需要 Root;
  • 需要开启 USB 调试;
  • 首次部署通常需要连接电脑;
  • 适合先验证平台功能。

方式二:Root 或 Shizuku

Android App 被控端支持 Root 和 Shizuku 等运行方式。

Root 设备可以获得更高权限;没有 Root 的 Android 11+ 设备,可以考虑通过无线调试激活 Shizuku 并完成授权。

具体能力受到系统和权限限制,建议使用测试机验证。

方式三:Magisk、KernelSU 或 APatch 模块

适合需要长期在线和开机自启的固定设备。

v0.3.2 对 Magisk 模块配置进行了精简,只保留三个必要配置项,降低了首次部署难度。

系统模块拥有较高权限,刷入前应确认设备兼容性并备份重要数据。

十、管理平台如何部署?

ScrcpyOverWebRTC 提供管理台发布包,也提供 Docker 部署方式。

如果使用 Linux 主机,并且在局域网内运行或拥有独立公网 IP,可以参考下面的 Host 网络模式:

docker run -d \
  --pull=always \
  --rm \
  --name cp-aio \
  --net=host \
  -v ./data:/app/data \
  -e PUBLIC_IP=<宿主机真实IP> \
  buutuu/scrcpy-over-webrtc:latest

启动后通过浏览器访问:

https://<宿主机IP>:8443

首次部署建议优先在局域网内测试。确认设备连接、画面传输和控制功能正常后,再根据实际需求配置公网访问。

生产环境必须修改默认管理员密码、TURN 用户名和 TURN 密码,并使用可信 HTTPS 证书。

十一、没有 Docker 也可以运行

不希望安装 Docker 的用户,可以下载完整管理台发布包:

cloudphone-v0.3.2.zip

发布包提供多个系统和处理器架构的运行文件。具体启动方式以压缩包说明和官方文档为准。

非 Docker 版本与 Docker AIO 镜像在内置组件和网络配置方面可能存在差异。跨 NAT 使用时,需要特别关注 STUN/TURN 配置。

十二、v0.3.2 下载地址

Android App

文件名:ScrcpyOverWebRTC-v0.3.2-release.apk

下载地址:

夸克网盘分享

主要功能:

  • 主控与被控模式;
  • 文件管理;
  • Shell 终端;
  • 免密分享机器;
  • 卡密登录。

管理台

文件名:cloudphone-v0.3.2.zip

下载地址:

夸克网盘分享

主要功能:

  • 网页设备管理;
  • 多设备矩阵;
  • 远程控制与群控;
  • 免密分享机器;
  • 卡密登录。

Magisk 模块

文件名:cloudphone-agent-magisk-v0.3.2.zip

下载地址:

夸克网盘分享

主要改进:

  • 配置项进一步精简;
  • 只保留三个必要配置;
  • 适合长期运行和开机自启。

十三、实际使用建议

如果你准备搭建自己的云手机环境,可以按照下面的顺序操作:

  1. 准备一台没有个人敏感数据的 Android 测试机;
  2. 在局域网内部署管理台;
  3. 使用 ADB 方式完成首次接入;
  4. 验证画面、控制、文件和 Shell 功能;
  5. 使用另一台设备测试分享和卡密登录;
  6. 检查分享权限和撤销流程;
  7. 确认功能稳定后,再接入更多设备;
  8. 长期在线设备再考虑安装 Magisk 模块;
  9. 公网部署前完成账号、HTTPS 和防火墙配置。

不要一开始就把所有设备和管理端口暴露到公网。先在可信网络中验证,是更稳妥的做法。

十四、适用场景

这套云手机平台更适合合法、合规的设备管理和开发测试用途,例如:

  • Android 应用兼容性测试;
  • 企业内部真机实验室;
  • 开发者远程调试;
  • 测试设备统一管理;
  • 已授权设备的远程技术支持;
  • 个人闲置 Android 设备管理;
  • 多设备界面同步验证。

请勿接入未经授权的设备,也不要将其用于违反应用平台规则、侵犯隐私或其他违法违规行为。

十五、总结

ScrcpyOverWebRTC 的思路很清晰:利用真实 Android 手机提供运行环境,通过 Scrcpy 获取和控制画面,再使用 WebRTC 将设备能力带到浏览器中。

它不是简单地把 Scrcpy 套一层网页,而是在多设备管理、远程访问、群控、文件、终端和授权方面不断补全使用流程。

v0.3.2 的主要价值包括:

  • Android App 增加文件管理;
  • Android App 增加 Shell 终端;
  • App 和管理台支持免密分享机器;
  • App 和管理台支持卡密登录;
  • Magisk 模块配置更加精简;
  • 多人协作和设备分配更加方便。

如果你有多台闲置 Android 手机,或者正在搭建真机测试平台,可以关注这个项目并在测试环境中体验。

项目地址:

更多推荐