From 8ace3d17817196afdc5e440aa7ac296d996cb349 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 -> 44944 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..20000aa9ba346e5fb857a25355e95224d35179e7 GIT binary patch literal 44944 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 nfs6lzO!^mO^#8c6!63w7YwVzZkwW