Espelhando a tela do smartphone Android no Linux via Wi-Fi (ADB + SCRCPY)

Este artigo mostra como fazer, de maneira simples, o espelhamento da tela do seu celular na tela do seu Desktop ou Notebook usando os programas ADB e SCRCPY.

[ Hits: 11.717 ]

Por: andre uebe em 26/01/2023


Configurando o ADB para acesso via Wi-Fi



2.1. Instalando os programas

Para usuários de distribuição Linux que utilizam o repositório Debian (Debian, Ubuntu, Mint etc), os comando a serem executados para instalação do ADB e do SCRCPY são apresentados a seguir. Para usuários que utilizam outras distribuições, deve-se utilizar o comando equivalente de cada uma, para a instalação dos referidos programas, ou utilizar o repositório Snap, conforme instruções aqui):

sudo apt-get install adb && sudo apt-get install scrcpy

Após a instalação, será necessário fazer uma configuração inicial do ADB (a seguir), utilizando o cabo USB. Depois disso, a conexão poderá ocorrer via rede Wi-Fi.

Outro ponto importantíssimo é que o seu smartphone e o seu computador devem estar conectados na mesma rede Wi-Fi!

2.2. Configurando o ADB

Se a opção "Depuração USB" do smartphone não for previamente ativada, não será possível executar esta etapa. Para ativar a "Depuração USB":

a) acesse a opção "Configurações" (ícone de engrenagem) do seu smartphone Android e acesse "Opções de Desenvolvedor".
Caso não esteja visualizando esta opção, habilite-a manualmente seguindo as instruções disponíveis aqui.

b) Ative a opção "Depuração USB"
Em seguida, desbloqueie a tela do seu smartphone e conecte-o ao computador via cabo USB e siga os passos a seguir: a) No Smartphone, autorize a "Depuração USB" na caixa que aparecerá assim que conectar o cabo com a "Depuração USB" já ativada. 3---Depuracao-USB.jpg b) Ainda no smartphone, verifique qual o endereço IP foi atribuído ao seu dispositivo na rede Wi-Fi (Configurações -> Sobre o Telefone -> Status -> Endereço IP):
c) No Linux, abra o terminal (linha de comando - pode abrir com as teclas ctrl+alt+T)

d) Ative o servidor adb, digitando (seu smartphone deverá aparecer listado):

adb devices

e) Em seguida, habilite no seu smartphone, o ADB para funcionar sobre o protocolo TCP/IP do Wi-Fi (pela porta 5555), digitando:

adb tcpip 5555

f) Uma vez habilitada a conexão via Wi-Fi (etapa anterior), é hora de conectar o smartphone ao computador usando a porta 5555. Nesta etapa, é importante ter em mãos o endereço IP do smartphone, obtido na etapa b. Substitua <IP> no comando a seguir pelo endereço IP obtido:

adb connect <IP do smartphone>:5555

g) Em tese, seu smartphone já está remotamente conectado ao seu computador. Mas vamos manter o cabo ainda conectado para o teste final!

Fonte: Open Source Project - Scrcpy now works wirelessly

Página anterior     Próxima página

Páginas do artigo
   1. O que são ADB e SCRCPY
   2. Configurando o ADB para acesso via Wi-Fi
   3. Espelhando a tela do Smartphone com o SCRCPY
Outros artigos deste autor

Dispositivo de Captura de Vídeo Somagic EasyCAP DC60/EasyCAP002 no GNU/Linux

Substituindo a partição Recovery do Android via ADB

Turbinando sua apresentação no LibreOffice Impress

Configurando impressoras no programa do SERPRO / Emulador 3270

Configurando a placa de rede wireless RTL8187 no Ubuntu 9.04

Leitura recomendada

O poder do SSH

Acessando partições ReiserFS pelo Windows

Formatos de áudio sem perda sonora (lossless)

Backup remoto usando SSH

Easter Eggs em Linux

  
Comentários
[1] Comentário enviado por fabio em 26/01/2023 - 06:28h

Ótimo artigo! Vou deixar minha contribuição aqui.

Usando Debian 11 o scrcpy está na versão 1.17, ao executar dá o seguinte erro:

$ scrcpy
INFO: scrcpy 1.17 <https://github.com/Genymobile/scrcpy>
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 0.8 MB/s (34015 bytes in 0.042s)
[server] INFO: Device: samsung SM-S908E (Android 13)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 470.161.03
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2312
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.reflect.InvocationTargetExceptionWARN: Device disconnected

at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:75)
at com.genymobile.scrcpy.ScreenEncoder.setDisplaySurface(ScreenEncoder.java:243)
at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:91)
at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:60)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:80)
at com.genymobile.scrcpy.Server.main(Server.java:252)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:378)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:73)
... 7 more
Caused by: java.lang.IllegalArgumentException: displayToken must not be null
at android.view.SurfaceControl$Transaction.setDisplaySurface(SurfaceControl.java:3693)
at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2489)
... 9 more
WARN: Killing the server...

Para resolver foi necessário remover essa versão defasada e instalar uma versão superior a 1.18:

$ sudo apt remove scrcpy

Instale as dependências para compilar a última release do GitHub:

$ sudo apt install ffmpeg libsdl2-2.0-0 adb wget gcc git pkg-config meson ninja-build libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libusb-1.0-0 libusb-1.0-0-dev

Em seguida:

$ git clone https://github.com/Genymobile/scrcpy
$ cd scrcpy
$ ./install_release.sh

E agora instale o scrcpy:

$ ./install_release.sh

Fontes:
https://github.com/Genymobile/scrcpy/issues/2129
https://github.com/Genymobile/scrcpy/blob/master/BUILD.md#simple

[2] Comentário enviado por maurixnovatrento em 26/01/2023 - 11:47h


Bom artigo;

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[3] Comentário enviado por andreuebe em 29/01/2023 - 12:27h


[1] Comentário enviado por fabio em 26/01/2023 - 06:28h

Ótimo artigo! Vou deixar minha contribuição aqui.

Usando Debian 11 o scrcpy está na versão 1.17, ao executar dá o seguinte erro:

$ scrcpy
INFO: scrcpy 1.17 &lt;https://github.com/Genymobile/scrcpy&gt;
/usr/share/scrcpy/scrcpy-server: 1 file pushed. 0.8 MB/s (34015 bytes in 0.042s)
[server] INFO: Device: samsung SM-S908E (Android 13)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 470.161.03
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2312
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.reflect.InvocationTargetExceptionWARN: Device disconnected

at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:75)
at com.genymobile.scrcpy.ScreenEncoder.setDisplaySurface(ScreenEncoder.java:243)
at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:91)
at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:60)
at com.genymobile.scrcpy.Server.scrcpy(Server.java:80)
at com.genymobile.scrcpy.Server.main(Server.java:252)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:378)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:73)
... 7 more
Caused by: java.lang.IllegalArgumentException: displayToken must not be null
at android.view.SurfaceControl$Transaction.setDisplaySurface(SurfaceControl.java:3693)
at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2489)
... 9 more
WARN: Killing the server...

Para resolver foi necessário remover essa versão defasada e instalar uma versão superior a 1.18:

$ sudo apt remove scrcpy

Instale as dependências para compilar a última release do GitHub:

$ sudo apt install ffmpeg libsdl2-2.0-0 adb wget gcc git pkg-config meson ninja-build libsdl2-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libusb-1.0-0 libusb-1.0-0-dev

Em seguida:

$ git clone https://github.com/Genymobile/scrcpy
$ cd scrcpy
$ ./install_release.sh

E agora instale o scrcpy:

$ ./install_release.sh

Fontes:
https://github.com/Genymobile/scrcpy/issues/2129
https://github.com/Genymobile/scrcpy/blob/master/BUILD.md#simple



Obrigado, Fábio, por este importante complemento!

Lembrando aos leitores que se o scrcpy foi instalado via snap, deverá ser removido com 'sudo snap remove' , em vez de 'sudo apt remove'

Não conhecia este comando 'git clone'. Adorei!!

[4] Comentário enviado por pebadve085 em 17/02/2023 - 03:47h

Hello
could you guys share more information for this if possible .
https://apps.apple.com/us/app/dinar-guru-dinarguru-app/id1581089419

[5] Comentário enviado por andreuebe em 18/02/2023 - 07:21h

Hello

How could we help you?


[4] Comentário enviado por pebadve085 em 17/02/2023 - 03:47


Hello
could you guys share more information for this if possible .





Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts