Display and control your Android device
This application provides display and control of Android devices connected onUSB. It does not require any root access. It works on GNU/Linux, Windowsand MacOS.
The Android part requires at least API 21 (Android 5.0).
You need [adb] (recent enough so that
adb reverse is implemented, it workswith 1.0.36). It is available in the Android SDK platformtools, on packaged in your distribution (
On Windows, just download the platform-tools andextract the following files to a directory accessible from your
Make sure you enabled adb debugging on your device(s).
The client requires FFmpeg and LibSDL2.
Build and install
Install the required packages from your package manager (here, for Debian):
sudo apt install ffmpeg libsdl2-2.0.0
sudo apt install make gcc openjdk-8-jdk pkg-config meson zip \ libavcodec-dev libavformat-dev libavutil-dev \ libsdl2-dev```
For Windows, for simplicity, a prebuilt archive with all the dependencies(including
adb) is available:
(It's just a portable version including _dll copied from MSYS2.)_
Instead, you may want to build it manually. You need [MSYS2] to build theproject. From an MSYS2 terminal, install the required packages:
pacman -S mingw-w64-x8664-SDL2 \ mingw-w64-x8664-ffmpeg
pacman -S mingw-w64-x8664-make \ mingw-w64-x8664-gcc \ mingw-w64-x8664-pkg-config \ mingw-w64-x8664-meson \ zip```
Java (>= 7) is not available in MSYS2, so if you plan to build the server,install it manually and make it available from the
Use [Homebrew] to install the packages:
brew install sdl2 ffmpeg
brew install gcc pkg-config meson zip```
Java (>= 7) is not available in Homebrew, so if you plan to build the server,install it manually and make it available from the
Install the [Android SDK] (Android Studio), and set
ANDROID_HOME toits directory. For example:
bashmeson x --buildtype release --strip -Db_lto=truecd xninja
You can test it from here:
Or you can install it on the system:
bashsudo ninja install # without sudo on Windows
This installs two files:
Just remove them to "uninstall" the application.
Since the server binary, that will be pushed to the Android device, does notdepend on your system and architecture, you may want to use the prebuilt binaryinstead:
In that case, the build does not require Java or the Android SDK.
Download the prebuilt server somewhere, and specify its path during the Mesonconfiguration:
bashmeson x --buildtype release --strip -Db_lto=true \ -Dprebuilt_server=/path/to/scrcpy-server.jarcd xninjasudo ninja install
adb must be accessible from your
If everything is ok, just plug an Android device, and execute:
It accepts command-line arguments, listed by:
For example, to decrease video bitrate to 2Mbps (default is 8Mbps):
bashscrcpy -b 2M
To limit the video dimensions (e.g. if the device is 2540×1440, but the hostscreen is smaller, or cannot decode such a high definition):
bashscrcpy -m 1024
If several devices are listed in
adb devices, you must specify the serial:
bashscrcpy -s 0123456789abcdef
To run without installing:
bash./run x [options]
x is your build directory).
| Action | Shortcut | | ------------------------------------- | -------------:| | switch fullscreen mode |
f | | resize window to 1:1 (pixel-perfect) |
g | | resize window to remove black borders |
x | | click on
h | | click on
b | | click on
m | | click on
+ | | click on
- | | click on
p | | turn screen on | Right-click | | paste computer clipboard to device |
v | | enable/disable FPS counter (on stdout) |
A colleague challenged me to find a name as unpronounceable as [gnirehtet].
strcpy] copies a string;
scrcpy copies a screen.
Read the [developers page].
Copyright (C) 2018 GenymobileLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
To restore the repository download the bundle
git clone Genymobile-scrcpy_-_2018-03-10_17-20-02.bundle
Upload date: 2018-03-10
- 2018-03-11 06:14:59
- 2018-03-10 17:20:02
- Internet Archive Python library 1.5.0
- iagitup - v1.0