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.
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.
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.
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:
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.
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!
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*** que maneiro. Muito show.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10