
androidqf (Android Quick Forensics) ajuda a reunir rapidamente evidências forenses de dispositivos Android, a fim de identificar possíveis vestígios de comprometimento.
androidqf (Android Quick Forensics) é uma ferramenta portátil para simplificar a aquisição de dados forenses relevantes de dispositivos Android.
androidqf tem como objetivo fornecer um utilitário simples e portátil multiplataforma para adquirir rapidamente dados de dispositivos Android. É semelhante em funcionalidade ao mvt-android. No entanto, ao contrário do MVT, o androidqf foi projetado para ser facilmente usado também por usuários não especializados em tecnologia. Os dados extraídos pelo androidqf podem ser analisados com o MVT.
Este repositório é um fork do androidqf mantido pelo Security Lab da Anistia Internacional. A ferramenta androidqf foi originalmente desenvolvida por Claudio Guarnieri.

Binários executáveis para Linux, Windows e Mac devem estar disponíveis na última versão. Caso você tenha problemas para executar o binário, talvez queira compilá-lo você mesmo.
Este projeto usa o GoReleaser para compilações e lançamentos automatizados. Para compilar localmente:
Instale o GoReleaser:
go install github.com/goreleaser/goreleaser@latest
Execute uma compilação de snapshot (sem publicação):
./build_locally.sh
Isso criará binários para todas as plataformas no diretório dist/, incluindo um binário universal para macOS que funciona tanto em Intel quanto em Apple Silicon.
Você ainda pode usar a abordagem tradicional do Makefile. Você precisará do Go 1.23+ instalado, junto com make, git, unzip e wget. O AndroidQF inclui um collector compilado de forma cruzada que é executado no dispositivo alvo para extrair informações forenses relevantes de forma mais confiável.
Primeiro compile o módulo collector:
make collector
Em seguida, compile o AndroidQF para a plataforma de sua escolha:
make linux
make darwin
make windows
Esses comandos gerarão binários em uma pasta build/.
Pacotes de distribuição podem optar por não incorporar os binários ADB e collector empacotados, compilando com a tag de compilação unbundle:
go build -tags unbundle -o build/
Quando esta tag está ativada, o androidqf espera:
adb esteja disponível no PATH do sistema./usr/lib/androidqf/android-collector/ usando os nomes esperados pelo androidqf, como collector_arm e collector_arm64.Os empacotadores podem remover os ativos binários empacotados de assets/ antes de compilar, mas o diretório do pacote assets/ e seus arquivos fonte Go devem permanecer presentes. A compilação unbundle ainda importa o pacote assets, e a compilação falhará se todo o diretório assets/ for excluído.
A imagem de contêiner da versão é publicada no GitHub Container Registry:
docker pull ghcr.io/mvt-project/androidqf:latest
Para coletar de um dispositivo Android conectado via USB no Linux, passe o barramento USB e monte um diretório de saída:
docker run --rm -it --privileged \
-v /dev/bus/usb:/dev/bus/usb \
-v "$(pwd)/output:/output" \
ghcr.io/mvt-project/androidqf:latest -fast -output /output
Você também pode compilar a imagem localmente para uma versão lançada:
docker build --build-arg VERSION=1.8.3 -t androidqf .
[!TIP] Consulte Arquivos de aquisição para o formato do arquivo, hashes de integridade, criptografia e manipulação de arquivos grandes. Para um dicionário dos arquivos coletados, consulte o dicionário de saída do AndroidQF do SocialTIC de terceiros.
Antes de iniciar o androidqf, você precisa ter o dispositivo Android alvo conectado ao seu computador via USB e ter ativado a depuração USB. Consulte a documentação oficial sobre como fazer isso, mas lembre-se de que telefones Android de diferentes fabricantes podem exigir etapas de navegação diferentes das padrão.
Uma vez ativada a depuração USB, você pode prosseguir com a inicialização do androidqf. Ele primeiro tentará se conectar ao dispositivo através da ponte USB, o que deve fazer com que o telefone Android solicite que você autorize manualmente as chaves do host. Certifique-se de autorizá-las, idealmente permanentemente, para que a solicitação não apareça novamente.
Agora o androidqf deve estar em execução e criando um arquivo zip de aquisição no seu diretório de trabalho atual, ou no diretório fornecido com -output. Em algum momento da execução, o androidqf solicitará algumas escolhas: essas solicitações pausarão a aquisição até que você faça uma seleção, portanto, preste atenção.
Os seguintes dados podem ser extraídos:
| Dado | Opcional? | Caminho(s) de saída |
|---|---|---|
| Um backup completo ou backup de mensagens SMS e MMS. | ✅ | backup.ab |
| A saída do comando shell getprop, fornecendo informações de compilação e parâmetros de configuração. | getprop.txt | |
| Todas as configurações do sistema | settings_*.txt | |
| A saída do comando shell ps, fornecendo uma lista de todos os processos em execução. | processes.txt | |
| A lista de serviços do sistema. | services.txt | |
| Uma cópia de todos os logs do sistema. | logs/, logcat.txt | |
| A saída do comando shell dumpsys, fornecendo informações de diagnóstico sobre o dispositivo. | dumpsys.txt | |
| Uma lista de todos os pacotes instalados e arquivos de distribuição relacionados. | packages.json | |
| Cópia de todos os APKs instalados ou apenas daqueles não marcados como aplicativos do sistema. | ✅ | apks/* |
| Logs de registro de intrusão. Contém dados privados, como histórico de navegação. | ✅ | intrusion_logs/* |
| Uma lista de arquivos no sistema. | files.json | |
| Uma cópia dos arquivos disponíveis em pastas temporárias. | tmp/* | |
| Um relatório de bug contendo logs do sistema e específicos de aplicativos, sem dados privados incluídos. | bugreport.zip |
Toda aquisição também contém acquisition.json, command.log quando a saída de log foi produzida, e hashes.csv. A lista de hashes registra o resumo SHA-256 de cada entrada de arquivo simples precedente e não inclui a si mesma. As pulls de dispositivo com falha não são registradas como entradas do arquivo. Consulte Arquivos de aquisição para detalhes.
As seguintes opções são apresentadas ao executar uma coleta do androidqf:
Would you like to take a backup of the device?
...
? Backup:
▸ Only SMS
Everything
No backup
Essas opções referem-se aos dados coletados do dispositivo executando o comando adb backup em segundo plano. Se No backup for selecionado, o comando adb backup não é executado.