Remotely control Android smartphone from Ubuntu 20.04 LTS without rooting
Requirement
- The Android device requires at least API 21 (Android 5.0).
- Make sure you enabled adb debugging on your device(s).
- On some devices, you also need to enable an additional option to control it using keyboard and mouse.
- adb be installed using sudo
$ apt install android-tools-adb
.
Tool
scrcpy
This application provides display and control of Android devices connected on USB (or over TCP/IP). It does not require any root access. It works on GNU/Linux, Windows and macOS.
It focuses on:
- lightness (native, displays only the device screen)
- performance (30~60fps)
- quality (1920×1080 or above)
- low latency (35~70ms)
- low startup time (~1 second to display the first image)
- non-intrusiveness (nothing is left installed on the device)
Install
Ubuntu (20.04):
$ apt install scrcpy
A Snap package is available: scrcpy. Or you can search scrcpy in Ubuntu Software and install it.
Run
This application provides two options to connect your smartphone.
You can choose 1 in 2 ways below.
Plug an Android device, and execute
$ scrcpy
It accepts command-line arguments, listed by:
$ scrcpy --help
Connected over TCP/IP
You must follow requirement on top of this guide to ensure everything will work well.
Step 1: Make sure you turn on Developer mode in your Samsung smartphone.
Step 2: Turn on USB debugging in Developer options.
Step 3: Connect your Android device and adb host computer to a common Wi-Fi network accessible to both. Beware that not all access points are suitable; you might need to use an access point whose firewall is configured properly to support adb.
Step 4: Connect the device to the host computer with a USB cable.
Step 5: Set the target device to listen for a TCP/IP connection on port 5555.
$ adb tcpip 5555
restarting in TCP mode port: 5555
If you got an error:
$ adb tcpip 5555
error: no devices/emulators found
Make sure you followed step 1 and 2 above. Or you can check the solution in Stackoverflow.
Step 6: Disconnect the USB cable from the target device.
Step 7: Find the IP address of the Samsung device. For example, on a device, you can find the IP address at Settings > About phone > Status > IP address.
Step 8: Connect to the device by its IP address.
$ adb connect device_ip_address:5555
Step 9: Confirm that your host computer is connected to the target device.
$ adb devices
List of devices attached
device_ip_address:5555 device
Step 10: Connect Samsung device
$ scrcpy
Now, you are good to go!
Bonus:
You can read more scrcpy here.