# Porta ADB do MuMu Player: conectar o MuMu 12 ao MAS

> Encontre a porta ADB do MuMu Player 12, conecte o Macro Automation Studio a ela, adicione cada instância como dispositivo e rode macros no lugar do gravador.

Source: https://automationmacro.com/pt-BR/docs/mumu-setup-guide (Dispositivos, updated 2026-09-05)

Este guia mostra como encontrar a porta ADB do MuMu Player 12 e conectar a instância ao Macro Automation Studio (MAS), e explica como as macros do MAS diferem da Gravação de operações do MuMu. Os passos são para Windows; uma seção curta cobre a build para Mac.

## Antes de começar

- MAS instalado e com login feito no Windows 10 ou 11, ou em um Mac com Apple Silicon. O MAS é um download gratuito para o teste; pegue-o na [página de download](/download).
- MuMu Player 12 instalado a partir de [mumuplayer.com](https://www.mumuplayer.com/) e aberto pelo menos uma vez.
- A instância totalmente iniciada até a tela inicial do Android.
- Os apps que você quer automatizar instalados e com login feito dentro do MuMu Player.

## 1. Instalar o MuMu Player 12

1. Baixe o MuMu Player 12 no site do fabricante e rode o instalador.
2. Abra o MuMu Player e aguarde a tela inicial.
3. Instale e faça login nos apps que você quer automatizar antes de adicionar o dispositivo ao MAS.

## 2. Definir uma resolução fixa

O MAS compara imagens template pixel a pixel, então escolha uma resolução uma vez e mantenha.

1. Clique em **Configurações** no canto superior direito da janela do MuMu Player.
2. Abra **Tela** e escolha uma resolução personalizada.
3. Digite largura 540, altura 960 e DPI 240. Essa é a base do MAS; uma macro que você mesmo escreve espera a resolução que você capturou no Asset Lab.
4. Salve e reinicie a instância quando o MuMu Player pedir.

> [!WARNING]
> Mudar a resolução depois de capturar os templates desloca todas as correspondências. O gravador do próprio MuMu tem a mesma regra.

## 3. Ativar o ADB no MuMu Player 12

O guia de ADB do fabricante não mostra nenhum botão para o MuMu Player 12. Uma instância em execução responde ao adb na sua porta sem nenhuma configuração, então o que você precisa é do número da porta:

- Para uma única instância, abra o menu no canto superior direito da janela e escolha **Diagnóstico de problemas**. A porta de depuração ADB aparece ali.
- Para várias instâncias, abra o **MuMuPlayer Multi-instance 12** e clique no ícone de ADB de uma instância em execução para ver a porta dela.

## 4. A porta ADB do MuMu Player e como o MAS a escaneia

O MuMu Player 12 dá à instância principal a porta **16384**, e cada instância seguinte soma 32: 16416, 16448 e assim por diante. Quando uma porta está ocupada, o MuMu soma 1, então 16385 pode aparecer. O MAS não usa `adb devices` para descobrir emuladores. Ele escaneia os processos em execução e mantém uma porta quando todas estas condições valem:

- O nome do processo contém `nemuheadless` ou `mumu`.
- A porta está entre 16384 e 16576, entre 26624 e 27264, é exatamente 7555, ou é uma porta ímpar entre 5555 e 5599.
- O socket escuta em `127.0.0.1`, `0.0.0.0` ou em todas as interfaces.

A faixa de 16384 a 16576 cobre a instância principal e as seis seguintes; 7555 e a faixa de 5555 vêm de versões mais antigas do MuMu. As portas que batem aparecem na caixa de diálogo **Adicionar novo dispositivo** com o rótulo `MuMu`, por exemplo `16384 - MuMu`. O MAS escaneia quando você abre um grupo de dispositivos e a cada clique em **Atualizar**.

## 5. Conectar o MuMu Player pelo ADB no MAS

1. Abra **Grupos de dispositivos** na barra lateral e abra um grupo, ou crie um.
2. Clique em **Adicionar dispositivo**.
3. Digite um **Nome do dispositivo** com até 50 caracteres.
4. Em **Porta**, escolha a entrada `MuMu` desta instância. Clique em **Atualizar** se a lista estiver vazia.
5. Se a porta mostrada em **Diagnóstico de problemas** não seguir a regra acima, escolha **Porta personalizada** e digite-a. O MAS aceita de 1024 a 65535.
6. Se quiser, escolha uma **Macro inicial**.
7. Clique em **Adicionar dispositivo** e depois em **Iniciar** no card do dispositivo.

O card mostra **Conectando** e depois **Em execução**. O MAS inicia seu próprio servidor adb, remove qualquer entrada antiga de `127.0.0.1:<port>` e roda `adb connect` contra ela.

## Macros no MuMu Player

A **Gravação de operações** do MuMu grava toques e os repete a partir de um arquivo, com três condições de parada (**Executar x vezes e parar**, **Executar por xx tempo e parar** e **Loop infinito até parar manualmente**) e um **Intervalo do ciclo**. O fabricante avisa que a resolução na reprodução precisa ser igual à da gravação. O arquivo repete coordenadas fixas sem olhar para a tela, então um carregamento lento, um pop-up ou um botão que mudou de lugar quebra a sequência, e ele só roda dentro do MuMu Player.

Uma macro do MAS é um script Python que verifica a tela antes de agir: encontra um botão com template matching, lê texto com OCR, espera com tentativas repetidas e ramifica conforme o que vê. O mesmo script roda no MuMu Player, em outros emuladores e em dispositivos na nuvem sem alterações, porque o MAS controla todo dispositivo por adb.

- Para reconstruir uma gravação como uma macro que enxerga a tela, siga [Macros com reconhecimento de imagem](/docs/guides/image-recognition-macros).
- Para colocá-la em loop até uma condição ser atendida, ou rodá-la em um agendamento, leia [Loops, condições de parada e agendamento](/docs/guides/loops-and-scheduling).

> [!NOTE]
> Encerre qualquer Gravação de operações em andamento antes de iniciar um dispositivo no MAS. Os dois enviam entrada para a mesma tela e interferem um no outro.

## Várias instâncias do MuMu

Abra o **MuMuPlayer Multi-instance 12** pelo ícone da caixa de ferramentas no canto superior direito. **+Novo** cria uma instância e **Configuração do dispositivo** define desempenho e tela, então dê a todas as instâncias a mesma resolução. Cada instância escuta na própria porta, 32 acima da anterior. Adicione cada uma como um dispositivo separado no mesmo grupo de dispositivos, atribua uma macro e um perfil de configurações por dispositivo e use **Iniciar todos** e **Parar todos** no grupo. A partir da oitava instância, a porta passa de 16576 e o MAS deixa de listá-la; adicione-a com **Porta personalizada**. Veja [Grupos de dispositivos](/docs/device-groups) para argumentos e proxies por dispositivo.

## MuMu Player no Mac

O MuMu também tem uma build para Macs com Apple Silicon. Ali o guia do fabricante coloca o ADB na barra de menus: com um dispositivo em execução, abra **Ferramentas** e escolha **Abrir ADB (número da porta do dispositivo)**. A entrada mostra a porta; o padrão é de novo 16384. Se o escaneamento do MAS não a listar, adicione-a com **Porta personalizada**.

O MAS no Mac precisa de um binário do adb: ele procura dentro do pacote do app, depois no seu PATH e depois nas pastas do Homebrew. Se o MAS informar "ADB executable not found. Please install ADB using your package manager", instale o adb com o Homebrew e reinicie o MAS:

```bash
brew install android-platform-tools
```

O MAS sempre disca `127.0.0.1`, então o MuMu Player precisa rodar no mesmo Mac.

## Solução de problemas

### Porta ADB do MuMu

O MAS não lista nenhuma entrada `MuMu`, ou a entrada listada pertence a outra instância.

- Leia a porta em **Diagnóstico de problemas** ou no ícone de ADB do **MuMuPlayer Multi-instance 12** e compare com o card do dispositivo; corrija com **Editar dispositivo**.
- Conte a partir de 16384 em passos de 32 por instância, mais um quando uma porta estava ocupada (16385 em vez de 16384).
- A instância ainda está iniciando, então a porta ainda não está aberta. Aguarde a tela inicial e clique em **Atualizar**.
- A porta está acima de 16576 ou fora da regra de escaneamento por outro motivo. Escolha **Porta personalizada** e digite-a.

### O adb connect do MuMu falha

O card do dispositivo mostra **Erro** com "Failed to start device", o log diz "unable to connect to device", ou o adb imprime "cannot connect" ou "connection refused".

- Nada escuta nessa porta. Confira o número como acima e confirme que a instância está aberta.
- Um segundo servidor adb segura uma entrada antiga. Feche outras ferramentas que rodam o próprio servidor adb, clique em **Parar**, reinicie a instância e clique em **Iniciar**; o MAS reconecta do zero.
- `adb devices` mostra a porta como `offline`. Reinicie a instância; se continuar offline, reinicie o MAS para que o servidor adb dele inicie limpo.
- O escaneamento informou "Failed to scan emulator ports". Reinicie o MAS e abra a caixa de diálogo de novo.

Para ver a resposta crua do adb, rode `adb connect 127.0.0.1:16384` em um terminal. Mais correções em [Solução de problemas de ADB](/docs/adb-troubleshooting).

### Macro em loop no MuMu

Uma gravação definida como **Loop infinito até parar manualmente** não sabe se o loop deve continuar, então segue tocando depois que o objetivo foi atingido ou um pop-up apareceu. Uma macro do MAS faz o loop em Python com uma condição de parada: um template que aparece, um número lido por OCR ou uma contagem de passagens. [Loops, condições de parada e agendamento](/docs/guides/loops-and-scheduling) mostra os padrões. Se um loop do MAS travar, abra **Logs** no card do dispositivo: `ImageNotFoundError` e `TimeoutError` nomeiam o passo que falhou, e a causa habitual é uma resolução que já não bate com os templates.

## Controle pelo Python

Com o card em **Em execução**, o `src/app.py` de uma macro controla a instância pelo pacote `mas`. O MAS escolhe a porta, então os scripts nunca a referenciam.

```python
import mas

size = mas.get_screen_size()
mas.log(f"MuMu screen is {size.width}x{size.height}")

match = mas.find_object_retry(1234, total_tries=3, time_sleep=2.0)
if match:
    mas.click(match.x, match.y)
```

Leia a [visão geral do SDK](/docs/sdk) para todos os namespaces, e [Controlar um emulador Android pelo Python](/docs/guides/control-an-emulator-from-python) para um primeiro script completo.
