From 93e9fb496c44e5a59ab32d5db638c6e1e856a2ea Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Tue, 13 Feb 2018 19:31:44 +0100 Subject: [PATCH] Update README Explain how to build, install and run the application. --- README.md | 243 +++++++++++++++++++------------ assets/screenshot-debian-600.jpg | Bin 0 -> 45451 bytes 2 files changed, 152 insertions(+), 91 deletions(-) create mode 100644 assets/screenshot-debian-600.jpg diff --git a/README.md b/README.md index bfd3f2e7..2f429474 100644 --- a/README.md +++ b/README.md @@ -1,141 +1,202 @@ -# ScrCpy +# scrcpy -This project displays screens of Android devices plugged on USB in live. +This project displays screens of Android devices connected on USB, and allow to +control them using the host mouse and keyboard. It does not require any _root_ +access. It works on _GNU/Linux_, _Windows_ and _Mac OS_. + +![screenshot](assets/screenshot-debian-600.jpg) -## Run +## Requirements -### Runtime requirements +The Android part requires at least API 21 (Android 5.0). -This projects requires _FFmpeg_, _LibSDL2_ and _LibSDL2-net_. +You need [adb] (recent enough so that `adb reverse` is implemented, it works +with 1.0.36). It is available in the [Android SDK platform +tools][platform-tools], on packaged in your distribution (`android-adb-tools`). + +On Windows, just download the [platform-tools][platform-tools-windows] and +extract the following files to a directory accessible from your `PATH`: + - `adb.exe` + - `AdbWinApi.dll` + - `AdbWinUsbApi.dll` + +Make sure you [enabled adb debugging][enable-adb] on your device(s). + +[adb]: https://developer.android.com/studio/command-line/adb.html +[enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling +[platform-tools]: https://developer.android.com/studio/releases/platform-tools.html +[platform-tools-windows]: https://dl.google.com/android/repository/platform-tools-latest-windows.zip + +The client requires _FFmpeg_ and _LibSDL2_. + + +## Build and install + +### System-specific steps #### Linux -Install the packages from your package manager. For example, on Debian: +Install the required packages from your package manager (here, for Debian): - sudo apt install ffmpeg libsdl2-2.0.0 libsdl2-net-2.0.0 + # runtime dependencies + sudo apt install ffmpeg libsdl2-2.0.0 + + # build dependencies + sudo apt install make gcc openjdk-8-jdk pkg-config meson zip \ + libavcodec-dev libavformat-dev libavutil-dev \ + libsdl2-dev #### Windows -From [MSYS2]: +For Windows, for simplicity, a prebuilt package with all the dependencies +(including `adb`) is available: TODO. - pacman -S mingw-w64-x86_64-SDL2 - pacman -S mingw-w64-x86_64-SDL2_net - pacman -S mingw-w64-x86_64-ffmpeg +Instead, you may want to build it manually. You need [MSYS2] to build the +project. From an MSYS2 terminal, install the required packages: [MSYS2]: http://www.msys2.org/ + # runtime dependencies + pacman -S mingw-w64-x86_64-SDL2 \ + mingw-w64-x86_64-ffmpeg -#### MacOS + # build dependencies + pacman -S mingw-w64-x86_64-make \ + mingw-w64-x86_64-gcc \ + mingw-w64-x86_64-pkg-config \ + mingw-w64-x86_64-meson \ + zip -TODO - - -## Build - -The project is divided into two parts: - - the server, running on the device (in `server/`); - - the client, running on the computer (in `app/`). - -The server is a raw Java project requiring Android SDK. It not an Android -project: the target file is a `.jar`, and a `main()` method is executed with -_shell_ rights. - -The client is a C project using [SDL] and [FFmpeg], built with [Meson]/[Ninja]. - -The root directory contains a `Makefile` to build both parts. - -[sdl]: https://www.libsdl.org/ -[ffmpeg]: https://www.ffmpeg.org/ -[meson]: http://mesonbuild.com/ -[ninja]: https://ninja-build.org/ - - -### Build requirements - -Install the [Android SDK], the JDK 8 (`openjdk-8-jdk`), and the packages -described below. - -[Android SDK]: https://developer.android.com/studio/index.html - - -#### Linux - - sudo apt install make gcc openjdk-8-jdk pkg-config meson zip \ - libavcodec-dev libavformat-dev libavutil-dev \ - libsdl2-dev libsdl2-net-dev - - -#### Windows - -Install these packages: - - pacman -S mingw-w64-x86_64-make - pacman -S mingw-w64-x86_64-gcc - pacman -S mingw-w64-x86_64-pkg-config - pacman -S mingw-w64-x86_64-meson - pacman -S zip - -Java 8 is not available in MSYS2, so install it manually and make it available -from the `PATH`: +Java (>= 7) is not available in MSYS2, so if you plan to build the server, +install it manually and make it available from the `PATH`: export PATH="$JAVA_HOME/bin:$PATH" -### Build +#### Mac OS -Make sure your `ANDROID_HOME` variable is set to your Android SDK directory: +Use [Homebrew] to install the packages: + +[Homebrew]: https://brew.sh/ + + # runtime dependencies + brew install sdl2 ffmpeg + + # build dependencies + 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 `PATH`: + + export PATH="$JAVA_HOME/bin:$PATH" + + +### Common steps + +Install the [Android SDK] (_Android Studio_), and set `ANDROID_HOME` to +its directory. For example: + +[Android SDK]: https://developer.android.com/studio/index.html export ANDROID_HOME=~/android/sdk -From the project root directory, execute: +Then, build `scrcpy`: - make build + meson x --buildtype release --strip -Db_lto=true + cd x + ninja -To run the build: +You can test it from here: - make run + ninja run -It is also pass arguments to `scrcpy` via `make`: +Or you can install it on the system: - make run ARGS="-p 1234" + sudo ninja install # without sudo on Windows -The purpose of this command is to execute `scrcpy` during the development. +This installs two files: + + - `/usr/local/bin/scrcpy` + - `/usr/local/share/scrcpy/scrcpy-server.jar` + +Just remove them to "uninstall" the application. -### Test +#### Prebuilt server -To execute unit tests: +Since the server binary, that will be pushed to the Android device, does not +depend on your system and architecture, you may want to use the prebuilt binary +instead: [`scrcpy-server.jar`](TODO). - make test +In that case, the build does not require Java or the Android SDK. -The server-side tests require JUnit 4: +Download the prebuilt server somewhere, and specify its path during the Meson +configuration: - sudo apt install junit4 - - -### Generate a release - -From the project root directory, execute: - - make release - -This will generate the application in `dist/scrcpy/`. + meson x --buildtype release --strip -Db_lto=true \ + -Dprebuilt_server=/path/to/scrcpy-server.jar + cd x + ninja + sudo ninja install ## Run -Plug a device, and from `dist/scrcpy/`, execute: +_At runtime, `adb` must be accessible from your `PATH`._ - ./scrcpy +If everything is ok, just plug an Android device, and execute: + + scrcpy + +It accepts command-line arguments, listed by: + + scrcpy --help + +For example, to increase video bitrate to 8Mbps (default is 4Mbps): + + scrcpy -b 8M + +To limit the video dimensions (e.g. if the device is 2540×1440, but the host +screen is smaller, or cannot decode such a high definition): + + scrcpy -m 1024 If several devices are listed in `adb devices`, you must specify the _serial_: - ./scrcpy 0123456789abcdef + scrcpy -s 0123456789abcdef -To change the default port (useful to launch several `scrcpy` simultaneously): - ./scrcpy -p 1234 +## Shortcuts -Other options are available, check `scrcpy --help`. + | Action | Shortcut | + | ------------------------------------- | -------------:| + | switch fullscreen mode | `Ctrl`+`f` | + | resize window to 1:1 (pixel-perfect) | `Ctrl`+`g` | + | resize window to remove black borders | `Ctrl`+`x` | + | click on `HOME` | `Ctrl`+`h` | + | click on `BACK` | `Ctrl`+`b` | + | click on `APP_SWITCH` | `Ctrl`+`m` | + | click on `VOLUME_UP` | `Ctrl`+`+` | + | click on `VOLUME_DOWN` | `Ctrl`+`-` | + | click on `POWER` | `Ctrl`+`p` | + | turn screen on | _Right-click_ | + | enable/disable FPS counter (on stdout) | `Ctrl`+`i` | + + +## Licence + + Copyright (C) 2018 Genymobile + + Licensed 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.0 + + Unless required by applicable law or agreed to in writing, software + distributed 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 and + limitations under the License. diff --git a/assets/screenshot-debian-600.jpg b/assets/screenshot-debian-600.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a30e15e824f29d86f424d16747ed8adcdbbbfac GIT binary patch literal 45451 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 JKa2VQO#qa9;