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: 15.644 ]

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

Escrevendo em arquivos PDF

Editando trilhas de GPS no formato de arquivo GPX no Linux

Editando PDF com Inkscape

Kindle com agregador RSS através do Calibre

Agendando tarefa de gravação de vídeo com o mencoder e gnome-schedule

Leitura recomendada

Clustering em Casa

Podman - um mecanismo de contêiner sem daemon

Clonando HDs na rede

WebCDWrite: O incrível serviço de gravação de CD-R sob demanda via HTTP

Servidor de monitoramento Nagios

  
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 .




[6] Comentário enviado por klebes-santos em 05/03/2025 - 22:55h

Neste caso teria alguma sugestão que fizesse esta premissa, mas sem o uso de ADB no android?

[7] Comentário enviado por andreuebe em 06/03/2025 - 11:38h


[6] Comentário enviado por klebes-santos em 05/03/2025 - 22:55h

Neste caso teria alguma sugestão que fizesse esta premissa, mas sem o uso de ADB no android?


Tente esta outra possibilidade aqui:
https://www.vivaolinux.com.br/artigo/Compartilhando-a-tela-do-Computador-no-Celular-via-Deskreen/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts