# Escrcpy
📱 使用图形界面的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱动。[English Document](https://github.com/viarotel-org/escrcpy/blob/main/README.md)
## 特点
- 🏃 同步:得益于 Web 技术,将更快速的与 Scrcpy 保持同步
- 🤖 自动化:自动连接设备、自动执行镜像、自定义脚本、计划任务
- 💡 定制化:多设备管理、独立配置、自定义备注、配置导入导出
- 🔗 反向供网:Gnirehtet 反向供网
- 🎨 主题:浅色模式、深色模式、跟随系统切换
- 😎 轻巧度:本机支持,仅显示设备屏幕
- ⚡️ 性能:30~120 帧每秒,取决于设备
- 🌟 质量:1920×1080 或更高
- 🕒 低延迟:35~70 毫秒
- 🚀 快速启动:显示第一张图片仅需约 1 秒钟
- 🙅♂️ 非侵入性:不会在安卓设备上留下任何安装文件
- 🤩 用户收益:无需账户、无广告、无需互联网连接
- 🗽 自由:免费且开源软件
## 获取软件包
[查看发布地址](https://github.com/viarotel-org/escrcpy/releases)
## 快速上手
### USB 连接
> 注意:如果手机上提示调试授权请点击允许
1. 安卓手机需开启开发者模式并打开 USB 调试
2. 打开 Escrcpy 并将安卓手机连接到你的电脑
3. 这时 Escrcpy 设备列表应该已经检测到你的手机,点击开始镜像
4. 开始享受吧
### WIFI 连接
> 注意:如果首次无线连接失败,你可能需要无线配对请参阅 [常见问题](#常见问题)
>
> 注意:需同时开启无线调试功能,并在无线调试页面中获取你的当前设备的无线地址(通常为你连接 WIFI 时分配的 IP 地址)及端口号(默认为 5555)
1. 同 USB 连接中的 1-2 步骤
2. 将获取到的设备 IP 地址及端口号填写到 Escrcpy 中,然后点击连接设备
3. 这时 Escrcpy 设备列表应该已经检测到你的手机,点击开始镜像
4. 开始享受吧
### macOS && Linux
> 注意:这些平台没有集成 [Scrcpy](https://github.com/Genymobile/scrcpy) 需要手动安装
1. Linux 可参阅的 [安装文档](https://github.com/Genymobile/scrcpy/blob/master/doc/linux.md)
2. macOS 可参阅的 [安装文档](https://github.com/Genymobile/scrcpy/blob/master/doc/macos.md)
3. 安装上述依赖成功后步骤同 USB 连接 和 WIFI 连接
### Gnirehtet 反向供网
> 注意: macOS 内部没有集成如需使用需要手动安装 [安装文档](https://github.com/Genymobile/gnirehtet)
Windows 及 Linux 端内部集成了 Gnirehtet, 用于提供 PC 到安卓设备的反向供网功能。
## 快捷键
请参阅 [scrcpy/doc/shortcuts](https://github.com/Genymobile/scrcpy/blob/master/doc/shortcuts.md)
## 设备操作
### 批量处理
- 批量截取屏幕
- 批量安装应用
- 批量文件管理
- 批量执行脚本
- 批量计划任务
### 控制模式
- 镜像
- 录制
- 录制相机
- 录制音频
- 相机
- 灵活启动
- OTG
### 设备交互栏
- 切换键
- 主屏幕
- 返回键
- 关闭屏幕(实验性)
- 通知栏
- 电源键
- 旋转屏幕
- 音量控制
- 截取屏幕
- 重启设备
- 安装应用
- 文件管理
- 执行脚本
- 计划任务
- 反向供网(Gnirehtet)
- 多屏协同
## 偏好设置
> 持续完善中 目前支持以下常用配置
### 通用
- 主题
- 语言
- 文件存储路径
- Adb 路径
- Scrcpy 路径
- Gnirehtet 路径
- Scrcpy 参数
- 自动连接设备
- 自动执行镜像
- Gnirehtet 修复
- 调试
- 浮动控制栏
### 视频控制
- 禁用视频转发
- 最大尺寸
- 视频比特率
- 刷新率
- 视频编码
- 显示方向
- 屏幕裁剪
- 显示器
- 视频缓冲
- 接收器(v4l2)缓冲
### 设备控制
- 展示触摸点
- 保持唤醒
- 控制时关闭屏幕
- 控制结束关闭屏幕
- 控制时禁用自动亮屏
- 模拟辅助显示器
### 窗口控制
- 窗口宽度
- 窗口高度
- 窗口横坐标
- 窗口纵坐标
- 无边框模式
- 全屏模式
- 始终位于顶部
- 禁用屏幕保护程序
### 音频控制
- 禁用音频转发
- 保持设备音频
- 音频源
- 音频编码
- 音频比特率
- 音频缓冲
- 音频输出缓冲
### 音视频录制
- 录制视频格式
- 录制视频方向
- 录制时长
- 禁用视频播放
- 禁用音频播放
### 输入控制
- 鼠标模式
- 鼠标绑定
- 键盘模式
- 键盘注入方式
- 游戏手柄
### 摄像控制
- 摄像源
- 摄像尺寸
- 摄像比例
- 摄像帧率
## 下一步做什么?
> 优先级从高到低
1. 更好的标志 ✅
2. 软件更新功能 ✅
3. 录制和保存音视频 ✅
4. 设备快捷交互控制栏 ✅
5. 自定义 Adb 及 Scrcpy 依赖 ✅
6. 自定义设备名称 ✅
7. 偏好设置的导出及导入 ✅
8. 对单个设备进行独立配置 ✅
9. 添加 macOS 及 linux 操作系统的支持 ✅
10. 国际化 ✅
11. 深色模式 ✅
12. 反向供网(Gnirehtet) ✅
13. 相机镜像 ✅
14. 多屏协同 ✅
15. 文件推送、旋转屏幕、音频控制 ✅
16. 批量连接历史设备 ✅
17. 内置终端 ✅
18. 自动执行镜像 ✅
19. 灵活启动镜像 ✅
20. 批量处理 ✅
21. 计划任务 ✅
22. 图形化文件管理器 ✅
23. 浮动操作栏 ✅
24. 增强录制功能 ✅
25. 对设备进行分组 🚧
26. 游戏键位映射 🚧
## 常见问题
### 电脑连接设备后无法检测到
1. 请重新插拔你的设备,并确认设备同意了 USB 调试授权窗口。
2. 如果还不行,你的电脑可能缺少必要的驱动程序,请使用第三方工具 如:驱动精灵,安装必要的驱动后重试。
### 无法输入中文
> 在 Scrcpy@2.4+ 及以上版中,解决方法如下
1. Escrcpy 设置:在 `偏好设置` → `输入控制` → `键盘模式` 中选择 `uhid` 模式。
2. 设备输入法准备:安装支持物理键盘的输入法(推荐微信输入法)并完成配置。
3. 启动镜像:在 Escrcpy 中点击 `开始镜像`。验证:设备中 `设置` → `系统` → `语言和输入` 应显示 `实体键盘` 和 `屏幕键盘` 选项。
4. 设备输入设置:在 `屏幕键盘` 中启用微信输入法。在 `实体键盘` 中配置键盘布局,使其与计算机键盘一致(仅需一次)。
5. 计算机输入准备:将输入模式设为英文(重要)。
6. 切换输入语言:使用 `Ctrl` + `Shift` 在中英文间切换。
7. 开始使用。
[下载微信输入法](https://z.weixin.qq.com/)
### 无线连接提示: 目标计算机积极拒绝访问
第一次无线连接可能需要配对 或 插入 USB 以保证与电脑建立连接即授权成功后方可使用
### 通过数据线连接后点击无线模式没有反应
请再点一次,或点击刷新设备,一般不会超过两次,如果还不行,请提供机型和安卓版本信息到 [Issues](https://github.com/viarotel-org/escrcpy/issues)
### 设备交互控制栏为什么不设计为自动跟踪吸附的悬浮菜单?
需要注意的是 Escrcpy 原则上只是基于 Scrcpy 实现的 GUI 版本,尽管它确实扩展了一些功能,但是这些功能都是不影响 Scrcpy 核心的前提下,而如果要实现该功能我将不得不对 Scrcpy 底层进行修改,这会使 Escrcpy 更难以与 Scrcpy 保持同步更新,这将得不偿失。
因此,综合考虑,我们决定采用现有的方案,并期待 Scrcpy 未来能够增加原生交互控制栏的支持。
### 某些设备连接镜像后可以看到画面但是无法操作
> 注意:以小米手机为例,不仅需要开启 USB 调试还需要开启 USB 调试(安全设置)也就是允许通过 USB 调试修改权限或模拟点击的功能
可供参阅的详细说明 [鼠标和键盘不工作的原因](https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#mouse-and-keyboard-do-not-work)
### 下载软件包时提示报毒导致无法正常下载
> 经过反馈,有时在 Windows 环境下,由于软件包没有进行证书签名,可能会被 Windows Defender 误认为有害而导致拦截提示,可以尝试以下解决方法
1. 打开 `Windows 安全中心`。
2. 选择 `病毒和威胁防护`。
3. 在 `病毒和威胁防护设置` 下,点击 `管理设置`。
4. 找到 `实时保护`,如果权限允许,可以尝试点击关闭。如果无法关闭实时保护,请跳过此步骤。
5. 向下滑动页面,找到 `排除项`,点击 `添加或删除排除项`。
6. 添加您下载软件包的文件夹路径作为排除项,即将该文件夹添加到`排除列表`中。
### 获取设备列表失败或开始镜像/录屏报错
> 该问题一般是 `Adb` 或 `Scrcpy` 依赖路径错误导致的,可以尝试以下解决方法
1. 在菜单中选择 `偏好设置`,然后在 `Global 模式` 下点击右上角的 `重置配置`。
2. 接下来,进入 `设备列表` 页面,并尝试重新开启镜像功能。
3. 如果问题仍然存在,请确保您已下载并安装了最新版本的 `Escrcpy`。
4. 按下 `Ctrl` + `Shift` + `I` 进入开发者工具,并查看是否有任何报错信息。
5. 如果有报错,请截图并在 [反馈问题](https://github.com/viarotel-org/escrcpy/issues) 页面中提交您的问题。
### macOS 关闭窗口选择最小化到托盘后顶部右侧状态栏找不到图标
> 这个一般是状态栏图标过多导致无法展示 Escrcpy 的图标 推荐用以下工具解决
- [iBar](https://www.better365.cn/ibar.html)
- [Bartender](https://www.macbartender.com/)
### macOS 安装成功后打开提示文件损坏
> 这个通常是因为软件包本身没有签名导致的,可以尝试以下解决方法
1. 终端中执行 `sudo spctl --master-disable` 以允许任何来源
2. 终端中执行 `sudo xattr -r -d com.apple.quarantine [AppPath]` 以尝试修复提示软件包损坏
### 无法定位程序输入点 DiscardVirtualMemory 于动态链接库 KERNEL32.dll 上。
仅支持 `Windows 10` 及更高版本。
### 音频捕获异常导致镜像失败
> 通常是因为您的计算机缺少音频输出,或者您的 Android 版本过低(Android 11+)。
请尝试通过`偏好设置`中的`禁用音频转发`功能,以解决此问题。
### 微软商店版本启动镜像报错
> 这是因为该版本的安装目录内部文件没有可执行权限导致的
你需要自定义 `scrcpy` 以及 `adb` 的文件路径(确保具有可执行权限),如果用到反向供网则同样需要以同样方法配置 `gnirehtet`。
### Could not execute "adb start-server"
这可能是因为安装路径中包含中文或特殊字符导致的,请尝试更改安装路径。
## 获得帮助
> 因为是开源项目 全靠爱发电 所以支持有限 更新节奏不固定
- issues: [反馈问题](https://github.com/viarotel-org/escrcpy/issues)
- email: viarotel@qq.com
## 致谢
该项目的诞生离不开以下开源项目
- [scrcpy](https://github.com/Genymobile/scrcpy)
- [adbkit](https://github.com/DeviceFarmer/adbkit)
- [electron](https://www.electronjs.org/)
- [vue](https://vuejs.org/)
- [gnirehtet](https://github.com/Genymobile/gnirehtet/)
## 支持项目
> 如果该项目帮到你的话,可以请我喝杯咖啡,让我更有精神完善该项目 😛
## 贡献者
感谢他们的所做的一切贡献!
## Star 历史
[![Star History Chart](https://api.star-history.com/svg?repos=viarotel-org/escrcpy&type=Date)](https://star-history.com/#viarotel-org/escrcpy&Date)