Como recolher registos VPN do Android para um ticket de suporte
Exporte o registo do cliente para uma tentativa e depois uma janela curta de ADB logcat autorizada. Filtre por hora e etiqueta, oculte os segredos e envie um único pacote.
Toca em Connect, o perfil gira um segundo e o cliente comunica a desconexão. O suporte pede registos, anexa uma captura de ecrã e o tópico fica dois dias parado porque ninguém consegue dizer que parte do handshake desistiu. Um relatório construído em torno de uma única tentativa, com uma janela temporal estreita e a última fase concluída, faz avançar o ticket numa só ronda. A alternativa, um dia inteiro de registos do telefone, dá normalmente à pessoa do outro lado mais sítios para procurar.
Dois telefones no mesmo gateway podem comportar-se de forma diferente, porque o protocolo, o armazenamento de certificados, o método de autenticação ou a política de tráfego podem não coincidir. Funciona no meu iPhone é um ponto de partida para comparação, não uma prova de falha no Android.
Capture uma tentativa em vez de um dia de histórico
Anote o ambiente antes de reproduzir seja o que for: versão do Android, fabricante e modelo, nome e versão do cliente, o perfil escolhido, a rede a que está ligado e a hora do relógio com o respetivo fuso. Também anoto se a poupança de bateria ou o Data Saver estão ativos, porque ambos mudam o que o cliente pode fazer quando o ecrã se desliga.
Depois decida qual dos cinco resultados está realmente a ver. O pedido de consentimento ou permissão nunca termina, o endpoint não é de todo alcançável, a autenticação é rejeitada, a configuração da interface falha após um início de sessão bem-sucedido, ou o túnel sobe e um recurso específico continua inacessível. Cada um tem um responsável e uma correção diferentes, e um pacote que os mistura recebe uma resposta a pedir para tentar de novo. É adivinhar entre eles que transforma um ticket de uma hora numa semana de idas e voltas.
As transições também contam. Se a falha só aparece após o bloqueio do ecrã ou após a passagem de Wi-Fi para dados móveis, escreva isso na primeira linha do ticket e anote o minuto em que aconteceu.
Exporte primeiro o registo do próprio cliente
O primeiro anexo deve vir da aplicação e não do sistema operativo. A maioria dos clientes disponibiliza nas definições uma exportação de registo de diagnóstico ou de ligação, por vezes escondida atrás de uma pressão longa na cadeia de versão, e essa exportação já compreende a sua própria máquina de estados. Use-a tal como sai em vez de reescrever as linhas interessantes no corpo do ticket.
Anexe o primeiro erro e os eventos imediatamente anteriores, não apenas a última linha de desconexão. Uma cauda limpa costuma significar que a falha real aconteceu mais cedo: uma cadeia de certificados que não validava, um nome resolvido num local inesperado ou uma interface que nunca foi configurada.
Acrescente logcat apenas para uma pergunta que consiga nomear
Um emulador de terminal no telefone não é um registador do sistema. O Android registra os seus buffers como fluxos circulares separados que só os processos privilegiados conseguem ler por completo. Por isso, uma aplicação comum vê a sua própria saída mais uma porção restrita, e afirmar que o logcat estava vazio prova muito pouco sobre o que a plataforma registou.
O caminho suportado é uma sessão ADB autorizada a partir de um computador que controla. Ative as opções de programador e a depuração USB, ligue o cabo e aceite o diálogo de impressão digital RSA no dispositivo; se esse pedido for fechado, todos os comandos seguintes falham com unauthorized e nenhuma captura começa.
Confirme que o dispositivo está mesmo lá antes de investir tempo numa captura. adb devices deve imprimir o número de série seguido da palavra device, e tudo o que mostre offline ou unauthorized precisa primeiro de resolver o cabo, o pedido ou o controlador.
Assim que aparecer na lista, comece a capturar alguns segundos antes de tocar em Connect e pare logo depois de o cliente desistir. Uma captura ao vivo com um início deliberado supera um dump tirado vinte minutos depois, porque os buffers circulares já rodaram e as linhas iniciais de que precisa podem ter desaparecido:
adb logcat -v threadtime -b main,system,crash > attempt.txt
Filtre por hora e etiqueta em vez da palavra VPN
Procurar vpn numa captura é a forma mais rápida de perder a linha que explica a falha. A validação de certificados, as falhas de processo e as mudanças de conetividade são registadas sob etiquetas que nunca mencionam VPN, por isso um filtro por palavra-chave guarda o ruído e deita fora a prova.
Estreite primeiro a janela, depois a prioridade e depois a etiqueta. Quando só precisa do que aconteceu após um momento conhecido, adb logcat -v threadtime -t '11-03 20:14:00.000' reproduz a cauda recente a partir desse ponto, e o formato threadtime mantém as marcas temporais comparáveis com a exportação do próprio cliente.
Se conhece o pacote do cliente, siga o processo em vez de adivinhar etiquetas. adb shell pidof com.vendor.client devolve um PID e adb logcat --pid=1234 -v threadtime imprime apenas esse processo, enquanto adb logcat -g mostra quanto espaço cada buffer tem antes de começar a sobrescrever.
Oculte os segredos e entregue depois um pacote coerente
Antes de algo sair da sua máquina, remova palavras-passe, tokens, chaves privadas, cookies de sessão e identificadores completos do dispositivo. Mantenha os códigos de erro, a ordem dos eventos e as relações de endereços que tornam a falha legível, porque uma captura limpa para lá desse ponto é tão inútil como uma que nunca foi filtrada.
Depois envie um único pacote em vez de vários ficheiros soltos: a exportação do cliente, a janela ADB nomeada com a hora de início e fim, um resumo de duas linhas da fase que falhou e a nota de ambiente do topo desta lista. Se parte não puder ser publicada publicamente, use o canal de suporte privado do fornecedor e diga qual ficheiro precisa desse canal.
Antes de enviar, verifique quatro coisas. O pacote cobre uma tentativa e não uma tarde inteira? As marcas temporais do cliente e do sistema sobrepõem-se? E ainda contém um token, uma palavra-passe ou um identificador completo de subscritor? Corrija primeiro esse último ponto e depois anexe os ficheiros ao ticket existente em vez de abrir um novo, para que quem o pegar mantenha o contexto anterior.