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

  • Sincronizar arquivos do seu computador para o seu telefone
    • Projetado para dados de teste, ignorando arquivos existentes no dispositivo
  • Configurar dispositivo para testes
    • Desativar animações, ativar toques, ...
  • Desinstalar aplicativos por padrão
  • Comando de pacotes
    • Aplicar o sinalizador imersivo a todos os pacotes que correspondem ao glob, forçar parada, limpar dados do aplicativo e cache
  • Ferramentas extras
    • adb-speed (Ajuda a identificar cabos de baixa qualidade)
  • Servidor MCP (Model Context Protocol)

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 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.

Comece com o comando --help para obter informações e uma visão geral dos vários recursos oferecidos.

adbfriend --help

Servidor MCP

ADB Friend (desde a versão 1.4.0) também fornece um Servidor MCP (Model Context Protocol) 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" } } } }

Importante

Se ANDROID_HOME não for fornecido, o adb-server deve ser iniciado manualmente na sua máquina. Caso contrário, uma exceção de conexão será lançada.

Servidor de Depuração

Você pode usar o npx @modelcontextprotocol/inspector para depurar o servidor após iniciá-lo.

Instale e execute o inspetor no seu 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.

A porta padrão é 3001

adbfriend mcp server --sse true

Ferramentas suportadas

Nome da FerramentaDescrição
check-adb-speedVerifica a velocidade da conexão USB de um dispositivo Android para o serial fornecido.
clear-installed-packageLimpa os dados do pacote para os nomes de pacotes fornecidos em um dispositivo Android.
set-immersive-full-for-packageDefine o sinalizador 'immersive-full' para os nomes de pacotes fornecidos em um dispositivo Android.
force-stop-processForça a parada dos nomes de pacotes fornecidos em um dispositivo Android.
uninstall-packageDesinstala os nomes de pacotes fornecidos em um dispositivo Android.
get-connected-devicesRecupera informações sobre todos os dispositivos Android conectados, incluindo serial, modelo e estado.
get-installed-packagesRecupera informações sobre todos os pacotes instalados em um dispositivo Android. Suporta filtragem apenas para aplicativos de terceiros.
list_allowed_directoriesLista diretórios que podem ser acessados pelas ferramentas do sistema de arquivos.
list-filesLista arquivos e diretórios em um dispositivo Android. Suporta listagem recursiva com a opção 'recursive'.
read-fileLê o conteúdo de um arquivo em um dispositivo Android.
read_multiple_filesLê o conteúdo de vários arquivos em um dispositivo Android de uma só vez (reduz chamadas LLM).
write-fileEscreve conteúdo em um arquivo em um dispositivo Android.
create-directoryCria um diretório em um dispositivo Android.
deleteExclui um arquivo ou diretório em um dispositivo Android.
search-filesProcura arquivos que correspondem a um padrão glob sem diferenciar maiúsculas de minúsculas dentro de diretórios permitidos.
move_fileMove um arquivo do caminho de origem para o caminho de destino em um dispositivo Android.
copy-file-to-hostCopia um arquivo binário do dispositivo Android para o sistema host.
capture-screenshotCaptura uma captura de tela de um dispositivo Android e a salva no sistema host.
install-apkInstala um APK no dispositivo Android a partir de um arquivo no sistema host dentro dos caminhos host permitidos.

Com muito mais 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

Claude Desktopclaude-desktop-sample-prompt

Visual Codevisual-code-sample-prompt.png

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.