Coloquei WhatsApp e Telegram em celulares de 2004 e o difícil foi o TLS

Sou o desenvolvedor do ZapTijolo, um app que leva WhatsApp, Telegram e um assistente de IA para celulares Java ME: Nokia Series 40 e S60, Motorola e BlackBerry. Quero contar a parte técnica, que foi bem mais estranha do que eu imaginava.

A arquitetura

O celular roda um MIDlet de cerca de 155 KB (CLDC 1.0 / MIDP 2.0, telas nativas LCDUI). Ele não tem memória nem bibliotecas para rodar um cliente moderno, então um servidor em Go faz o trabalho pesado: segura a sessão do Telegram (gotd, API oficial) e a do WhatsApp como aparelho vinculado (whatsmeow, não oficial). Com o app aberto, o celular consulta o servidor a cada 60 segundos por um protocolo enxuto.

O TLS de 2007

  • Muitos Nokia só falam TLS 1.0 com RSA e AES-CBC-SHA e não mandam SNI. Sem SNI, um proxy reverso não sabe para onde mandar a conexão, então a API do celular roda numa porta própria, fora do proxy, com cadeia de certificados própria.
  • O Nokia 6500 slide compara a hora local como se fosse UTC. No Brasil (UTC−3), um certificado recém-emitido ficava "ainda não válido" por horas. Solução: os certificados começam a valer em 2007.
  • O navegador desses aparelhos não abre o HTTPS moderno (Let's Encrypt com SNI), então a página de instalação precisa existir também em HTTP.

Outras surpresas

  • O Nokia 6600 (2003) só aceita app CLDC 1.0: qualquer outra coisa dá "Versão inválida". O app inteiro foi rebaixado para CLDC 1.0.
  • Navegadores S40 ignoram display:block e padding em links. Botões viraram células de tabela com bgcolor, como em 2005.
  • Áudio: o celular grava AMR. Converter direto de AMR para Opus saía com timestamps errados; passar sempre por PCM no servidor resolveu.
  • Um Player de áudio esquecido aberto bloqueia o próximo. Fechar sempre, até no erro.
  • Pouca memória (heap de 1–2 MB): fotos limitadas a 96 KB e áudio a 320 KB.

O que não é

O WhatsApp é não oficial (aparelho vinculado) e o smartphone principal precisa entrar online a cada 14 dias. A compatibilidade depende do firmware de cada aparelho, já rodou até num Samsung com Windows Mobile. As mensagens passam pelo servidor, porque o celular antigo não roda os clientes modernos.

Por demandar um servidor 24/7 e uma segurança entre APP/SERVER, não deixa de ser um serviço pago (R$ 9,99/mês, 3 dias grátis; a IA é adicional): https://zaptijolo.com.br

Pergunta para quem chegou até aqui: qual celular da gaveta você traria de volta?

Coloquei WhatsApp e Telegram em celulares de 2004 e o difícil foi o TLS, image #1

Source

1 view·1 share