Accessibility Service wasn't made for this
I pressed Home on the remote. The screen filled with banners. Turned the TV off, back on, same thing.
Decided to cut what I could without root and without flashing anything custom. A Deco M4 mesh and an Android TV 11” was what I had to work with.
DNS first. Pi-hole on a Raspberry would be overkill for one TV and two phones. Pointing the router’s DNS at public AdGuard should be enough. Every device on Wi-Fi resolves through their list after that and common trackers and ads die before they reach anything.
In the Deco app: More, Advanced, DHCP Server.
Primary: 94.140.14.14
Secondary: 94.140.15.15
Save.
Phone worked. PC didn’t. Thought it was AdGuard. Wasn’t.
Windows had 1.1.1.1 pinned directly on the Wi-Fi adapter from way before I’d even installed AdGuard. Some Anna’s Archive thing months ago had pushed me to do it and I’d forgotten. That pinned value overrides DHCP, so the router’s DNS change never reached the PC. Settings, Network, Wi-Fi, the connected network, DNS server assignment back to Automatic. Then in PowerShell:
nslookup doubleclick.net
Back came *** can't find doubleclick.net: Non-existent domain. NXDOMAIN, blocked.
Worth flagging another trap. If you have uBlock Origin Lite on Chrome or Brave, it kills ads before the query even leaves the PC. I spent ten minutes thinking AdGuard was flying when it was uBO doing all the work alone. nslookup is the only clean test.
Small setback on the way. With AdGuard on, annas-archive.org stopped resolving. Some blocklist had picked it up. The mirrors .gd, .se, .li pass clean. I bookmarked the .gd and moved on. Blocking Anna’s Archive by default is a political call dressed up as security.
Since I was already in the Deco app, I went through the rest. UPnP first, since it opens ports on its own without telling you. WPS off too, even though I’d never used it in my life. Notorious protocol (CVE-2011-5053, Reaver), and modern firmware like the Deco M4 already mitigates it with lockout, but no reason to leave the door wedged. Fast Roaming and Beamforming on, the handoff between the two Decos got less ugly. Firmware on auto-update. Guest Network permanently on, because explaining a 24-character password to every visitor is a hassle.
Then the TV. Two sources of ads I could actually do something about: native YouTube and the OEM launcher. The third source, apps that serve ads through the same CDN as the content (Pluto and Tubi being the obvious ones), I left alone for now.
YouTube was by far the worst. SmartTube Next replaces it cleanly. Zero ads, SponsorBlock integrated, login optional. Not on the Play Store though, so you have to sideload. Downloader (AFTVnews), Unknown Sources enabled for Downloader, open it, type smarttubeapp.github.io, grab the Stable APK, install.
Then Projectivy. I wanted off the OEM launcher, the OK one, the kind that fills the home with “Featured”, “Recommended”, “Top picks” rows. Projectivy gives you a clean grid of only the apps you’ve installed.
Install was easy, it’s on the Play Store. Setting it as default was more annoying than I expected.
The “Override current launcher” toggle inside Projectivy didn’t take. Clear defaults on the old launcher in Settings, Apps. OK doesn’t expose that option. Developer options. Pressed OK seven times on “Android TV OS Build”, activated it, went looking for USB debugging and Wireless debugging. Neither exists in this firmware. OK stripped them out.
A firmware that’s been crippled this much isn’t a technical decision, it’s product sabotage. An OEM that hides Settings and blocks ADB is telling you the product lives off forced ads.
After a lot of digging I found a way out. Grant Accessibility Service permission to Projectivy. Accessibility was built for screen readers, but some launchers use that permission to intercept the Home button when the normal path is blocked. Climbing in through the window because someone locked the door.
Settings, Accessibility, list of services, Projectivy, enabled. Pressed Home. Projectivy opened. Reboot. The TV booted straight into Projectivy. Worked.
This path isn’t documented anywhere obvious. Leaving it here for anyone with an OK TV or any OEM that blocks launcher choice via Settings and hides ADB. I never found official documentation for Accessibility Service intercepting Home on Android TV. If you know the mechanism behind it, leave a comment.
Ads inside Netflix’s basic tier and Prime Video come through the content CDN. Filtering them would need HTTPS MITM with a root CA installed, and that breaks streaming on the way through. Not worth it.
Telemetry baked into OK’s firmware is a black box. Without a custom ROM, there’s nothing to do.
Anna’s Archive still works via mirror. What’s left of the ads is something I can live with for now.
If the annoyance grows, NextDNS in place of public AdGuard is the next move. Per-domain logs and a whitelist.
Apertei Home no controle. A tela encheu de banners. Desliguei a TV, liguei de novo, mesma coisa.
Decidi cortar o que desse pra cortar sem root e sem firmware custom. Deco M4 em mesh e uma Android TV 11” era o que eu tinha pra trabalhar.
DNS primeiro. Pi-hole num Raspberry era overkill pra uma TV e dois celulares. Apontar o DNS do roteador pro AdGuard público já devia resolver. A partir daí todo device no Wi-Fi resolve pela lista deles e a maioria dos tracker e ad morre antes de chegar em qualquer coisa.
No app Deco: More, Advanced, DHCP Server.
Primary: 94.140.14.14
Secondary: 94.140.15.15
Save.
Celular funcionou. PC não. Achei que era o AdGuard. Não era.
O Windows tinha 1.1.1.1 fixado direto no adaptador Wi-Fi, lá fazia tempo, antes de eu ter sequer instalado o AdGuard. Algum problema com Anna’s Archive uns meses atrás tinha me feito fixar e eu esqueci. Esse valor fixo sobrescreve DHCP, então a mudança de DNS no roteador nunca chegava no PC. Settings, Network, Wi-Fi, rede conectada, DNS server assignment de volta pra Automatic. Aí no PowerShell:
nslookup doubleclick.net
Voltou *** can't find doubleclick.net: Non-existent domain. NXDOMAIN, bloqueado.
Vale anotar outra armadilha. Se você tem uBlock Origin Lite no Chrome ou Brave, ele mata ad antes da consulta sair do PC. Passei uns dez minutos achando que o AdGuard tava voando, era o uBO fazendo o trabalho sozinho. Só nslookup é teste limpo.
Pequeno contratempo no caminho. Com AdGuard ligado, annas-archive.org parou de resolver. Entrou em alguma blocklist. Os mirrors .gd, .se, .li passam limpo. Bookmarkei o .gd e segui. Bloquear Anna’s Archive por default é decisão política fantasiada de segurança.
Já que tava no app do Deco, fui revisando o resto. UPnP primeiro, porque abre porta sozinho sem avisar. WPS desligado também, mesmo eu nunca tendo usado na vida. Protocolo famigerado (CVE-2011-5053, Reaver), e firmware moderno tipo do Deco M4 já mitiga com lockout, mas não tem motivo pra deixar a porta aberta. Fast Roaming e Beamforming ligados, handoff entre os dois Decos ficou menos feio. Firmware em auto-update. Guest Network ligada permanente, porque explicar senha de 24 caracteres pra cada visita é um saco.
Depois a TV. Duas frentes de ad em que dava pra fazer alguma coisa: YouTube nativo e o launcher OEM. A terceira frente, apps que servem ad pelo mesmo CDN do conteúdo (Pluto e Tubi sendo os mais óbvios), deixei pra outra hora.
YouTube era de longe o pior. SmartTube Next substitui ele direto. Zero ad, SponsorBlock integrado, login opcional. Não tá na Play Store, tem que sideloadar. Downloader (AFTVnews), Unknown Sources liberado pro Downloader, abre, digita smarttubeapp.github.io, pega o APK Stable, instala.
Depois o Projectivy. Eu queria sair do launcher OEM, o da OK, aquele que enche a home de fileiras “Featured”, “Recomendado”, “Top picks”. O Projectivy te dá uma grade limpa só com os apps instalados.
Instalação foi tranquila, tá na Play Store. Definir como padrão foi mais chato do que eu esperava.
O toggle “Override current launcher” do próprio Projectivy não assumiu. Clear defaults no launcher antigo em Settings, Apps. A OK não expõe a opção. Developer options. Apertei OK sete vezes em “Android TV OS Build”, ativou, fui atrás de USB debugging e Wireless debugging. Nenhum dos dois existe nesse firmware. A OK removeu.
Firmware tão capado quanto esse não é decisão técnica, é sabotagem de produto. OEM que esconde Settings e bloqueia ADB tá te dizendo que o produto vive de ad forçado.
Depois de bastante busca achei uma saída. Dar permissão de Accessibility Service pro Projectivy. Accessibility foi feito pra leitor de tela, mas alguns launchers usam essa permissão pra interceptar o botão Home quando o caminho normal tá bloqueado. Entrar pela janela porque trancaram a porta.
Settings, Accessibility, lista de serviços, Projectivy, ativei. Apertei Home. Projectivy abriu. Reboot. A TV ligou direto no Projectivy. Funcionou.
Esse caminho não tá documentado em lugar nenhum óbvio. Fica aqui pra quem tem TV OK ou qualquer OEM que bloqueie escolha de launcher via Settings e esconda ADB. Nunca achei documentação oficial pro Accessibility Service interceptar o Home em Android TV. Se você sabe o mecanismo por trás, comenta aí.
Ad dentro do Netflix tier básico e Prime Video vem pelo CDN do conteúdo. Filtrar exigiria HTTPS MITM com CA raiz instalada, e isso quebra o streaming junto. Não compensa.
Telemetria embutida no firmware da OK é caixa preta. Sem ROM custom, não tem o que fazer.
Anna’s Archive ainda funciona via mirror. O ad que sobra é coisa que dá pra conviver por enquanto.
Se o incômodo crescer, NextDNS no lugar do AdGuard público é o próximo passo. Logs por domínio e whitelist.
Presioné Home en el control. La pantalla se llenó de banners. Apagué la TV, la prendí de nuevo, lo mismo.
Decidí cortar lo que se pudiera sin root y sin firmware custom. Un Deco M4 en mesh y una Android TV 11” era con lo que tenía para trabajar.
DNS primero. Un Pi-hole en una Raspberry era exagerado para una TV y dos celulares. Apuntar el DNS del router al AdGuard público ya tenía que alcanzar. A partir de ahí cada dispositivo en el Wi-Fi resuelve por la lista de ellos y la mayoría de los trackers y anuncios mueren antes de llegar a ningún lado.
En la app Deco: More, Advanced, DHCP Server.
Primary: 94.140.14.14
Secondary: 94.140.15.15
Save.
El celular funcionó. La PC no. Pensé que era AdGuard. No era.
Windows tenía 1.1.1.1 fijado directo en el adaptador Wi-Fi, ahí desde hacía rato, antes de que yo siquiera instalara AdGuard. Algún problema con Anna’s Archive hacía unos meses me había hecho fijarlo y me había olvidado. Ese valor fijo sobreescribe DHCP, así que el cambio de DNS en el router nunca llegaba a la PC. Settings, Network, Wi-Fi, red conectada, DNS server assignment de vuelta a Automatic. Después en PowerShell:
nslookup doubleclick.net
Volvió *** can't find doubleclick.net: Non-existent domain. NXDOMAIN, bloqueado.
Vale anotar otra trampa. Si tenés uBlock Origin Lite en Chrome o Brave, mata los anuncios antes de que la consulta salga de la PC. Pasé unos diez minutos pensando que AdGuard volaba, era uBO haciendo todo el trabajo solo. Solo nslookup es un test limpio.
Pequeño contratiempo en el camino. Con AdGuard prendido, annas-archive.org dejó de resolver. Alguna blocklist lo había levantado. Los mirrors .gd, .se, .li pasan limpio. Bookmarkeé el .gd y seguí. Bloquear Anna’s Archive por defecto es una decisión política disfrazada de seguridad.
Ya que estaba en la app del Deco, fui revisando el resto. UPnP primero, porque abre puertos solo sin avisar. WPS también apagado, aunque nunca lo usé en mi vida. Protocolo famoso por malo (CVE-2011-5053, Reaver), y el firmware moderno como el del Deco M4 ya lo mitiga con lockout, pero no hay motivo para dejar la puerta abierta. Fast Roaming y Beamforming activados, el handoff entre los dos Decos quedó menos feo. Firmware en auto-update. Guest Network encendida permanente, porque explicar una contraseña de 24 caracteres a cada visita es un fastidio.
Después la TV. Dos frentes de anuncios donde podía hacer algo: YouTube nativo y el launcher OEM. El tercer frente, apps que sirven anuncios por el mismo CDN del contenido (Pluto y Tubi siendo los más obvios), lo dejé para otra vez.
YouTube era por mucho el peor. SmartTube Next lo reemplaza directo. Cero anuncios, SponsorBlock integrado, login opcional. No está en la Play Store, hay que sideloadearlo. Downloader (AFTVnews), Unknown Sources habilitado para Downloader, lo abrís, escribís smarttubeapp.github.io, agarrás el APK Stable, instalás.
Después el Projectivy. Quería salir del launcher OEM, el de OK, ese que llena la home con filas de “Featured”, “Recomendado”, “Top picks”. Projectivy te da una grilla limpia solo con las apps instaladas.
Instalar fue tranquilo, está en la Play Store. Configurarlo como predeterminado fue más molesto de lo que esperaba.
El toggle “Override current launcher” del propio Projectivy no agarró. Clear defaults en el launcher viejo en Settings, Apps. La OK no expone esa opción. Developer options. Apreté OK siete veces en “Android TV OS Build”, se activó, fui a buscar USB debugging y Wireless debugging. Ninguno de los dos existe en este firmware. La OK los removió.
Un firmware tan capado como este no es una decisión técnica, es sabotaje de producto. Un OEM que esconde Settings y bloquea ADB te está diciendo que el producto vive de publicidad forzada.
Después de bastante búsqueda encontré una salida. Darle permiso de Accessibility Service al Projectivy. Accessibility se hizo para lectores de pantalla, pero algunos launchers usan ese permiso para interceptar el botón Home cuando el camino normal está bloqueado. Entrar por la ventana porque trancaron la puerta.
Settings, Accessibility, lista de servicios, Projectivy, activado. Apreté Home. Projectivy se abrió. Reboot. La TV arrancó directo en Projectivy. Funcionó.
Este camino no está documentado en ningún lado obvio. Lo dejo acá para quien tenga una TV OK o cualquier OEM que bloquee la elección de launcher vía Settings y esconda ADB. Nunca encontré documentación oficial sobre Accessibility Service interceptando el Home en Android TV. Si sabés el mecanismo detrás, comentá.
Anuncios dentro del tier básico de Netflix y Prime Video vienen por el CDN del contenido. Filtrarlos requeriría HTTPS MITM con una CA raíz instalada, y eso rompe el streaming de paso. No compensa.
La telemetría embebida en el firmware de OK es una caja negra. Sin ROM custom, no hay nada que hacer.
Anna’s Archive sigue funcionando vía mirror. Lo de los anuncios que queda es algo con lo que se puede convivir por ahora.
Si el incómodo crece, NextDNS en lugar del AdGuard público es el próximo paso. Logs por dominio y whitelist.