Удаленное управление Android с помощью Scrcpy

На данный момент в PlayMarket уже существуют условно-бесплатные программы, позволяющие осуществлять удаленное управление устройствами работающими на операционной системе Android. Но мало кто знает о том, что в Android есть интегрированное программное обеспечение Scrcpy, позволяющее получать изображение экрана и осуществлять управление устройством с компьютера по USB или TCP/IP.

Для использования Scrcpy в Android необходимо выполнить несколько настроек, позволяющих выполнить подключение к устройству по USB или IP-адресу.

  1. Активировать режим разработчика и включить отладку по USB;
  2. Настроить ADB-драйвер на подключение по ip-адресу (для удаленного подключения).

Активация режима разработчика и отладки.

Включаем режим разработчика: Настройка/О телефоне. Несколько раз тапаем по номеру сборки. Устройство сообщает нам, что теперь мы стали разработчиками и доступ к секретному меню открыт.

Возвращаемся в Настройки и заходим в меню "Для разработчиков".

Находим и включаем пункт "Отладка по USB"

Настраиваем ADB-драйвер Android для подключения по ip-адресу.

Так как у многих возникают вопросы с root-доступом на android устройствах я решил расмотреть 2 способа переключения adb-драйвера на работу с протоколом tcp:

1 способ настройки требует наличие usb кабеля и установку драйверов для мобильного устройства, но нет необходимости в root-доступе.
2 способ позволяет выполнить настройку без usb-кабеля и установки драйверов телефона на компьютер, но необходимо наличие в Android root-доступа.

В основном на всех мобильных устройствах root-доступ отключен в целях безопасности.

1 способ. Через usb-подключение (не требуется root-доступ).

Подключаем мобильное устройство Android к компьютеру с помощью USB-кабеля и устанавливаем usb-драйвера устройства.

На вопрос Windows как использовать usb-устройство отвечаем "Передача файлов".

На экране телефона необходимо подтвердить разрешение на отладку по USB.

Приступаем к работе с телефоном через ADB.

Скачиваем программу Scrcpy для просмотра экрана и удаленного управления Android с Github https://github.com/Genymobile/scrcpy/releases.

В папке с программой будет файл adb.exe. Его необходимо запустить из командной строки Windows. Информацию о подключенных устройствах получаем следующей командой:

adb devices

Если вы забыли подтвердить разрешение отладки по USB на экране телефона то соединение устанавливаться не будет и получите следующее сообщение:

Переключаем ADB в режим работы TCP

adb tcpip 5555

Теперь телефон можно отключить от usb-кабеля.

2 способ. Через SSH-подключение (требуется root-доступ).

Для взаимодействия по SSH с терминалом Android необходимо установить на мобильное устройство SSH-сервер. Я решил воспользовался программой "SSH/SFTP Сервер -Терминал" от Banana Studo. Установить ее можно через Play Market.

После запуска программы переключаемся в меню "Пользователи" и создаем пользователя для подключения.

Возвращаемся на Главную и нажимаем "Запустить". Здесь так же доступны настройки номера порта и автоматического запуска SSH-сервера.

После запуска SSH-сервера запоминаем ip-адрес Android-устройства и порт, который можно увидеть в правом верхнем углу. У моего устройства ip-адрес 192.168.11.123, порт 2222.

Для подключения к консоли Android с компьютера по SSH воспользуемся программой PUTTY. Скачать ее можно здесь https://putty.org.ru/ .

Вводим ip-адрес, порт и жмем соединиться.

Авторизуемся по SSH с помощью созданного ранее логина и пароля.

Ввод пароля визуально никак не будет отображаться.

Набираем команды, которые переключат ADB-драйвер в режим работы по протоколу TCP. Указываем номер порта, например 5555.

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd 

Команда su переключает консоль в режим работы от имени superuser и предполагает наличие root-доступа.

Подключаемся к телефону с помощью Scrcpy.

Для этого необходимо выяснить текущий ip адрес телефона. Обычно его можно посмотреть так: "Настройки > О телефоне > Статус".

Выполняем команду adb connect, указав ip-адрес телефона и tcp порт adb.

adb connect 192.168.11.123:5555

Теперь, когда соединение с Android установлено запускаем Scrcpy.exe и открывается экран для удаленного управления устройством.

11 thoughts on “Удаленное управление Android с помощью Scrcpy

    1. admin Автор записи

      Согласен. Но teamviewer условно-бесплатное программное обеспечение с некоторыми ограничениями в бесплатной версии. За полноценную программу придется выложить немалую сумму. Для разового использования вполне подходит.
      В моем случае пришлось настраивать тв-приставки для проигрывания аудиопотока, чтобы в последующим иметь постоянную возможность удаленно подключаться к ним и устранять неисправность.

  1. Рафаиль

    Зачем наводить тень на плетень. написано : "Но мало кто знает о том, что в Android есть интегрированное программное обеспечение Scrcpy, позволяющее получать изображение экрана и осуществлять управление устройством с компьютера по USB или TCP/IP."
    Какое же это интегрированное программное обеспечение, если оно неавтономно. Это встроенные функции андроид обеспечивающие другим программам подключения для управления и получения изображения дисплея по USB и TCP/IP.
    Попробую. Только я не вижу где подключение по USB. И разрешение на отладку по USB появляется только при подключении по нему. Или упустили в описании.

  2. Рафаиль

    Ничего не работает. Нажимаю в PUTTY Соединится, и появляется окошко озаглавленное DEVICE_IP - PUTTY сразу с предложением ввести login. Где набирать команды
    su
    setprop service.adb.tcp.port 5555
    stop adbd
    start adbd
    непонятно.
    Если ввожу login, появляется password:, который не вводится клавиатура не активна.
    И по Scrcpy ничего не получается. Наплел с три короба. В двух местах, почему то надо настраивать TCPIP.
    Блоггер пьяный был что ли? Короче, туфта полная

    1. admin Автор записи

      Все правильно, снача необходимо авторизоваться. Я упустил этот момент, исправлю. Для подключения по ssh нужно указать логин и пароль пользователя который указали при настройке ssh-сервера. Ввод пароля в командной строке не показывается, но он вводится. После того как авторизуетесь, набирайте команды.
      В двух местах настраивал tcpip потому-что: 1.нам необходим доступ к консоли андройд, я это сделал через ssh.
      2. через консоль просим adb принимать команды по протоколу tcp на порт 5555.

  3. Рафаиль

    И ещё. При запуске scrcpy.exe получаю:
    d:\ADBtools\scrcpy-win64>scrcpy.exe
    INFO: scrcpy 1.12.1
    ERROR: Failed to execute: [d:\ADBtools\platform-tools\], [push], ["d:\ADBtools\scrcpy-win64\scrcpy-server"], ["/data/local/tmp/scrcpy-server.jar"]
    ERROR: Could not execute "adb push"
    Press any key to continue...

  4. Рафаиль

    Похоже, без рут не получится. «/data/local/tmp/scrcpy-server.jar», должен быть рут доступ.

    1. admin Автор записи

      Когда при подключении по ssh вводите команду su, то получаете права суперпользователя - это и есть root-доступ.

      1. Рафаиль

        Команду SU можно выполнить только на рутированном устройстве, потому чио на не рутированном SU нет и быть не может. Так и пишите в шапке, что устройство должно быть рутировано.

  5. Роман

    Рафаэль всё правильно рассписал
    Я собираюсь взять информацию с телефона с разбитым экраном - этот вариант не пойдёт

    1. admin Автор записи

      Здравствуйте. К сожалению не всегда есть время и возможность вносить своевременные корректировки в публикации. Вам спасибо за комментарии - это стимулирует.
      Действительно в первом варианте публикации рассматривался вариант настройки adb только через ssh подключение и требовал наличия root-доступа. Чтобы настроить работу adb по tcp протоколу без root-доступа, настройку необходимо выполнять через подключение телефона к usb-порту компьютера.
      Но в случае с разбитым экраном вам это всеравно не удастся так как для выполнения отладки по usb на экране телефона появляется запрос на разрешение доступа. Если его не принять, то соединение не будет установлено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *