ADB Friend
Uma ferramenta de linha de comando para desenvolvedores gerenciarem dispositivos Android via ADB.
Documentação
ADB Friend
ADB Friend é uma pequena ferramenta de linha de comando que ajuda você a gerenciar seu dispositivo Android via ADB. Seus recursos foram projetados principalmente para desenvolvedores, mas pode ser útil para todos.
Recursos
- Sincronize arquivos do seu computador para o seu telefone
- Projetado para dados de teste, ignorando arquivos existentes no dispositivo
- Configure o dispositivo para testes
- Desative animações, ative toques,...
- Desinstale aplicativos por padrão
- Comando de pacotes
- Aplique o sinalizador immersive a todos os pacotes que correspondam ao glob, force-stop, limpe dados e cache do aplicativo
- Ferramentas extras
- adb-speed (Ajuda a identificar cabos de baixa qualidade)
- Servidor Model Context Protocol MCP
Instalação
A instalação pode ser realizada usando Homebrew. Primeiro, você precisará do tap personalizado:
brew tap mikepenz/tap
Em seguida, instale o CLI do AdbFriend:
brew install mikepenz/tap/adbfriend
Alternativamente, você pode baixar binários pré-compilados na página de releases.
Uso
ADB Friend é uma ferramenta de linha de comando que pode ser usada em um terminal.
# Get started with the \`--help\` command, to get information and an overview on the various features offered.
adbfriend --help
Servidor MCP
ADB Friend (desde a versão 1.4.0) também fornece um Servidor Model Context Protocol (MCP), que pode ser configurado em ferramentas populares de IA como Claude Desktop, GitHub Copilot, RayCast,...
Configuração
A localização e os detalhes do arquivo de configuração dependerão da ferramenta utilizada. Abaixo, um exemplo para Claude Desktop.
{
"mcpServers": {
"adb-friend": {
"command": "/opt/homebrew/bin/adbfriend",
"args": [
"mcp",
"server"
],
"env": {
"ANDROID_HOME": "/Users/mikepenz/Development/android/sdk"
}
}
}
}
[!important] Importante Se
ANDROID_HOMEnão for fornecido, oadb-serverdeve ser iniciado manualmente na sua máquina. Caso contrário, uma exceção de conexão será lançada.
Depurar o Servidor
Você pode usar o npx @modelcontextprotocol/inspector para depurar o servidor após iniciá-lo.
# Install and run inspector in your terminal
npx @modelcontextprotocol/inspector
Em seguida, abra o site (com a URL fornecida no terminal). Inicie o mcp server usando IntelliJ ou o comando real.
# Default port is \`3001\`
adbfriend mcp server --sse true
Ferramentas suportadas
| Nome da Ferramenta | Descrição |
|---|---|
| check-adb-speed | Verifica a velocidade da conexão USB de um dispositivo Android para o serial fornecido. |
| clear-installed-package | Limpa os dados do pacote para os nomes de pacotes fornecidos em um dispositivo Android. |
| set-immersive-full-for-package | Define o sinalizador 'immersive-full' para os nomes de pacotes fornecidos em um dispositivo Android. |
| force-stop-process | Força a interrupção dos nomes de pacotes fornecidos em um dispositivo Android. |
| uninstall-package | Desinstala os nomes de pacotes fornecidos em um dispositivo Android. |
| get-connected-devices | Recupera informações sobre todos os dispositivos Android conectados, incluindo serial, modelo e estado. |
| get-installed-packages | Recupera informações sobre todos os pacotes instalados em um dispositivo Android. Suporta filtragem apenas para aplicativos de terceiros. |
| list_allowed_directories | Lista diretórios que podem ser acessados pelas ferramentas do sistema de arquivos. |
| list-files | Lista arquivos e diretórios em um dispositivo Android. Suporta listagem recursiva com a opção 'recursive'. |
| read-file | Lê o conteúdo de um arquivo em um dispositivo Android. |
| read_multiple_files | Lê o conteúdo de vários arquivos em um dispositivo Android de uma só vez (reduz chamadas de LLM). |
| write-file | Escreve conteúdo em um arquivo em um dispositivo Android. |
| create-directory | Cria um diretório em um dispositivo Android. |
| delete | Exclui um arquivo ou diretório em um dispositivo Android. |
| search-files | Procura arquivos que correspondam a um padrão glob sem diferenciar maiúsculas de minúsculas dentro dos diretórios permitidos. |
| move_file | Move um arquivo do caminho de origem para o caminho de destino em um dispositivo Android. |
| copy-file-to-host | Copia um arquivo binário do dispositivo Android para o sistema host. |
| capture-screenshot | Captura uma captura de tela de um dispositivo Android e a salva no sistema host. |
| install-apk | Instala um APK no dispositivo Android a partir de um arquivo no sistema host dentro dos caminhos permitidos do host. |
Com muitas outras ferramentas planejadas para o futuro.
Exemplos de Prompts
uninstall the 'sample' app, but keep its data
force stop the 'sample' app
Do I have a browser installed on the connected emulator?
Organize all files in the Download folder of the connected Android device
Pull all KotlinConf related files from the Android device to the host
Release
O projeto usa shadow para empacotar a ferramenta em um fat-jar e também faz minificação mínima.
./gradlew adbfriend-cli:shadowDistZip
Outros
AboutLibraries
Gerar aboutlibraries.json para adbfriend
./gradlew adbfriend:exportLibraryDefinitions
Gerar aboutlibraries.json para adbfriend-cli
./gradlew adbfriend-cli:exportLibraryDefinitions
Exemplos de Capturas de Tela de Prompts
Créditos
Este projeto usa a incrível biblioteca adam de Malinskiy para interagir com adb. O CLI é configurado usando a impressionante biblioteca clikt de ajalt.
Licença
Copyright 2025 Mike Penz
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

