{"id":43767,"date":"2023-03-12T12:29:50","date_gmt":"2023-03-12T12:29:50","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=43767"},"modified":"2025-06-14T16:43:10","modified_gmt":"2025-06-14T16:43:10","slug":"scrcpy-2-0-install-android-remote-control","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2023\/03\/scrcpy-2-0-install-android-remote-control\/","title":{"rendered":"Install &#038; Set up &#8220;Scrcpy&#8221; Android Remote Control App in Ubuntu"},"content":{"rendered":"<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-43768\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon-600x600.webp 600w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-icon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><\/p>\n<p><b>This is a step by step guide shows how to install and use Scrcpy, the Android screen mirroring and remote control application, in Ubuntu desktop.<\/b><\/p>\n<p>Scrcpy, pronounced &#8220;<b>scr<\/b>een <b>c<\/b>o<b>py<\/b>&#8220;, is a popular free open-source application works on Linux, Windows, and macOS. With it, user can mirror Android screen on computer desktop and control it with mouse, keyboard, and\/or gamepad.<\/p>\n<p>The Android device is connected <strong>either wired with USB cable or wirelessly through TCP\/IP network protocol<\/strong>. Nothing needs to be installed on Android, as it uses <i>Android Debug Bridge<\/i> (ADB) to implement the core features.<\/p>\n<p>Besides mirroring Android screen on your desktop, it also features:<\/p>\n<ul>\n<li>Audio mirroring or forwarding (Android 11+).<\/li>\n<li>Screen\/Audio recording.<\/li>\n<li>Copy and paste in both directions.<\/li>\n<li>Mirroring with Android screen off.<\/li>\n<li>Camera mirroring.<\/li>\n<li>OTG mode, that only run physical keyboard, mouse and gamepad simulation, as if the computer keyboard, mouse and gamepads were plugged directly to the Android device.<\/li>\n<li>Mirror Virtual Display rather than device screen.<\/li>\n<li>Gamepad support.<\/li>\n<li>Keyboard and mouse simulation.<\/li>\n<\/ul>\n<div id=\"attachment_49087\" style=\"width: 620px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/scrcpy-plcm10.webp\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-49087\" class=\"size-large wp-image-49087\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/scrcpy-plcm10-700x475.webp\" alt=\"\" width=\"610\" height=\"414\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/scrcpy-plcm10-700x475.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/scrcpy-plcm10-300x204.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/scrcpy-plcm10-768x521.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2025\/06\/scrcpy-plcm10.webp 1154w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><p id=\"caption-attachment-49087\" class=\"wp-caption-text\">My Android Screen on Ubuntu Desktop<\/p><\/div>\n<p><!--more--><\/p>\n<p><b><i>NOTE: This tutorial is tested and works in Ubuntu 22.04\/Ubuntu 24.04, though it should also work in all current Ubuntu releases.<\/i><\/b><\/p>\n<h3>Step 1. Enable USB Debugging in Android device<\/h3>\n<p>To use the software, you need to first <b>enable USB Debugging Mode in Android<\/b>, unless you need to run only in OGT mode.<\/p>\n<p>1. First, go to <b>Settings<\/b> in Android. Navigate to \u201c<b>About Phone\/Device<\/b>\u201d, and tap on \u201cBuild Number\u201d several times (usually 7 times). It should prompt you something like &#8220;<i>You are now in Developer Mode<\/i>&#8220;.<\/p>\n<p><i>NOTE: there&#8217;s NO security issue or performance loss with developer mode enabled.<\/i><\/p>\n<p>2. Then navigate to &#8220;<b>Developer Options<\/b>&#8221; in Settings menu or &#8216;Additional Settings&#8217; sub-menu, and turn on the option for &#8220;<b>USB Debugging<\/b>&#8220;.<\/p>\n<h3>Step 2. Install adb &amp; Scrcpy<\/h3>\n<p>ADB, stands for <a href=\"https:\/\/developer.android.com\/tools\/adb\" target=\"_blank\" rel=\"noopener\">Android Debug Bridge<\/a>, is versatile command-line tool that lets you communicate with a device. Scrcpy needs adb to make connection between your PC and Android devices.<\/p>\n<h4>a.) Download &amp; Install the official Linux tarball<\/h4>\n<p>Since version 3.0.0, scrcpy offers tarball for Linux on Intel\/AMD platform. <b>To download it<\/b>, just go to Github releases page via link below, then click the link under &#8220;Assets&#8221; section.<\/p>\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-vivid-cyan-blue-to-vivid-purple-gradient-background has-text-color has-background\" href=\"https:\/\/github.com\/Genymobile\/scrcpy\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">Download Scrcpy<\/a><\/div>\n<\/div>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/download-scrcpy.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-47690\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/download-scrcpy-700x478.webp\" alt=\"\" width=\"610\" height=\"417\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/download-scrcpy-700x478.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/download-scrcpy-300x205.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/download-scrcpy-768x524.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/download-scrcpy.webp 1026w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p>After downloaded the tarball, <b>extract<\/b> it, and then right-click on extracted folder and click &#8220;<b>Open in Terminal<\/b>&#8220;.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/open-scrcpy-terminal.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-47691\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/open-scrcpy-terminal-700x445.webp\" alt=\"\" width=\"610\" height=\"388\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/open-scrcpy-terminal-700x445.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/open-scrcpy-terminal-300x191.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/open-scrcpy-terminal-768x488.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/open-scrcpy-terminal.webp 966w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p>In the pop-up terminal window, you may use <code>.\/adb<\/code> and <code>.\/scrcpy<\/code> commands with desired options to start using them directly.<\/p>\n<p>Or, <b>&#8220;install&#8221; them<\/b> by copying or moving them to your PATH! To do so, run commands:<\/p>\n<ul>\n<li>First, create yours own <code>bin<\/code> and <code>icons<\/code> folders, in case them don&#8217;t exist:\n<pre>mkdir -p ~\/.local\/bin<\/pre>\n<pre>mkdir -p ~\/.local\/share\/icons<\/pre>\n<\/li>\n<li>Then, copy or move <code>adb<\/code> and <code>scrcpy<\/code> (client and server) executable files, as well as the icon files to the corresponding folders:\n<pre>cp adb scrcpy scrcpy-server ~\/.local\/bin<\/pre>\n<pre>cp icons.png ~\/.local\/share\/icons\/scrcpy.png<\/pre>\n<\/li>\n<\/ul>\n<p><b>NOTE: The commands above install adb and scrcpy to user&#8217;s local folder that works without admin account.<\/b><br \/>\n<b>If you want to install for system-wide, then add &#8216;<code>sudo<\/code>&#8216; at beginnings, and replace <code>~\/.local<\/code> with <code>\/usr\/local<\/code> for all the 4 commands above.<\/b><\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/install-adb-local.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-47692\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/install-adb-local-700x344.webp\" alt=\"\" width=\"610\" height=\"300\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/install-adb-local-700x344.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/install-adb-local-300x147.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/install-adb-local.webp 709w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p>Finally, <b>verify<\/b> by running <code>adb --version<\/code> and <code>scrcpy --version<\/code> commands to check their versions.<\/p>\n<p><b>NOTE: If <code>~\/.local\/bin<\/code> folder didn&#8217;t exist before, you need to log out and back in. The default profile only adds it into PATH when exists.<\/b><\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/verify-adb-scrcpy.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-47693\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/verify-adb-scrcpy-700x443.webp\" alt=\"\" width=\"610\" height=\"386\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/verify-adb-scrcpy-700x443.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/verify-adb-scrcpy-300x190.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/verify-adb-scrcpy.webp 706w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<h4>b.) Add Scrcpy into start menu (Optional)<\/h4>\n<p>Run <code>scrcpy<\/code> from terminal is more flexible for mirroring your Android screen with different feature options. But, if you just want to start mirroring with default or fixed option, then you may create an app shortcut for it.<\/p>\n<p>First, launch <b>text editor<\/b> and create an empty document.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2017\/04\/open-texteditor.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-43854\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2017\/04\/open-texteditor-300x169.webp\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2017\/04\/open-texteditor-300x169.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2017\/04\/open-texteditor.webp 480w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Then, add following lines:<\/p>\n<pre>[Desktop Entry]\r\nName=scrcpy\r\nGenericName=Android Remote Control\r\nComment=Display and control your Android device\r\nExec=\/bin\/sh -c \"\\\\$SHELL -i -c scrcpy\"\r\nIcon=scrcpy\r\nTerminal=false\r\nType=Application\r\nCategories=Utility;RemoteAccess;\r\nStartupNotify=false<\/pre>\n<p>Finally, press Ctrl+S to open save dialog, and choose save as <code>scrcpy.desktop<\/code> file under <code>.local\/share\/applications<\/code> directory.<\/p>\n<p>NOTE: text colors only apply after saving as .desktop file, and <code>.local<\/code> is hidden folder that needs Ctrl+H to show\/hide in file-chooser dialog.<\/p>\n<p><a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-desktopentry.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-47694\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-desktopentry-700x487.webp\" alt=\"\" width=\"610\" height=\"424\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-desktopentry-700x487.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-desktopentry-300x209.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-desktopentry-768x534.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/scrcpy-desktopentry.webp 1253w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p>After that, you should be able to search &amp; launch scrcpy from start menu a few moments later.<\/p>\n<h3>Step 3. Start &amp; Use Scrcpy<\/h3>\n<p><b>Now, connect your Android device into Ubuntu computer using USB cable. Then, click &#8220;<i>Allow<\/i>&#8221; in Android to confirm the &#8220;Allow USB Debugging&#8221; dialog.<\/b><\/p>\n<p><b>NOTE<\/b>: When connecting Android to PC, select either File Transfer or Media Transfer mode, rather than just charging!! If &#8220;Allow USB Debugging&#8221; prompt does not pop-up, then make sure USB Debugging is enabled, and try &#8220;Revoke USB debugging authorizations&#8221; option under Settings -&gt; Developer Options.<\/p>\n<p>1. First, open terminal (Ctrl+Alt+T) and start adb connection in your favorite mode:<\/p>\n<ul>\n<li>To remote access via USB cable, run command:\n<pre>adb usb<\/pre>\n<\/li>\n<li>Or, remote access using wireless network, run commands instead:\n<pre>adb tcpip 7676<\/pre>\n<pre>adb connect 192.168.0.150:7676<\/pre>\n<p>Here, change port number 7676 and the Android&#8217;s IP address accordingly! <strong><em>For the wireless mode, you can then remove the USB cable after connection established<\/em><\/strong>.<\/li>\n<\/ul>\n<p>2. If the previous steps go well without any error! You can now start scrcpy by searching from either start menu or GNOME overview depends on your desktop environment.<br \/>\n<a href=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/launch-scrcpy-gnome.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-47695\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/launch-scrcpy-gnome-300x155.webp\" alt=\"\" width=\"300\" height=\"155\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/launch-scrcpy-gnome-300x155.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2023\/03\/launch-scrcpy-gnome.webp 549w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<strong>Scrcpy includes many optional features that are NOT enabled by default.<\/strong> You may alternatively start it from terminal window with custom options. For example, play audio on both Android and computer sides:<\/p>\n<pre>scrcpy --audio-source=playback --audio-dup<\/pre>\n<p>Or, start mirroring with rotated screen and enable gamepad input:<\/p>\n<pre>scrcpy --display-orientation=90 --gamepad=uid --audio-source=output<\/pre>\n<p>For more options, either run <code>scrcpy --help<\/code> in terminal or see the <a href=\"https:\/\/github.com\/Genymobile\/scrcpy\" target=\"_blank\" rel=\"noopener\">official project page<\/a>.<\/p>\n<h3>Uninstall scrcpy<\/h3>\n<p>To uninstall scrscpy, simply remove all the files installed through step 2.<\/p>\n<p>And, to remove the executable files, use command in terminal (Ctrl+Alt+T):<\/p>\n<pre>rm ~\/.local\/bin\/adb ~\/.local\/bin\/scrcpy ~\/.local\/bin\/scrcpy-server<\/pre>\n<p>To remove the app icon and shortcut files, use command:<\/p>\n<pre>rm ~\/.local\/share\/icons\/scrcpy.png ~\/.local\/share\/applications\/scrcpy.desktop<\/pre>","protected":false},"excerpt":{"rendered":"<p>This is a step by step guide shows how to install and use Scrcpy, the Android screen mirroring and remote control application, in Ubuntu desktop. Scrcpy, pronounced &#8220;screen copy&#8220;, is a popular free open-source application works on Linux, Windows, and macOS. With it, user can mirror Android screen on computer desktop and control it with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":43768,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[2051],"class_list":["post-43767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-android"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/43767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=43767"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/43767\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/43768"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=43767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=43767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=43767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}