PATCH V45 - TESTE POR CÓDIGO ANTES DO GLOBAL

O que muda:
- A página Atualização da Launcher passa a trabalhar em duas etapas.
- TESTE: você envia a nova APK e informa um ou mais códigos de TV Box. Só esses códigos recebem a candidata.
- GLOBAL: depois de testar, clique em "Publicar Globalmente". O painel promove a MESMA APK já testada, sem novo upload.
- Durante TESTE, app_info.php nunca força atualização para launchers antigas que não informam código.
- Durante TESTE, download_launcher.php retorna 403 para código que não esteja autorizado.
- A lista de teste pode ser alterada sem reenviar a APK.
- Continua existindo escolha Manual ou Silenciosa e botão Pausar/Reativar.

V8 BASE INCLUÍDA:
- package: com.laucher.com
- versionCode: 8
- versionName: 1.7
- assinatura AOSP ROM COMPAT SHA-256:
  A4:0D:A8:0A:59:D1:70:CA:A9:50:CF:15:C1:8C:45:4D:47:A3:9B:26:98:9D:8B:64:0E:CD:74:5B:A7:1B:F5:DC
- A consulta de atualização da V8-base usa check_activation.php?code=<CODIGO>, permitindo o rollout seletivo seguro.
- O fluxo de boot conservador da ROM COMPAT foi preservado.

IMPORTANTE:
1. Esta V8-base deve ser a versão que você coloca na ROM antes de depender do modo TESTE por código nas próximas versões.
2. O app_info.json do patch começa com a distribuição PAUSADA para não liberar a V8 acidentalmente.
3. Ao publicar uma V9 ou superior, use primeiro "Publicar somente para TESTE".
4. Depois que o código de teste aparecer como atualizado e você confirmar que está tudo certo, use "Publicar Globalmente".
5. O patch não inclui domains.json; portanto não apaga sua lista de domínios. Se o arquivo não existir, o sistema cria automaticamente só o domínio principal.
