Um comando faz tudo
O script baixa o ADB se você não tiver, instala a última versão do player, ativa o Device Owner e ajusta a caixa para não desligar a tela. Funciona no Linux, macOS e Windows (no Windows, pelo Git Bash).
Ele pergunta se a caixa está por USB ou pela rede. Se já souber o IP, passe direto: bash setup.sh 192.168.0.42
É uma regra do próprio Android, não do PixelSpot. Numa caixa já em uso, faça o reset de fábrica e pule o login antes de rodar o script. Sem isso ele instala o player normalmente, mas o passo do Device Owner falha — e é ele que permite atualizar, reiniciar e esconder apps pelo painel, sem ninguém ir até a loja.
Antes de começar
Tenha isso em mãos para não travar no meio do processo.
Processadores e GPUs recomendados
O conteúdo é desenhado em tempo real num canvas (WebGL/Pixi.js), com vídeos, transições e imagens em Full HD. Isso pesa mais na GPU do que um app comum de Android — é o ponto onde caixinhas muito antigas ou muito baratas costumam engasgar, mesmo com Android “atualizado” nas configurações.
O que já testamos em campo
Caixinhas com Rockchip RK3229/RK3228 (comuns em TV boxes genéricas de baixo custo) rodam o PixelSpot — são o hardware mais fraco que já colocamos em campo e servem de piso. Pra uma compra nova, prefira um processador de 64 bits mais recente da tabela acima: a diferença aparece em grades com muitos vídeos e transições.
Google TV também serve. Confirmamos em campo numa Philips: o Device Owner entra normalmente, e com ele vêm a atualização remota e a troca de tela inicial. Vale quando a loja já tem uma Smart TV com Google TV e não se quer comprar caixa nenhuma. O reset de fábrica e o pulo do login continuam valendo — a regra é do Android.
Modo Device Owner
Uma API nativa do Android (desde a versão 7, sem precisar de root) que dá ao PixelSpot controle direto sobre o aparelho: o app se define sozinho como tela inicial (substitui o passo 3 manual), atualiza sozinho sem diálogo de confirmação na tela, e remove bloatware do fabricante remotamente pelo painel (substitui o ADB manual do passo 6). Como resolve praticamente tudo de uma vez, é o caminho recomendado — os passos seguintes viram alternativa pra quem não puder fazer este aqui. Só funciona na instalação inicial, antes de qualquer conta ser configurada na caixa — veja o aviso abaixo.
Reset de fábrica, sem entrar em nenhuma conta
Configurações → Sistema → Restaurar (ou o botão físico de reset, conforme o manual do fabricante). No primeiro boot depois do reset, não faça login em conta Google nem termine o assistente de configuração do fabricante se ele pedir uma — ative a Depuração USB antes disso, ou conecte via adb connect <ip> assim que o Wi-Fi estiver configurado, mas ainda antes de qualquer conta.
Instale o APK e vire Device Owner
Com a caixa ainda sem conta nenhuma:
Sucesso mostra "Success: Device owner set to package br.com.pixelspot". Se reclamar de conta ou usuário existente, a janela já fechou — reset de fábrica de novo e repita sem adicionar conta nenhuma dessa vez.
Confirme
Deve mostrar br.com.pixelspot/.PixelSpotDeviceAdminReceiver como device owner:
Continue a configuração normal da caixa (Wi-Fi, etc.) depois disso — o launcher já fica definido sozinho, e a remoção de bloatware pode ser feita depois, remotamente, pelo painel do PixelSpot. O selo "Device Owner" aparece na listagem de terminais assim que a telemetria estiver ligada pra esse terminal.
Não dá pra converter uma caixa já em uso
dpm set-device-owner só funciona numa caixa sem nenhuma conta configurada — é uma regra do próprio Android, não do PixelSpot. Se a caixa já está rodando normalmente com contas configuradas, a única forma de habilitar isso é resetar de fábrica e refazer a configuração do zero. Por isso vale decidir isso antes de configurar a caixa, não depois — de preferência antes até do passo 3.
Definir o PixelSpot como tela inicial (launcher)
Com o PixelSpot como launcher padrão, a caixa volta direto pro conteúdo sempre que alguém aperta o botão Home do controle, ou depois de qualquer coisa que tire o foco do app (um pop-up do sistema, por exemplo) — sem precisar abrir o app manualmente de novo. Se você já fez o passo 2 (Device Owner), pule este passo — já fica definido sozinho.
Abra o PixelSpot pelo menos uma vez
Isso registra o app na lista de “telas iniciais” disponíveis do Android.
Vá em Configurações → Apps
Procure por “Apps padrão” (ou “Configurações padrão”, “Home app” — o nome muda conforme o fabricante da caixa) e depois por “Tela inicial” / “App inicial” / “Launcher”.
Selecione “PixelSpot” na lista
A partir daí, o botão Home do controle sempre volta pro player.
Se o menu não aparecer
Algumas TV boxes certificadas para Google TV/Android TV travam o launcher oficial e não permitem trocar. Nesse caso, o Google Play Services geralmente também está mais restrito — vale considerar uma caixa mais simples (Android “aberto”, sem certificação Google TV) pra um terminal dedicado.
É reversível a qualquer momento: basta repetir o passo e escolher o launcher original do fabricante.
Desativar o launcher antigo
Mesmo com o PixelSpot escolhido como tela inicial, algumas caixas voltam pro launcher do fabricante sozinhas — depois de uma atualização do sistema, de um reinício ou de um pop-up que rouba o foco. Desativar o launcher antigo tira ele da disputa pelo botão Home de vez. É o passo que resolve quando o passo 3 não segura sozinho. Só necessário se você não fez o passo 2 — com Device Owner, o Android nem oferece escolha de launcher pro usuário, e launchers conhecidos do fabricante (como o mboxlauncher da Amlogic) já saem da lista de apps sozinhos.
Veja quem responde pelo botão Home
Antes de desativar qualquer coisa, liste quem está registrado como tela inicial na caixa. Vão aparecer o PixelSpot, o launcher do fabricante e, em aparelhos com Android TV, o FallbackHome do sistema:
Desative o launcher do fabricante
O pacote abaixo é o launcher das caixas com chip Amlogic/Droidlogic, o mais comum por aqui. Troque pelo nome que apareceu na sua lista se for outro:
Não desative o FallbackHome
Na lista do passo 1 costuma aparecer com.android.tv.settings.system.FallbackHome. Ele não é um launcher concorrente: é a tela que o Android usa enquanto o sistema ainda está subindo, antes do launcher de verdade assumir. Deixe como está — sem ele a caixa pode não completar o boot. Repare também que o FallbackHome vive dentro do pacote das Configurações (com.android.tv.settings), então desativar esse pacote levaria junto o menu de Configurações do aparelho.
Pra reverter
Desativar o Google Play Services
Um terminal de sinalização não usa conta Google, notificações ou apps de terceiros — mas o Google Play Services e a Play Store continuam rodando em segundo plano por padrão, verificando atualizações e sincronizando dados. Em caixas mais fracas, isso disputa CPU e rede com o próprio PixelSpot. Desativar é opcional, mas recomendado depois que o terminal já estiver funcionando. Diferente dos outros passos opcionais, isso não fica automático mesmo com o passo 2 — desativar os serviços do Google mexe em coisas que variam por aparelho, então a decisão fica sempre manual (aqui via ADB, ou remotamente adicionando com.google.android.gms na lista de bloatware do painel).
Antes de desativar: confirme que o PixelSpot já está funcionando normalmente na caixa (conectado, exibindo a grade) e que ela já está com a data/hora e a rede Wi-Fi configuradas — algumas caixas usam o Play Services pra isso na primeira configuração.
Tente pelo menu de Configurações primeiro
Configurações → Apps → Ver todos os apps → “Serviços do Google Play” → Desativar (se o botão estiver disponível).
Se o botão estiver esmaecido (mais comum em TV box)
Muitos fabricantes protegem esse app contra desativação pelo menu. O caminho que funciona nesse caso é via ADB, a partir de um computador na mesma rede (ou por cabo USB), com a “Depuração USB”/“Depuração de rede” ativada em Opções do desenvolvedor:
Se quiser desativar a Play Store também (não é necessária pra rodar o PixelSpot):
O Katniss (busca por voz do Android TV) depende do Play Services e continua tentando rodar mesmo com ele desativado — sem efeito prático, mas some da lista de processos se desativar junto:
Pra reverter
Remover bloatware do fabricante
TV boxes genéricas costumam vir com vários serviços de fábrica rodando em segundo plano — DLNA, "media center" próprio, agente de atualização OTA, apps de teste da linha de produção. Cada um disputa CPU e RAM com o PixelSpot, e em caixas mais fracas isso é o suficiente pra derrubar o processo do app por pressão de memória. Os nomes de pacote variam por fabricante — o passo 1 abaixo mostra como descobrir os da sua caixa. Se você já fez o passo 2 (Device Owner), isso já acontece sozinho — os pacotes de bloatware conhecidos (incluindo launchers concorrentes de fabricante) são ocultados automaticamente assim que o painel detecta o terminal como Device Owner, sem precisar abrir ADB nem clicar em nada. Dá pra editar a lista a qualquer momento pelo ícone de caixa na listagem de terminais.
Veja o que está rodando
Lista todos os processos ativos, agrupados por importância (primeiro plano, serviço, cache) — é mais útil que só listar apps instalados, porque mostra o que de fato está competindo por memória agora:
Agente de atualização OTA
Os pacotes abaixo (ADUPS, terceiro comum em TV boxes genéricas, e RKUpdateService, o agente OTA próprio de caixas com chip Rockchip) ficam ativos em segundo plano sem necessidade real num terminal dedicado — sua caixa pode ter um, outro, ou nenhum dos dois. Desativar tira esse peso, mas a caixa deixa de receber atualização de firmware do fabricante por esse canal — normalmente não faz diferença pra um terminal de sinalização.
Exemplos vistos em campo (Rockchip)
Numa caixa com chip Rockchip, esses pacotes apareceram brigando por memória com o PixelSpot — inclusive um serviço de DLNA/media center tentando (e falhando) abrir os vídeos que o próprio PixelSpot baixa pra cache, e um app genérico do fabricante (nome de pacote "com.example...", sinal de firmware branco/não polido) só pra controlar o LED de status da caixa, rodando como processo persistente. Não existem em toda TV box; use como referência, e confirme com a lista do passo 1 antes de desativar algo na sua.
Não desative às cegas
Alguns pacotes de sistema têm papéis que não são óbvios pelo nome, e desativar o errado pode deixar a caixa sem rede, sem áudio ou sem conseguir reiniciar sozinha. Desative um de cada vez e confirme que o PixelSpot continua funcionando antes do próximo. Tudo aqui é reversível com pm enable, mas descobrir qual dos dez pacotes quebrou a caixa custa mais que fazer com calma.
Reversível a qualquer momento com adb shell pm enable <pacote>, o mesmo comando usado pra reverter os passos 4 e 5.
Se algo der errado
A tela abre em branco ou preto
Isso era sintoma do player antigo, que desenhava dentro do navegador interno do Android (o WebView) e parava numa caixa com WebView velho. O player atual não usa WebView — desenha direto, como um jogo. Se a tela ficar em branco hoje, o motivo é outro: confira se a caixa tem rede e se o terminal aparece online no painel.
O vídeo engasga nas transições
Normalmente é GPU. Reduza a quantidade de vídeos simultâneos na grade ou troque por um aparelho da coluna Recomendado da tabela do passo 1.
A caixa não volta pro app sozinha
Falta definir o PixelSpot como launcher — passo 2 (automático) ou passo 3 (manual). Se já estiver definido e mesmo assim a caixa voltar pro menu do fabricante, o launcher antigo está tomando o Home de volta: passo 4. Em Smart TVs com Android embutido isso nem sempre é permitido.