# BlueStacks ADB: conectar e configurar a porta no MAS

> Ative o ADB no BlueStacks 5, encontre a porta ADB, conecte o Macro Automation Studio e corrija os erros device not found e offline no Windows e no Mac.

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

Este guia mostra como conectar o BlueStacks ao Macro Automation Studio (MAS) pelo ADB: ativar o BlueStacks ADB, encontrar a porta ADB e adicionar a instância como dispositivo. Ele cobre o BlueStacks 5 no Windows e a build do BlueStacks para Macs com Apple Silicon, e termina com os erros que as pessoas mais encontram.

## 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).
- BlueStacks instalado a partir de [bluestacks.com](https://www.bluestacks.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 BlueStacks.

## 1. Instalar o BlueStacks

<div class="doc-tabs" data-tabs="os">
<section data-tab="Windows">

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

</section>
<section data-tab="Mac">

1. Baixe a build para Apple Silicon, o BlueStacks Air, em [bluestacks.com/mac](https://www.bluestacks.com/mac).
2. Abra o DMG e mova **BlueStacks** para **Aplicativos**.
3. Abra pela pasta Aplicativos e aguarde a tela inicial.

</section>
</div>

<figure class="device-window">
<img src="/images/bluestacks1.jpg" alt="Tela de download e instalação do BlueStacks" width="1200" height="720" loading="lazy" />
<figcaption>Instale a build atual do BlueStacks 5 e deixe-a terminar a primeira inicialização.</figcaption>
</figure>

## 2. Configurações recomendadas

O MAS compara imagens template pixel a pixel, então a tela não pode mudar depois que você captura os templates. Abra **Configurações** pelo ícone de engrenagem na barra lateral e defina:

| Aba | Configuração | Valor |
|---|---|---|
| **Desempenho** | Alocação de CPU | 2 núcleos; mais é bom enquanto você desenvolve |
| **Desempenho** | Alocação de memória | 4 GB ou mais, se disponível |
| **Tela** | Resolução | Retrato, 540 x 960 |
| **Tela** | Densidade de pixels | 240 DPI |

Clique em **Salvar alterações** e reinicie a instância quando o BlueStacks pedir. Macros escritas contra a base do MAS esperam **540x960** a **240 DPI**; uma macro que você mesmo escreve espera a resolução que você capturou no Asset Lab. Se a execução ficar travando, feche apps em segundo plano e dê mais núcleos e memória à instância.

<figure class="device-window">
<img src="/images/bluestacks2.png" alt="Configurações de desempenho e tela do BlueStacks" width="1200" height="720" loading="lazy" />
<figcaption>Configurações de Desempenho e Tela para uma instância estável no MAS.</figcaption>
</figure>

> [!WARNING]
> Mudar a resolução ou o DPI depois de capturar os templates desloca todas as correspondências, e os cliques caem no lugar errado. Escolha as configurações de tela uma vez e mantenha.

## 3. Ativar o ADB no BlueStacks 5

O BlueStacks vem com o ADB desligado. O MAS precisa dele ligado.

<div class="doc-tabs" data-tabs="os">
<section data-tab="Windows">

1. Clique no ícone de engrenagem na barra lateral para abrir **Configurações**.
2. Clique na aba **Avançado**.
3. Ative **Android Debug Bridge**.
4. Clique em **Salvar alterações**.
5. Anote o endereço mostrado abaixo do botão, por exemplo `127.0.0.1:5555`. O número depois dos dois-pontos é a porta ADB. A primeira instância costuma receber 5555; a captura abaixo mostra 5625.

</section>
<section data-tab="Mac">

1. Abra **Configurações** pelo ícone de engrenagem na barra lateral ou pelo ícone de menu na barra superior.
2. Procure uma opção Android Debug Bridge. O guia de configurações do fabricante para o BlueStacks Air lista Desempenho, Tela, Gráficos, Preferências e Sobre, e nenhum botão de ADB. Builds mais antigas do BlueStacks para macOS tinham um em Preferências.
3. Se a sua build tiver a opção, ative, salve e anote a porta depois de `127.0.0.1`.
4. Se não tiver, o MAS não consegue se conectar a essa build. Use outro emulador que exponha o ADB no Mac, ou um [dispositivo na nuvem](/docs/cloud-devices).

</section>
</div>

<figure class="device-window">
<img src="/images/bluestacks3.png" alt="Tela de ativação do ADB no BlueStacks com a porta local" width="1200" height="720" loading="lazy" />
<figcaption>A aba Avançado com o Android Debug Bridge ativado. A porta aqui é 5625.</figcaption>
</figure>

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

O MAS não roda `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 `hd-player` ou `bluestacks`.
- A porta está entre 5555 e 8500.
- O socket escuta em `127.0.0.1`, `0.0.0.0` ou em todas as interfaces.

As portas que batem aparecem na caixa de diálogo **Adicionar novo dispositivo** com o rótulo `Bluestacks`, por exemplo `5555 - Bluestacks`. O MAS escaneia quando você abre um grupo de dispositivos e a cada clique em **Atualizar**. Cada instância do BlueStacks escuta na própria porta, então duas instâncias dão duas entradas.

## 5. Conectar o BlueStacks 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 `Bluestacks` desta instância. Clique em **Atualizar** se a lista estiver vazia.
5. Se o BlueStacks mostrar uma porta que o MAS não listou, 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 BlueStacks

O gravador de macros do próprio BlueStacks repete toques em coordenadas fixas. Uma macro do MAS é um script Python que olha para a tela antes: o template matching encontra o botão, o OCR lê o texto e as tentativas repetidas absorvem um carregamento lento ou um pop-up. [Primeiros passos](/docs/getting-started) roda sua primeira macro, [Macros com reconhecimento de imagem](/docs/guides/image-recognition-macros) reconstrói uma rotina gravada como uma rotina que enxerga a tela, e o [Agendador](/docs/scheduler) a roda diária, semanal ou mensalmente.

> [!NOTE]
> Pare o gravador do BlueStacks 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 BlueStacks

As instâncias criadas no **Gerenciador de multi-instâncias** escutam cada uma na própria porta ADB. Adicione cada uma como um dispositivo separado no mesmo grupo de dispositivos, dê a cada uma sua macro e seu perfil de configurações, e use **Iniciar todos** e **Parar todos** no grupo. Veja [Grupos de dispositivos](/docs/device-groups) para argumentos e proxies por dispositivo.

## Solução de problemas

### Ativar o ADB no BlueStacks 5

A lista **Porta** no MAS está vazia e `adb connect 127.0.0.1:5555` responde "cannot connect" ou "connection refused". O ADB está desligado. Abra **Configurações**, clique em **Avançado**, ative **Android Debug Bridge**, clique em **Salvar alterações**, reinicie a instância e clique em **Atualizar** em **Adicionar novo dispositivo**. Se a aba **Avançado** não tiver esse botão, instale o BlueStacks 5 atual pelo site do fabricante.

### Encontrar ou mudar a porta ADB

A porta fica abaixo do botão **Android Debug Bridge** como `127.0.0.1:<port>`. O BlueStacks a atribui na inicialização e muda para outra porta quando 5555 está ocupada, então ela pode mudar depois que você cria, clona ou exclui instâncias; o guia de ADB do fabricante não documenta nenhum campo para defini-la à mão. Quando ela mudar, clique em **Editar dispositivo** no card do MAS e escolha a porta nova. Abrir as instâncias sempre na mesma ordem mantém as portas estáveis.

### ADB device not found

O card termina em **Erro** com "Failed to start device", o log diz "unable to connect to device", ou um script lança `DeviceNotConnectedError`.

- A instância ainda está iniciando. Aguarde a tela inicial e clique em **Iniciar** de novo.
- A porta no card não é a porta que o BlueStacks mostra. Corrija com **Editar dispositivo**.
- Uma atualização desligou o ADB de novo. Confira a aba **Avançado**.
- Rode `adb connect 127.0.0.1:<port>` em um terminal. "connected to" significa que o MAS também vai conectar.

### O dispositivo aparece como offline

`adb devices` lista `127.0.0.1:<port>  offline` e os comandos travam. O daemon adb dentro da instância parou de responder, em geral depois de uma suspensão, uma atualização ou um segundo servidor adb na máquina. Clique em **Parar** no card, reinicie a instância, feche outras ferramentas que rodam o próprio servidor adb e clique em **Iniciar**; o MAS reconecta do zero. Se continuar offline, reinicie o MAS para que o servidor adb dele inicie limpo. Mais correções em [Solução de problemas de ADB](/docs/adb-troubleshooting).

### BlueStacks ADB no Mac

Duas coisas são diferentes no Mac. Primeiro, o MAS 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
```

Segundo, o MAS sempre disca `127.0.0.1`, então o BlueStacks precisa rodar no mesmo Mac e expor o ADB. O BlueStacks Air é a única build para Apple Silicon e suas configurações documentadas não têm botão de ADB; sem ele, o MAS não consegue controlá-lo.

## Controle pelo Python

Com o card em **Em execução**, o `src/app.py` de uma macro controla o BlueStacks 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"BlueStacks 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.
