Guia de solução de problemas para travamentos do sistema ao rodar
Atualizado 2026-10-30
Por que o AVD modificado trava o Android TV
Os AVDs (Android Virtual Devices) usados para testes e development no Android TV ganham vida própria quando você os instala com modificações — shells customizados, pacotes de configuração de terceiros ou firmware não oficial. AVDs modificados são populares entre developers que querem validar como o sistema lida com alterações profundas antes de levar tudo para um dispositivo real. O problema é que essas alterações introduzem atritos: o XROOT e o ZRAM, a política de memória, o cache de apps de terceiros e até a forma como o Launcher padrão reage a módulos carregados fora da assinatura original. O resultado costuma ser um “travamento silencioso” — tela cinza, app que para de responder, ou o próprio TV reiniciando sem aviso.
Se você está testando uma ROM personalizada, um APK de overlay ou um firmware modificado que roda no seu Chromebook Android TV, este guia abrange os pontos mais comuns em que a instalação falha, com soluções que preservam a funcionalidade do Launcher CleanYourTV.
O que realmente causa os travamentos no boot
Travamentos em dispositivos Android TV com AVDs modificados raramente vêm de uma única linha de código. Na prática, a combinação se repete:
- ZRAM insuficiente para o volume de dados do AVD. O AVD frequentemente aponta para uma partição de memória maior que a do hardware; quando a compressão RAM entra em conflito com o ZRAM alocado, o boot congela antes de qualquer interface aparecer.
- Serviço XROOT travado por permissões incompletas. Apps modificados que injetam código direto no processo do sistema podem bloquear o service que gerencia a sandbox do device, gerando reinicializações em loop.
- Cache de apps de terceiros não limpo. Um APK de modificação que escreve no
/data/datado framework, junto com um cache delibc++.soduplicado, provoca corrupção de memória durante a inicialização do Launcher CleanYourTV. - Boot image com DRM patch desatualizado. Se você compactou o AVD a partir de uma build do Google com patches de DRM desestimados, o kernel pode recusar inicializar a partição de criptografia, e o TV fica preso entre “carregando” e “desbloqueando”.
O resultado mensurável mais frequente nos laboratórios de teste é um boot que demora de 8 a 14 segundos a mais do que o tempo de boot do firmware base, e que apresenta kernel panics exibidos na logging do ADB após a inicialização do Android.
Como diagnosticar o problema com ADB e logs reais
Antes de tentar reparar, colete os logs corretos. No PC, execute:
adb logcat -g --no-pager | grep -E "(ActivityManager|ZRAM|XROOT|Boot)" > /tmp/android_tv.log
No próprio TV, abra “Conexões > Logs de depuração” e envie o arquivo para o PC. Os elementos essenciais para um diagnóstico:
- Padrão de crash no boot: Procure por
android.os.OutOfMemoryError,java.lang.OutOfMemoryErrorouZRAMna seção de logs do boot. Isso indica que o servidor de memória do AVD está estourando antes da interface do usuário. - Perdas de renderização do Launcher CleanYourTV: Linhas como
SurfaceFlingercomcrashlogo apósLauncherServiceindicam que o padrão de renderização do overlay modificado é incompatível com o que o CoreWidget fornece. - Reinicializações silenciosas: Se o TV liga e desliga em loop, mas os logs não mostram erro explícito, provavelmente é um watchdog de segurança disparado por um módulo que consome RAM acima de 90% no primeiro minuto de uso.
Se o AVD foi criado a partir de uma build com o boot.img renomeado, o comando adb reboot-bootloader não carrega a imagem corretamente — sempre use adb reboot com o AVD selecionado no developer settings.
Passos práticos para recuperar o AVD modificado sem perder o CleanYourTV
O objetivo é manter o Launcher CleanYourTV funcional enquanto você repara o AVD. Siga esta sequência.
Passo 1 — Limpe o cache e o estado de boot antes de tudo.
Reinicie o TV normalmente, desative o Launcher CleanYourTV nas configurações do sistema, e execute adb reboot. Quando o aparelho reiniciar, verifique o status do boot. Se o boot ainda travar, o problema é de imagem, não de configuração.
Passo 2 — Reduza a alocação de ZRAM e memory.
Acesse as definições do AVD e reduza o valor de zram_size de 512MiB para 256MiB. Faça isso no build.proof.package do your custom AVD ou recrie o config do device in the emulator. Mantenha o memoryClass abaixo de 80% do total. Com o ZRAM menor, os travamentos de compressão caem drasticamente; a troca custa cerca de 4 a 6 segundos a mais no primeiro boot.
Passo 3 — Remova pacotes de terceiros do overlay.
Se você instalou um APK de customização (por exemplo, um que altera o tema do Launcher CleanYourTV), desinstale-o imediatamente. Um APK mal escrito que modifica a classe com.google.android.launcher2 (ou a versão local do CleanYourTV) quebra a inicialização do sistema. Depois instale apenas a versão original, limpe o /data/local/tmp/*, e faça boot.
Passo 4 — Verifique o DRM patch.
Se você compilou o AVD a partir de uma versão do Android TV com patches DRM personalizados, compare o hash do boot.img com a imagem de referência do fabricante. Se o patch for mais antigo que a build do AVD, atualize para o boot.img da mesma versão do Android TV que o seu firmware suporta.
Quando e por que vale a pena usar o CleanYourTV em um AVD modificado
O CleanYourTV é um launcher minimalista que remove todos os apps de terceiros do sistema e prepara o TV para instalações de desenvolvimento. Ele funciona bem em firmware oficial porque its app whitelist é limitado e o app em si não faz chamadas de sistema de alteração. Em um AVD modificado, o risco é que o CleanYourTV, ao remover apps de sistema que dependem do overlay, expõe uma superfície de ataque maior: um app de rede escondido no overlay pode executar durante a inicialização, antes do sistema limpar os artifacts maliciosos.
A recomendação mais segura é: use o CleanYourTV no AVD apenas para validar a interface e o boot. Depois, desative ou remova o CleanYourTV antes de levar a build para o dispositivo real. Se precisar manter o CleanYourTV no TV final, selecione o Launcher padrão do fabricante e garanta que o AVD modificado nunca tenha feito upload de apps personalizados para o storage do dispositivo.
Resumo: prevenção versus correção em AVDs com modificações
Travamentos ao rodar versões modificadas do AVD no Android TV são um problema de integração entre o kernel, o ZRAM, o serviço de renderização do Launcher CleanYourTV e os arquivos de configuração do AVD. O que resolve 90% dos casos é reduzir a memória de compressão, remover todo APK de terceiros do overlay, e garantir que o boot.img e o patch de DRM estão alinhados com a build do AVD.
Seu checklist de prevenção:
- Build oficial ou com patches de DRM verificados
- ZRAM de 256MiB ou menos, memoryClass ≤ 80%
- Zero de apps de terceiros instalados no sistema antes de validar o boot
- CleanYourTV usado apenas como ferramenta de validação, não como base permanente
Seguindo essa sequência, você consegue testar modificações no Android TV no AVD, confirmar que o boot é estável e que o Launcher CleanYourTV funciona, sem arriscar a integridade do dispositivo final.
Leia também: mais sobre Android TV
Leia a seguir
Como instalar o AVD no Android TV para testar APKs antes de flashear
Guia passo a passo para criar um AVD (Android Virtual Device) no emulador Android Studio e usar o AVD para rodar e testar APKs no Android TV antes de gravar o flash
Como remover dados de apps sideloadados no CleanYourTV sem perder
Guia prático para apagar dados de apps previamente sideloadados no CleanYourTV em Android TV, mantendo configurações como favoritos e perfis,