# LDPlayer ADB: conectar e configurar a porta no MAS

> Ative a depuração ADB no LDPlayer 9, encontre a porta ADB, conecte a instância ao Macro Automation Studio e troque o gravador por macros que enxergam a tela.

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

Este guia mostra como conectar o LDPlayer 9 ao Macro Automation Studio (MAS) pelo LDPlayer ADB, e como as macros do MAS diferem do Gravador de operações do LDPlayer. O LDPlayer só existe para Windows, então todos os passos abaixo são passos de Windows.

## Antes de começar

- MAS instalado e com login feito no Windows 10 ou 11. O MAS é um download gratuito para o teste; pegue-o na [página de download](/download).
- LDPlayer 9 instalado a partir de [ldplayer.net](https://www.ldplayer.net/) 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 LDPlayer.

## 1. Instalar o LDPlayer 9

1. Baixe o LDPlayer 9 no site do fabricante e rode o instalador.
2. Abra o LDPlayer 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 no ícone de engrenagem na barra de ferramentas do LDPlayer para abrir **Configurações**.
2. Abra **Tela** e escolha a opção de 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. Clique em **Salvar configurações** e reinicie a instância quando o LDPlayer pedir.

> [!WARNING]
> Mudar a resolução depois de capturar os templates desloca todas as correspondências, e uma macro feita para outra resolução clica no lugar errado.

## 3. Ativar a depuração ADB no LDPlayer 9

O LDPlayer mantém o ADB fechado até você abri-lo. O fabricante documenta a opção em Outras configurações:

1. Abra **Configurações**.
2. Clique em **Outras configurações**.
3. Defina **Depuração ADB** como **Abrir conexão local**.
4. Clique em **Salvar configurações**.
5. Reinicie a instância. A configuração passa a valer depois da reinicialização.

> [!NOTE]
> **Abrir conexão local** basta para o MAS, que sempre conecta a partir do mesmo computador. A permissão de root é uma opção separada na mesma página, e o MAS não precisa dela.

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

A primeira instância do LDPlayer escuta em **5555**. 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 `ldvboxheadless`, `ld9boxheadless`, `dnplayer`, `ldplayer` ou `vboxnetnat`.
- A porta é ímpar e está entre 5555 e 5599: 5555, 5557, 5559 e assim por diante.
- 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 `LD Player`, por exemplo `5555 - LD Player`. O MAS escaneia quando você abre um grupo de dispositivos e a cada clique em **Atualizar**. As instâncias seguintes pegam as próximas portas ímpares, e é por isso que a regra vai até 5599: ela cobre 23 instâncias abertas.

## 5. Conectar o LDPlayer 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 `LD Player` desta instância. Clique em **Atualizar** se a lista estiver vazia.
5. Se o LDPlayer usar uma porta que não segue 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 LDPlayer

O **Gravador de operações** do LDPlayer (um botão na barra de ferramentas, ou <kbd>Ctrl</kbd> + <kbd>8</kbd>) grava toques, deslizes e entrada de texto e os repete como um script. As configurações do script oferecem um **Loop de execução** (**Até o número de loops**, **Até o tempo** ou **Até parar manualmente**), um **Intervalo do loop** e **Aceleração**. O que ele não consegue fazer é olhar para a tela. Todo toque repete nas coordenadas gravadas, então um atraso de carregamento, um pop-up ou um botão que mudou de lugar manda o próximo toque para o nada, e o loop segue mesmo assim. O script também só roda dentro do LDPlayer.

Uma macro do MAS é um script Python que verifica a tela antes de agir. Ela 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 LDPlayer, em outros emuladores e em um dispositivo na nuvem sem alterações, porque o MAS controla o dispositivo por adb.

- Para reconstruir uma rotina gravada 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, com uma condição de parada que o gravador não expressa, ou para rodá-la em um agendamento, leia [Loops, condições de parada e agendamento](/docs/guides/loops-and-scheduling).
- As macros do Marketplace são instaladas como macros do MAS e rodam no dispositivo que você atribuir.

> [!NOTE]
> Pare qualquer script do Gravador de operações 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 LDPlayer

As instâncias criadas no **LDMultiplayer** (o botão **Multijogador** na barra de ferramentas, depois **Novo player** ou **Clonar player**) escutam cada uma na própria porta. 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. Defina a resolução por instância nas **Configurações** do gerenciador para os templates corresponderem em todas. Veja [Grupos de dispositivos](/docs/device-groups) para argumentos e proxies por dispositivo.

## Solução de problemas

### LDPlayer ADB device not found

O card do dispositivo mostra **Erro** com "Failed to start device", o log diz "unable to connect to device", ou o MAS não lista nenhuma entrada `LD Player`. Percorra estas causas:

- **Depuração ADB** não está como **Abrir conexão local**, ou a instância não foi reiniciada depois da mudança. Defina, salve e reinicie.
- A instância ainda está iniciando. Aguarde a tela inicial, depois clique em **Atualizar** e em **Iniciar** de novo.
- A porta pertence a outra instância. Corrija com **Editar dispositivo** no card.
- O escaneamento informou "Failed to scan emulator ports". Reinicie o MAS e abra a caixa de diálogo de novo.
- O adb imprimiu "connection refused" ou "cannot connect" nos logs do dispositivo. Nada escuta nessa porta; rode `adb connect 127.0.0.1:5555` em um terminal para conferir.

### O LDPlayer 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 do LDPlayer, feche outras ferramentas que rodam o próprio servidor adb e clique em **Iniciar**. O MAS desconecta a entrada antiga e reconecta a cada início. 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).

### Encontrar a porta ADB do LDPlayer 9

O guia de ADB do fabricante não mostra um lugar nas configurações do LDPlayer onde a porta apareça, então leia-a no MAS ou no adb. No MAS, abra **Adicionar novo dispositivo** e clique em **Atualizar**: toda porta encontrada aparece com `LD Player` ao lado, da menor para a maior, então a primeira instância é 5555 e as seguintes vêm em 5557 e 5559. Em um terminal, `adb connect 127.0.0.1:5555` responde "connected" para uma porta viva e "cannot connect" para uma porta morta. Depois que você sabe a porta, ela se mantém enquanto você abrir as instâncias na mesma ordem.

### A macro não funciona

Dois problemas diferentes compartilham essa frase.

- Um script gravado no LDPlayer toca no lugar errado ou fica em loop sem efeito. A resolução mudou desde a gravação, o app agora carrega mais devagar, ou um pop-up está sobre o botão. Scripts gravados não se recuperam de nada disso; reconstrua a rotina como uma macro do MAS com [Macros com reconhecimento de imagem](/docs/guides/image-recognition-macros).
- Uma macro do MAS trava ou para. Abra **Logs** no card do dispositivo: `ImageNotFoundError` e `TimeoutError` nomeiam o passo que falhou. Confira se a instância roda na resolução em que os templates foram capturados, se o card do dispositivo está em **Em execução** e se nenhum script do LDPlayer está enviando entrada ao mesmo tempo.

## 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"LDPlayer 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.
