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

Por: Fábio Berbert de Paula em 24/03/2023 | Blog: https://www.instagram.com/alexabolada/


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

Convertendo Texto em Fala com Python e pyttsx3

Viva o Linux finalmente de volta!

Transforme seu smartphone em uma webcam no Debian, Ubuntu e derivados com Iriun Webcam

Resumo do VOL DAY I

Alexa e o ranking dos principais sites Linux da comunidade brasileira

Leitura recomendada

Desligar servidores quando o nobreak entra na bateria e envio de aviso por e-mail

Alta disponibilidade de links

Assinatura de documentos PDF em lote via Bash

Yad 0.16 - Eu quero sempre mais de ti

pam_mount e CiD - Gerenciamento centralizado dos mapeamentos de unidades de rede no Ubuntu

  
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