# Manutenção e atualizações

Este guia explica como gerenciar atualizações remotas de software com o comando **YDL (Download Remoto)**. Ele também traz o procedimento passo a passo corrigido para extrair logs técnicos em diagnósticos aprofundados.

## Download remoto de software (YDL)

O Pinpad Getnet permite atualizar o firmware interno e o APK do aplicativo de forma dinâmica pela conexão serial. Isso evita visitas físicas do suporte técnico para atualizações de software. O Sistema Host atua como ponte: baixa o pacote de software do seu backend e o transmite sequencialmente ao Pinpad.

### O fluxo de atualização

O processo é dividido em duas fases principais: **Handshake/Inicialização** e **Transferência sequencial de dados**.

#### Fase 1: Iniciação

Para iniciar a atualização, o Sistema Host envia uma requisição `YDL` indicando o começo de uma transferência.

* **Tipo de Operação (`OPR`)**: definido como **"01"** (Init).
* **Tamanho Total (`TAM`)**: tamanho total do arquivo APK em bytes.
* **Tamanho do Pacote (`TPS`)**: tamanho de cada bloco de dados (ex.: "1024").

#### Fase 2: Loop de transmissão

Para cada bloco do arquivo, o Sistema Host envia um novo comando `YDL` com os dados do fragmento.

1. **Ação do Host**: envia `YDL` com `OPR` definido como **"02"** (Transfer) e os dados binários no campo `[DAT]`.
2. **Ação do Pinpad**: verifica a integridade de cada bloco com um algoritmo CRC. Se o CRC falhar, o Pinpad retorna um erro e o Host deve reenviar aquele pacote.
3. **Finalização**: quando o último pacote chega, o Pinpad reconstrói o arquivo e aciona o instalador interno.

> **Não interrompa a alimentação** durante a fase de instalação. O Sistema Host deve exibir a mensagem "Não Desligue o Terminal" ao operador durante esse processo.

## Extração de logs técnicos

Para analisar o comportamento do aplicativo e do terminal N750P, você deve extrair os logs para uma memória Micro SD externa. Como o terminal opera em um ambiente seguro, o acesso ao sistema de arquivos é restrito e você precisa abrir um menu específico acionado por hardware.

### Extração pelo cartão Micro SD

Para extrair os logs do aplicativo com segurança, siga estas etapas:

1. **Preparação**: obtenha um cartão de memória Micro SD e um terminal N750P.
2. **Inserir a Mídia**: desligue o dispositivo, remova a tampa da bateria e insira o cartão Micro SD.
3. **Ligar**: com o cartão inserido, ligue o dispositivo.
4. **Acessar o Menu de Configuração**: pressione e segure o botão liga/desliga superior até aparecer uma janela pop-up. Ainda segurando o liga/desliga, pressione o botão de volume vermelho na lateral direita.
5. **Autenticação**: uma janela de senha aparece. Digite a senha: **159953**.
6. **Navegar até os Logs**: acesse o menu **Tools** e selecione **LOG**.
7. **Transferência de Dados**: as informações começam a ser baixadas para o cartão Micro SD. Aguarde até a ferramenta indicar que o processo terminou e foi salvo corretamente.
8. **Extração Segura**: desligue o dispositivo novamente para remover o cartão Micro SD com segurança.
9. **Análise**: insira a memória em um PC e localize o arquivo **logcat.tar**, que contém os logs compactados.

## Boas práticas de manutenção

* **Verificação de Versão**: após uma atualização e a reinicialização, use o comando **Y0I (Echo Request)** para confirmar que o campo `[SOF]` corresponde à nova versão esperada.
* **Baud Rate Estável**: mantenha o baud rate estável em **115200** durante toda a transferência para reduzir a perda de pacotes.
* **Variante ChangeYDL**: se o seu projeto usa a flag `ChangeYDL`, lembre-se de que as telas de erro de um download com falha permanecem visíveis indefinidamente até serem fechadas manualmente.

## Próximos passos

1. [**Configuração e Conectividade**](https://docs.globalgetnet.com/pt/products/in-store-payments/host-to-host?doc=h2h-configuration-and-connectivity\&section=qhv6nzspm4fa7zajc43yr3ka): confirme a versão em execução com o teste de eco `Y0I` após uma atualização.
2. [**Tratamento de Erros**](https://docs.globalgetnet.com/pt/products/in-store-payments/host-to-host?doc=h2h-error-handling&section=kei2fli2gqggbwgaddtl3xb7): interprete os códigos `Y0E` retornados quando um download ou uma extração de log falha.