v3.0.1
Genymobile/scrcpyv3.0.1Dec 4, 2024by rom1v
AI Summary
This release fixes critical issues from v3.0, specifically rolling back the screen-off mechanism for Android 15 and enabling screen-off functionality for virtual displays. It also introduces a new static build for macOS x86_64 and modifies TCP/IP connection handling to prevent disconnecting previous instances.
Key Highlights
- Rollback to old method for --turn-screen-off on Android 15 to fix video mirroring issues.
- Enable --turn-screen-off for virtual displays to power off the main display.
- Change default TCP/IP behavior to keep existing connections active when starting a new one.
- New static build for macOS x86_64 added.
- Fixed .tar.gz compression for release tarballs.
Full Release Notes
_To receive a notification when a new release is available, click on **Watch > Custom > Releases** at the top._ --- **scrcpy v3.0.1** Changes since v3.0: - Set main display power for virtual display (#5522) - Rollback to old --turn-screen-off method for Android 15 (#5530) - Do not reset TCP/IP connections (#5562) - Fix socket interruption on macOS (#5536) - Fix NullPointerException on certain devices (#5537) - Fix camera capture failure without retry (#5539) - Accept control events without display (#5542) - Build macOS x86_64 release (#5526) - Fix .tar.gz compression for release tarballs (#5581) - Call static binary without wrapper script (#5560) --- <a id="highlights-v3.0.1"></a> # Highlights This release fixes some issues from [scrcpy 3.0](https://github.com/Genymobile/scrcpy/releases/tag/v3.0). ## Turn screen off There were two major problems with the `--turn-screen-off` feature. Firstly, Android 15 introduced a new mechanism to set the display power, used by scrcpy 3.0 (#5418). Unfortunately, it does not work as expected: video mirroring was broken or frozen when the display power was off. Therefore, this version rolls back to the previous mechanism, even for Android 15. In addition, `--turn-screen-off` was disabled when mirroring a virtual display because there was no display to power off. However, on some devices, interacting with the virtual display requires the device to be unlocked (with the main screen powered on). In such cases, it might make sense to power on the device, but with the screen physically turned off (useful in conjunction with [stay awake](https://github.com/Genymobile/scrcpy/blob/master/doc/device.md#stay-awake) or a custom [screen off timeout](https://github.com/Genymobile/scrcpy/blob/master/doc/device.md#screen-off-timeout)). Therefore, the "turn screen off" feature is now enabled with virtual displays, and it changes the power mode of the main display. ## TCP/IP multi-instances When scrcpy was run with [`--tcpip=<addr>`](https://github.com/Genymobile/scrcpy/blob/master/doc/connection.md#automatic), to make sure a new working connection was established, any previous connection to the same address was disconnected. However, this caused all running instances connected to that address to be killed. Running several instances of scrcpy on the same device is now useful with virtual displays, so change the default behavior to NOT disconnect. To force a reconnection, a '+' prefix can be added: ```bash scrcpy --tcpip=+192.168.0.3 ``` ## Releases For scrcpy 3.0, static builds were released for Linux (x86_64) and macOS (aarch64). For 3.0.1, a new build for macOS x86_64 has been added. Some changes have been made in the way scrcpy finds dependent files (`adb`, `scrcpy-server` and `icon.png`). Static releases are build in "portable" mode, which means that scrcpy must find the expected files in the same directory as the executable. This was implemented via a wrapper shell script in 3.0, but it had limitations (e.g., it did not work properly when executing the script from a symlink in another location). This functionality is now fully implemented in C. By default, scrcpy uses the provided `adb` binary. If you want to use the `adb` binary from your system, set the `ADB` environment variable to the path of your `adb` (or just `adb` so that it is searched in `$PATH`): ```bash ADB=adb scrcpy ``` Also, the `.tar.gz` releases for 3.0 were actually non-gzipped tarballs (#5581). The tarballs for 3.0.1 are now correctly gzipped. Other specific issues have been fixed; see the full changelog above. --- - BlueSky: [`@scrcpy.bsky.social`](https://bsky.app/profile/scrcpy.bsky.social) - Twitter: [`@scrcpy_app`](https://twitter.com/scrcpy_app) - Reddit: [`r/scrcpy`](https://www.reddit.com/r/scrcpy)