2023-10-21 07:38:45 +02:00
< div style = "display:flex;" >
2024-08-30 10:52:59 +02:00
< img src = "./electron/resources/build/logo.png" alt = "viarotel-escrcpy" width = "108px" >
2023-10-21 07:38:45 +02:00
< / div >
2023-10-15 18:20:23 +02:00
# Escrcpy
2023-09-19 04:12:19 +02:00
2023-10-24 15:35:34 +02:00
📱 Display and control your Android device with a graphical interface of Scrcpy powered by Electron. [中文文档 ](https://github.com/viarotel-org/escrcpy/blob/main/README-CN.md )
2023-09-19 04:13:12 +02:00
2023-10-15 18:20:23 +02:00
< div style = "display:flex;" >
2024-08-30 10:52:59 +02:00
< img src = "./screenshots/en-US/overview.jpg" alt = "viarotel-escrcpy" width = "100%" >
2023-10-15 18:20:23 +02:00
< / div >
2023-10-24 16:40:24 +02:00
2023-10-24 15:28:53 +02:00
## Features
2023-09-19 04:12:19 +02:00
2023-10-24 15:28:53 +02:00
- 🏃 Synchronous: Benefit from web technologies to synchronize with Scrcpy faster
2024-07-24 13:06:34 +02:00
- 🤖 Automation: Auto-connect devices, auto-execute images, custom scripts, scheduled tasks
- 💡 Customization: Multi-device management, independent configurations, custom notes, config import/export
- 🔗 Reverse tethering: Gnirehtet reverse tethering
- 🎨 Themes: Light mode, dark mode, system-based switching
2023-10-24 15:28:53 +02:00
- 😎 Lightweight: Native support, only display device screen
- ⚡️ Performance: 30-120 fps depending on device
- 🌟 Quality: 1920× 1080 or higher
- 🕒 Low latency: 35~70 ms
- 🚀 Quick startup: Display first image in about 1 second
- 🙅♂️ Non-intrusive: No installation residual left on Android device
- 🤩 User benefits: No account, no ads, no internet required
- 🗽 Free and open source
2023-09-19 04:12:19 +02:00
2023-10-24 15:28:53 +02:00
## Get Software Packages
2023-09-19 04:12:19 +02:00
2023-10-24 15:28:53 +02:00
[Check release addresses ](https://github.com/viarotel-org/escrcpy/releases )
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
## Quick Start
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### USB Connection
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
> Note: If the phone prompts for debugging authorization, click allow
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
1. Enable developer mode and USB debugging on your Android phone
2. Open Escrcpy and connect your Android phone to your computer
3. The device list in Escrcpy should have detected your phone, click start mirroring
4. Enjoy!
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### WIFI Connection
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
> Note: Wireless debugging needs to be enabled on your phone's wireless debugging page to get the IP address (usually the IP assigned when connecting to WIFI) and port number (default 5555) of the device
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
1. Follow steps 1-2 in USB Connection
2. Input the device IP address and port number obtained to Escrcpy and click connect device
3. The device list in Escrcpy should have detected your phone, click start mirroring
4. Enjoy!
2023-10-15 18:20:23 +02:00
2023-10-21 04:08:03 +02:00
### macOS && Linux
2024-06-03 12:26:30 +02:00
> Note: These platforms do not come with integrated [Scrcpy](https://github.com/Genymobile/scrcpy), you need to install them manually
2023-10-21 04:08:03 +02:00
2023-10-24 15:28:53 +02:00
1. Refer to the [installation document ](https://github.com/Genymobile/scrcpy/blob/master/doc/linux.md ) for Linux
2. Refer to the [installation document ](https://github.com/Genymobile/scrcpy/blob/master/doc/macos.md ) for macOS
3. Follow steps in USB Connection and WIFI Connection after dependencies are installed successfully
2023-10-21 04:08:03 +02:00
2023-10-30 09:36:16 +01:00
### Gnirehtet Reverse Tethering
> Note: macOS does not have Gnirehtet built-in. You need to manually install it to use this feature [Installation Guide](https://github.com/Genymobile/gnirehtet).
Gnirehtet is built into the Windows and Linux apps to provide reverse tethering from PC to Android devices.
2023-10-24 15:28:53 +02:00
## Shortcuts
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
Refer to [scrcpy/doc/shortcuts ](https://github.com/Genymobile/scrcpy/blob/master/doc/shortcuts.md )
2023-10-15 18:20:23 +02:00
2024-03-05 04:58:40 +01:00
## Device Operation
2024-07-04 18:04:09 +02:00
### Batch Processing
2024-07-13 11:05:17 +02:00
- Batch Interception Screen
- Batch Installation Application
- Batch File Management
- Batch Execution Script
2024-07-24 13:06:34 +02:00
- Batch Scheduled Task
2024-07-04 18:04:09 +02:00
2024-03-05 04:58:40 +01:00
### Control Model
- Mirror
- Recording
- OTG
- Camera
2024-07-11 19:53:09 +02:00
- Custom
2024-03-05 04:58:40 +01:00
### Device Interaction Bar
2023-10-18 05:34:40 +02:00
2023-10-24 15:28:53 +02:00
- Switch
- Home
- Back
- Notification
- Power
2024-03-04 06:32:13 +01:00
- Rotation
- Volume
2023-10-24 15:28:53 +02:00
- Screenshot
2024-03-04 06:32:13 +01:00
- Reboot
2023-10-24 15:28:53 +02:00
- Install APP
2024-03-04 06:32:13 +01:00
- File Manager
2024-07-13 11:05:17 +02:00
- Execution Script
2024-07-24 13:06:34 +02:00
- Scheduled Task
2023-11-06 09:30:37 +01:00
- Gnirehtet
2024-03-04 06:32:13 +01:00
- Mirror Group
2023-10-18 05:34:40 +02:00
2023-10-24 15:28:53 +02:00
## Preferences
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
> Continuously improving. Currently supports the following common configurations
2023-10-18 13:23:00 +02:00
2023-11-06 08:49:04 +01:00
### General
2023-10-18 13:23:00 +02:00
2024-08-03 19:22:18 +02:00
- Theme
- Language
- File storage path
- Adb path
2024-03-04 06:13:57 +01:00
- Scrcpy path
- Gnirehtet path
- Scrcpy parameters
2024-08-03 19:22:18 +02:00
- Auto-connect device
- Auto-execute mirroring
- Gnirehtet fix
- Debug
2024-09-16 09:51:54 +02:00
- Floating control bar
2023-10-15 18:20:23 +02:00
2024-03-04 06:13:57 +01:00
### Video Control
2023-10-15 18:20:23 +02:00
2024-08-03 19:22:18 +02:00
- Disable video forwarding
2024-03-04 06:13:57 +01:00
- Maximum size
- Video bitrate
2023-10-24 15:28:53 +02:00
- Refresh rate
2024-08-03 19:22:18 +02:00
- Video codec
2024-03-04 06:13:57 +01:00
- Display orientation
2024-08-03 19:22:18 +02:00
- Screen cropping
2024-03-04 06:13:57 +01:00
- Monitor
2024-08-03 19:22:18 +02:00
- Video buffer
- Receiver (v4l2) buffer
2023-10-15 18:20:23 +02:00
2024-03-04 06:13:57 +01:00
### Device Control
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
- Show touch points
2023-11-06 08:49:04 +01:00
- Keep awake
2024-03-04 06:13:57 +01:00
- Turn off screen during control
- Turn off screen after control
2024-08-03 19:22:18 +02:00
- Disable auto screen on during control
2024-03-04 06:13:57 +01:00
- Simulate auxiliary display
2023-10-15 18:20:23 +02:00
2024-03-04 06:13:57 +01:00
### Window Control
2023-10-15 18:20:23 +02:00
2024-03-04 06:13:57 +01:00
- Window width
- Window height
2024-08-03 19:22:18 +02:00
- Window X-coordinate
- Window Y-coordinate
2023-10-24 15:28:53 +02:00
- Borderless mode
- Fullscreen mode
2023-11-06 08:49:04 +01:00
- Always on top
2024-03-04 06:13:57 +01:00
- Disable screensaver
### Audio Control
2024-08-03 19:22:18 +02:00
- Disable audio forwarding
- Keep device audio
2024-03-04 06:13:57 +01:00
- Audio source
2024-08-03 19:22:18 +02:00
- Audio codec
2024-03-04 06:13:57 +01:00
- Audio bitrate
2024-08-03 19:22:18 +02:00
- Audio buffer
- Audio output buffer
2023-10-15 18:20:23 +02:00
2024-03-04 06:13:57 +01:00
### Audio/Video Recording
2023-10-16 10:08:02 +02:00
2024-08-03 19:22:18 +02:00
- Record video format
- Record video orientation
2023-11-06 08:49:04 +01:00
- Recording duration
2024-03-04 06:13:57 +01:00
- Disable video playback
2023-11-06 08:49:04 +01:00
- Disable audio playback
2023-10-16 10:08:02 +02:00
2024-03-04 06:13:57 +01:00
### Input Control
2023-10-16 10:08:02 +02:00
2024-03-04 06:13:57 +01:00
- Mouse mode
2024-07-24 13:06:34 +02:00
- Mouse binding
2024-03-04 06:13:57 +01:00
- Keyboard mode
- Keyboard injection method
2024-09-16 09:51:54 +02:00
- Gamepad
2023-11-06 08:49:04 +01:00
2024-03-04 06:13:57 +01:00
### Camera Control
2023-11-06 08:49:04 +01:00
- Camera source
2024-08-03 19:22:18 +02:00
- Camera size
- Camera ratio
2023-11-06 08:49:04 +01:00
- Camera frame rate
2023-10-16 10:08:02 +02:00
2023-10-24 15:28:53 +02:00
## Next Steps?
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
> Priority from high to low:
2023-10-15 18:20:23 +02:00
2024-07-24 13:06:34 +02:00
1. Improved logo ✅
2. Software update feature ✅
2023-10-24 15:28:53 +02:00
3. Record and save audio/video ✅
2024-07-24 13:06:34 +02:00
4. Device quick interaction control bar ✅
5. Custom Adb and Scrcpy dependencies ✅
6. Custom device names ✅
7. Export and import preferences ✅
8. Individual device configuration ✅
9. macOS and Linux support ✅
10. Internationalization ✅
11. Dark mode ✅
12. Reverse tethering (Gnirehtet) ✅
13. Camera mirroring ✅
14. Multi-screen collaboration ✅
15. File push, screen rotation, audio control ✅
16. Batch connect historical devices ✅
17. Built-in terminal ✅
18. Auto-execute mirroring ✅
19. Flexible mirroring launch ✅
20. Batch processing ✅
21. Scheduled tasks ✅
2024-09-09 09:12:59 +02:00
22. Graphical file manager ✅
2024-09-12 14:18:53 +02:00
23. Floating control bar ✅
24. Device grouping 🚧
25. Game key mapping 🚧
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
## FAQ
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### Computer cannot detect device after connecting
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
1. Please unplug and reconnect your device, and make sure the device has granted USB debugging authorization.
2. If it still doesn't work, your computer may be missing necessary drivers. Please install drivers using third-party tools such as DriverWizard and try again.
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### Unable to enter Chinese
2023-10-15 18:20:23 +02:00
2024-09-09 09:12:59 +02:00
> In Scrcpy@2.4+ and above, the solution is as follows:
2023-10-15 18:20:23 +02:00
2024-09-09 09:12:59 +02:00
1. Escrcpy Settings: Go to `Preferences` → `Input Control` → `Keyboard Mode` and select `uhid` mode.
2. Device Input Method Preparation: Install an input method that supports physical keyboards (WeChat Input Method is recommended) and complete the setup.
3. Start Mirroring: Click `Start Mirroring` in Escrcpy. Verification: The device’ s `Settings` → `System` → `Language & Input` should display options for `Physical Keyboard` and `On-screen Keyboard` .
4. Device Input Settings: Enable WeChat Input Method in the `On-screen Keyboard` settings. Configure the keyboard layout in the `Physical Keyboard` settings to match the computer keyboard (only needs to be done once).
5. Computer Input Preparation: Set the input mode to English (important).
6. Switch Input Language: Use `Ctrl` + `Shift` to switch between English and Chinese.
7. Start Using.
[Download WeChat Input Method ](https://z.weixin.qq.com/ )
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### Wireless connection prompts: The target computer actively refuses access
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
The first wireless connection may require pairing. Alternatively, insert USB to ensure connection establishment and authorization success before using wireless.
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### Clicking wireless mode after connecting via data cable has no response
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
Please click again, or click refresh devices. Generally it will not exceed two clicks. If still not working, please provide device model and Android version to [Issues ](https://github.com/viarotel-org/escrcpy/issues )
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### Why is the device interaction control bar not designed as an automatically sticking floating menu?
2023-10-15 18:20:23 +02:00
2024-09-09 09:12:59 +02:00
It is important to note that, in principle, Escrcpy is just a GUI version based on Scrcpy, although it does extend some functionality. However, these extensions do not affect the core of Scrcpy. To implement this particular feature, I would have to modify the underlying Scrcpy code, which would make it more difficult for Escrcpy to stay in sync with Scrcpy's updates, and the drawbacks would outweigh the benefits.
Therefore, after careful consideration, we have decided to adopt the existing solution and look forward to Scrcpy adding native support for an interactive control bar in the future.
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
### Some devices can see screenshots after connecting but cannot operate
2023-10-21 07:38:45 +02:00
2023-10-24 15:28:53 +02:00
> Note: For Xiaomi phones in particular, it requires not only enabling USB debugging but also enabling USB debugging (Security Settings), which is to allow modifying permissions or simulating clicks via USB debugging.
2023-10-21 07:38:45 +02:00
2023-10-24 15:28:53 +02:00
Please refer to the detailed instructions under [Reasons why mouse and keyboard do not work ](https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#mouse-and-keyboard-do-not-work )
2023-10-21 07:38:45 +02:00
2023-10-24 15:28:53 +02:00
### Downloading prompts antivirus detection causing unable to download normally
2023-10-21 15:40:13 +02:00
2023-10-24 15:28:53 +02:00
> After feedback, Windows Defender may occasionally block the software packages from being downloaded due to lack of certificate signing. You can try the following solutions:
2023-10-21 15:40:13 +02:00
2023-10-24 15:28:53 +02:00
1. Open `Windows Security Center` .
2. Select `Virus & threat protection` .
3. In the `Virus & threat protection settings` , click `Manage settings` .
4. Find `Real-time protection` , you can try clicking Disable if permission allows. If unable to disable real-time protection, please skip this step.
5. Scroll down the page, find `Exclusions` , click `Add or remove exclusions` .
6. Add the folder path where you download the software packages as an exclusion item, i.e. add the folder to the `Excluded list` .
2023-10-21 15:40:13 +02:00
2023-10-24 15:28:53 +02:00
### Failed to get device list or error when starting mirroring/recording
2023-10-23 02:53:05 +02:00
2023-10-24 15:28:53 +02:00
> This is generally caused by an incorrect path for `Adb` or `Scrcpy`, you can try the following solutions:
2023-10-23 02:53:05 +02:00
2023-10-24 15:28:53 +02:00
1. In the menu, select `Preferences` and then click the reset configuration button in the top right corner of `Global Mode` .
2. Go to the `Device List` page and try enabling mirroring again.
3. Make sure you have downloaded and installed the latest version of `Escrcpy` .
4. Press `Ctrl` + `Shift` + `I` to open the developer tools and check for any error messages.
5. If there are errors, take a screenshot and submit your issue with the screenshot on the [Feedback Issues ](https://github.com/viarotel-org/escrcpy/issues ) page.
2023-10-23 02:53:05 +02:00
2023-10-24 15:28:53 +02:00
### macOS window minimized to system tray icon not found
2023-10-24 10:46:51 +02:00
2023-10-24 15:28:53 +02:00
> This is generally caused by too many icons in the system tray overflowing and hiding the Escrcpy icon. Try using the following tools:
2023-10-24 10:46:51 +02:00
- [iBar ](https://www.better365.cn/ibar.html )
- [Bartender ](https://www.macbartender.com/ )
2023-11-18 04:27:44 +01:00
### After a successful installation of macOS, when I try to open it, I receive a prompt saying the file is damaged.
> This is usually due to the software package not being signed. You can try the following solutions:
1. Open Terminal and execute `sudo spctl --master-disable` to allow software from any source.
2. Open Terminal and execute `sudo xattr -r -d com.apple.quarantine [AppPath]` to attempt fixing the damaged software package prompt.
2024-03-14 01:46:49 +01:00
### Unable to locate the input point DiscardvirtualMemory on the dynamic link library Kernel32.dll.
2024-03-14 01:48:32 +01:00
Only support `Windows 10` and above versions.
2024-03-14 01:46:49 +01:00
2024-03-14 02:37:47 +01:00
### Audio capture exception causing mirroring failure.
> This usually happens because your computer lacks audio output or you have a low Android version (Android 11+).
Please try `disabling audio forwarding` feature through the `preferences settings` to resolve this issue.
2024-08-03 19:36:41 +02:00
### Microsoft Store version mirror startup error
> This is caused by files in the installation directory lacking executable permissions.
You need to customize the file paths for `scrcpy` and `adb` (ensuring they have executable permissions). If using reverse tethering, configure `gnirehtet` similarly.
2023-10-24 15:28:53 +02:00
## Getting Help
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
> As this is an open source project run entirely by donations, support is limited and updates may not be on a fixed schedule.
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
- Issues: [Submit Feedback ](https://github.com/viarotel-org/escrcpy/issues )
- Email: viarotel@qq.com
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
## Acknowledgements
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
This project would not be possible without the following open source projects:
2023-10-15 18:20:23 +02:00
- [scrcpy ](https://github.com/Genymobile/scrcpy )
- [adbkit ](https://github.com/DeviceFarmer/adbkit )
- [electron ](https://www.electronjs.org/ )
2023-11-02 11:07:57 +01:00
- [vue ](https://vuejs.org/ )
- [gnirehtet ](https://github.com/Genymobile/gnirehtet/ )
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
## Support the Project
2023-10-15 18:20:23 +02:00
2023-10-24 15:28:53 +02:00
> If this project has helped you, you can buy me a coffee to keep me energized and improving the project! 😛
2023-10-15 18:20:23 +02:00
< div style = "display:flex;" >
2024-08-30 10:43:05 +02:00
< img src = "./screenshots/zh-CN/viarotel-wepay.jpg" alt = "viarotel-wepay" width = "30%" >
< img src = "./screenshots/zh-CN/viarotel-alipay.jpg" alt = "viarotel-alipay" width = "30%" >
2024-03-22 04:11:52 +01:00
< a href = "https://www.paypal.com/paypalme/viarotel" target = "_blank" rel = "noopener noreferrer" >
2024-08-30 10:43:05 +02:00
< img src = "./screenshots/en-US/viarotel-paypal.png" alt = "viarotel-paypal" width = "30%" >
2024-03-22 04:09:27 +01:00
< / a >
2024-06-03 12:26:30 +02:00
< / div >
2024-06-07 04:47:12 +02:00
## Contributors
Thanks for all their contributions!
< a href = "https://github.com/viarotel-org/escrcpy/graphs/contributors" >
< img src = "https://contrib.rocks/image?repo=viarotel-org/escrcpy" alt = "contributors" / >
< / a >
## Star History
[![Star History Chart ](https://api.star-history.com/svg?repos=viarotel-org/escrcpy&type=Date )](https://star-history.com/#viarotel-org/escrcpy& Date)