Como Extrair Dados Ocultos e Telemetria do Android via ADB Limpo
Quando recebo um dispositivo de teste com um bug instável ou comportamento suspeito, a janela padrão do Logcat do Android Studio geralmente não é suficiente. Preciso capturar rapidamente um snapshot do sistema: quais contas estão vinculadas, quantas vezes o telefone foi reiniciado, o que está rodando em serviços em segundo plano e como a bateria foi consumida.
A maioria das pessoas recorre imediatamente a direitos de root ou baixa utilitários GUI pesados. Na realidade, o Android Debug Bridge (ADB) padrão pode gerar grandes quantidades de dados sem software de terceiros. O projeto AndroidForensics, criado pelo desenvolvedor Douglas Fresh Habian, reúne todos esses comandos em um único guia de referência e dois scripts Bash prontos para uso.
O Que Tem Dentro do Repositório
Essencialmente, o repositório é uma folha de referências e um conjunto de scripts de automação para forense e diagnóstico profundo de dispositivos Android. O projeto foca em trabalhar com dispositivos sem direitos de root, embora alguns comandos de baixo nível revelem mais em builds de engenharia.
O repositório contém dois arquivos executáveis principais:
extract.sh— script principal de triagem e coleta de dados do usuário. Ele extrai propriedades do sistema, configuração de rede, listas de pacotes instalados, serviços ativos e tenta ler content providers.dumpsys.sh— coletor de telemetria do sistema. O script consulta mais de duas dezenas de subsistemas internos do Android através do utilitáriodumpsyse organiza os logs em arquivos de texto separados.
Cada execução cria uma pasta separada com um timestamp, onde os resultados de cada comando individual são armazenados de forma organizada. Isso elimina a desordem no terminal e ajuda a capturar imediatamente o estado do sistema em um momento específico.
Comandos Úteis Para Adicionar ao Seu Arsenal
O README inclui tanto chamadas básicas de getprop quanto one-liners não óbvios com parsing de saída via grep, sed e awk.
Coletando Dados de Contas e Endereços de Email
Através do gerenciador de contas, você pode descobrir rapidamente a quais serviços o telefone está vinculado e coletar todos os emails registrados:
adb shell dumpsys account | grep -i com.*$ -o | cut -d' ' -f1 | cut -d} -f1 | grep -v com$
Para buscar endereços de email, o autor sugere uma regex diretamente no dump do sistema:
adb shell dumpsys | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"
Este comando é útil quando você precisa verificar rapidamente se um testador anterior esqueceu de fazer logout de contas corporativas em um banco de testes compartilhado.
Contador de Reinicializações e Linha do Tempo do Sistema
Às vezes um bug só se reproduz após uma reinicialização a frio, mas o usuário afirma que o telefone nunca foi desligado. Você pode verificar isso através das configurações globais:
adb shell settings list global | grep "boot_count=" | cut -d= -f2 | head -n 1 | xargs echo "Booted:" | sed 's/$/ times/g'
E se você precisar entender o panorama geral do consumo de recursos e atividade dos apps ao longo do tempo, os comandos de estatísticas são úteis:
adb shell dumpsys usagestats
adb shell dumpsys batterystats
adb shell settings list system
Acessando Content Providers
Para extrair contatos, histórico de chamadas e mensagens, o script faz consultas diretas aos URIs do sistema:
# Список контактов и номеров телефонов
adb shell content query --uri content://contacts/phones/ --projection display_name:number
# Журнал звонков
adb shell content query --uri content://call_log/calls
# База входящих и исходящих SMS
adb shell content query --uri content://sms/
Aqui há uma limitação técnica importante. A partir do Android 11, o Google endureceu significativamente o modelo de segurança. Em versões mais recentes do SO, consultar diretamente content://sms/ ou contatos via ADB sem permissões especiais ou root resultará em erro de acesso. No entanto, em dispositivos de teste mais antigos (Android 9–10) ou builds personalizados de desenvolvedor, esses comandos continuam funcionando de forma confiável.
Como a Automação Funciona
Se executar comandos manualmente se torna tedioso, scripts automatizam a rotina. Para começar, basta clonar o repositório e conceder permissão de execução:
git clone https://github.com/DouglasFreshHabian/AndroidForensics.git
cd AndroidForensics
chmod +x extract.sh dumpsys.sh
Quando ./extract.sh é iniciado, o script primeiro verifica se o adb está instalado, testa os dispositivos conectados e começa a coleta.
Durante a operação, extract.sh executa várias tarefas em paralelo:
- Cria um diretório chamado
ADB_Report_20251025_163200. - Consulta propriedades do dispositivo (
ro.product.model,ro.build.version.release,ro.serialno). - Captura um snapshot das últimas linhas do log do sistema via
adb logcat -d. - Em segundo plano, inicia a geração de um relatório completo
adb bugreportsem bloquear o terminal. - Ao finalizar, exibe uma tabela resumida colorida com os tamanhos de todos os arquivos salvos.
O segundo script, dumpsys.sh, foca exclusivamente no diagnóstico de serviços do sistema. Ele consulta sequencialmente meminfo, wifi, power, location, sensorservice, netstats e mais 15 serviços, salvando cada saída em wifi.txt, meminfo.txt e assim por diante. Se um serviço estiver indisponível, o script o marca como travado e continua a operação.
Onde Isso É Útil na Prática
O projeto tem várias áreas de aplicação óbvias:
- QA e testes de apps mobile. O script
dumpsys.shajuda a coletar o contexto completo do estado do dispositivo em poucos segundos antes de registrar um relatório de bug complexo sobre vazamentos de memória ou consumo de energia. - Auditoria de dispositivo antes da transferência. Se um conjunto de dispositivos de teste circula pela equipe, é útil executar rapidamente um script de limpeza e verificação para garantir que nenhuma conta de outra pessoa ou processos pesados em segundo plano permaneçam no smartphone.
- Triagem inicial de incidentes. Especialistas de segurança obtêm uma forma rápida de capturar um dump do estado do smartphone sem instalar APKs suspeitos e sem fazer alterações desnecessárias no sistema de arquivos.
O AndroidForensics não tenta reinventar a roda ou substituir pacotes forenses completos como o Autopsy. O ponto forte do repositório está em outro lugar—ele pega os utilitários de linha de comando padrão do Android, empacota-os em um formato legível e economiza tempo na escrita manual de pipelines bash.
Se você conecta regularmente smartphones Android ao seu computador para depuração, testes ou análise de segurança, adicione esses scripts ao seu toolkit local. Eles iniciam em segundos e frequentemente encontram coisas que escapam durante uma olhada rápida na GUI.
Projetos relacionados