Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB

Neste tutorial, ensinamos como enviar mensagens de WhatsApp no Linux utilizando Shell Script e a ferramenta Android Debug Bridge (ADB). O tutorial abrange a instalação do ADB, como conectar o celular ao sistema operacional e o uso de um script Shell personalizado para interagir com o aplicativo WhatsApp. Além disso, explicamos a importância de mapear as coordenadas de toque e deslize de acordo com a resolução do dispositivo e como fazer isso usando um editor de imagens.

[ Hits: 3.608 ]

Por: Fábio Berbert de Paula em 24/03/2023 | Blog: https://fabio.automatizando.dev


Introdução



Neste tutorial, você aprenderá a enviar mensagens de WhatsApp no Linux usando Shell Script e a ferramenta Android Debug Bridge (ADB). A ADB é uma ferramenta que permite aos desenvolvedores se comunicarem com dispositivos Android.

O tutorial abrange a instalação do ADB, como conectar seu celular ao sistema operacional e como utilizar o script Shell abaixo. Vale lembrar que as coordenadas de toque (tap) e deslize (swipe) variam de acordo com a resolução de cada dispositivo, então será necessário tirar prints de cada tela e mapear as coordenadas.

Instalando o ADB

No Debian/Ubuntu e derivados, instale o ADB executando o seguinte comando:

sudo apt install adb

Em outras distribuições Linux, verifique a documentação oficial ou use o gerenciador de pacotes específico da distribuição.

Conectando seu celular ao sistema operacional

Para conectar seu celular ao sistema operacional, siga estas etapas.

Ative a depuração USB no seu celular, indo em:

Configurações > Sobre o telefone > Número da versão (toque 7 vezes para ativar as opções de desenvolvedor) > Opções do desenvolvedor > Depuração USB

Conecte seu celular ao computador usando um cabo USB.

No terminal, digite:

adb devices

para listar os dispositivos conectados. Se o seu celular estiver na lista, está pronto para continuar.

Aqui está o script comentado para melhor entendimento:

#!/bin/bash

ADB="/usr/bin/adb" # Define o caminho do ADB
ID="192.168.0.22:5555" # ID do dispositivo
BUSCA=$1 # Nome do contato ou grupo
BUSCA=`echo ${BUSCA} | iconv -f UTF-8 -t ASCII//TRANSLIT` # Remove acentos
FRASE=${@:2} # Mensagem a ser enviada
FRASE=$(echo ${FRASE} | iconv -f UTF-8 -t ASCII//TRANSLIT) # Remove acentos

# Verifica se a tela está ligada:
if ! $ADB -s $ID shell dumpsys window | grep 'mDreamingLockscreen=true'
then
  echo "tela ligada, abortar"
  exit
fi

# Desbloqueia o celular
$ADB -s $ID shell input keyevent 26 # Pressiona o botão Power
sleep 0.5
$ADB -s $ID shell input swipe 200 2000 200 1500 100 # Desliza para desbloquear
sleep 0.5
$ADB -s $ID shell input text "000" # Digita a senha / PIN de desbloqueio da tela
sleep 0.5

# Fecha todas as janelas e abre o WhatsApp
$ADB -s $ID shell input keyevent KEYCODE_HOME # Pressiona o botão Home
sleep 1
$ADB -s $ID shell input tap 235 2250 # Toca o botão Janelas
sleep 1
$ADB -s $ID shell input tap 500 1800 # Fecha todas as janelas
sleep 1
$ADB -s $ID shell input tap 400 2050 # Abre o WhatsApp
sleep 3

$ADB -s $ID shell input tap 900 150 # Toca no ícone da lupa (pesquisa)
sleep 1

$ADB -s $ID shell input text "${BUSCA}" # Digita o nome do contato ou grupo na pesquisa
sleep 1.5

$ADB -s $ID shell input tap 475 350 # Toca no resultado da pesquisa
sleep 2

$ADB -s $ID shell input tap 525 2140 # Toca na caixa de texto para escrever a mensagem
echo "clicar na caixa de texto"
sleep 2

# Digita a mensagem palavra por palavra, adicionando espaços entre as palavras
for PALAVRA in $FRASE
do
  $ADB -s $ID shell input text "${PALAVRA}"
  $ADB -s $ID shell input keyevent KEYCODE_SPACE
done

sleep 3

# Pressiona o botão Enter para enviar a mensagem
$ADB -s $ID shell input keyevent KEYCODE_ENTER
sleep 2

# Fecha o aplicativo e bloqueia o celular
$ADB -s $ID shell input keyevent KEYCODE_HOME
sleep 1

$ADB -s $ID shell input keyevent KEYCODE_MENU
sleep 1

$ADB -s $ID shell input tap 500 1800 # Fecha todas as janelas
sleep 1

$ADB -s $ID shell input keyevent KEYCODE_HOME
sleep 1

$ADB -s $ID shell input keyevent 26 # Pressiona o botão Power

ATENÇÃO: o script acima não irá funcionar para você, a menos que possua um celular com resolução de 3080x1440 pixels e que tenha o WhatsApp instalado na tela inicial. Para adaptar o script para seu celular, siga as instruções abaixo.

Mapeando coordenadas de toque e deslize

As coordenadas de toque (tap) e deslize (swipe) no script podem variar de acordo com a resolução do seu dispositivo. Para encontrar as coordenadas corretas, siga estas etapas:

1. Tire uma captura de tela do seu celular pressionando os botões de volume para baixo e liga/desliga simultaneamente.

2. Transfira a captura de tela para o seu computador.

3. Abra a imagem em um editor de imagens que mostre as coordenadas do cursor, como o GIMP.

4. Passe o cursor sobre os elementos da interface que você deseja interagir e anote as coordenadas X e Y.

5. Substitua as coordenadas no script com os valores que você obteve.

Agora você deve ter um script shell personalizado que envia mensagens de WhatsApp no Linux usando o ADB. Lembre-se de ajustar as coordenadas de toque e deslize conforme necessário para o seu dispositivo.

Para executar o script, basta digitar o nome do script no terminal, seguido do nome do contato ou grupo e da mensagem a ser enviada:

./enviar-whatsapp.sh "Nome do contato" "Mensagem a ser enviada"

O nome do contato não deve conter espaços, fica a sugestão para melhoria do script.

Publiquei um reel no Instagram mostrando o script em ação. Confira:
Se você gostou deste tutorial, deixe um comentário e compartilhe com seus amigos. Se tiver alguma dúvida, deixe um comentário também.

Até a próxima!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Capturando tela do Android usando shell script

Como jogar poker no Full Tilt Poker pelo Linux

Personalizando seu lilo no Debian

Como criar um bot para curtir e comentar perfis do Instagram

cpulimit - Limitando o uso da CPU por processo

Leitura recomendada

Redundância de link de internet

Kit de scripts para backup (Full + Diferencial + Samba + Rede)

Executando backup do MySQL e enviando por FTP

Script GitPratico para criar repositórios remotos sem logar no GitHub

Criando Autoridades Certificadores e Certificados de Testes no Linux

  
Comentários
[1] Comentário enviado por maurixnovatrento em 25/03/2023 - 16:01h


P*** que maneiro. Muito show.

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

[2] Comentário enviado por thatininge em 27/03/2023 - 05:09h

Very informative post , keep sharing like this. https://www.connectebt.us/

[3] Comentário enviado por Carlos_Cunha em 27/03/2023 - 12:07h

Que massa man!!!
Parabéns


#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#

[4] Comentário enviado por SamL em 01/04/2023 - 21:11h

Legal! Agora que vi esse artigo, e tava com tantos dias na home.


https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts