An evidence-annotated DNS blocklist for LG webOS TV telemetry — the data your TV sends home about what you watch and do — plus ads and phone-home traffic. It is for LG TV owners who run a DNS blocker (Pi-hole, AdGuard Home, NextDNS) and want the TV to stop reporting home without breaking the apps they use.
Not affiliated with LG Electronics. LG is a trademark of LG Corp.
Built by watching a real LG G1's network traffic and DNS logs, cross-checked against public reports. Every entry notes what it blocks and the evidence behind it — observation, not speculation. Method and replication steps: docs/methodology.md.
| SAFE | STRICT | |
|---|---|---|
| Blocks | Telemetry, ads, and ACR (Automatic Content Recognition — the TV's "what are you watching" reporting) | Everything in SAFE, plus firmware OTA (over-the-air) updates, ThinQ cloud sync, and LG Channels |
| For | Almost everyone | Privacy-focused users who want the TV to fully stop talking to LG |
| Cost | Streaming apps, Content Store, and app updates keep working (verified on an LG G1) | Those services stop working on purpose |
What breaks in STRICT (read this):
| Feature | SAFE | STRICT |
|---|---|---|
| Netflix / Prime / HBO / YouTube | works | works |
| LG Content Store | works | may degrade (carve-out recipe) |
| Firmware OTA updates | works | blocked |
| ThinQ app / voice assistant cloud sync | works | blocked |
| LG Channels | works | blocked |
| LG account login | works | may fail |
Pick a tier above, then load the matching file into your blocker:
| Your blocker | SAFE | STRICT |
|---|---|---|
| Pi-hole, NextDNS, Unbound | safe-domains.txt | strict-domains.txt |
| AdGuard Home, uBlock Origin | safe-adblock.txt | strict-adblock.txt |
Rooted TV /etc/hosts | safe-hosts.txt | strict-hosts.txt |
Checksums: SHA256SUMS. Not in Germany? The exact-name lists only cover the regions present — see the region FAQ and scripts/localize.py.
Rooted TV (webosbrew / Homebrew Channel): mirror the -hosts.txt entries into /etc/hosts; a webosbrew init.d hook (a boot-time script) can rewrite that file at every boot (it lives in RAM and resets on reboot — mechanism: webosbrew filesystem-overlays). Mirror src/safe.txt, or src/strict.txt for the full lockdown. Separately, examples/webos-hooks/ ships a boot hook that forces all TV DNS through your resolver and drops encrypted DNS (DoT/DoQ, port 853) — the fix for the hardcoded-resolver bypass in caveat 1. Rollback and caveats: hook README.
8.8.8.8 / 1.1.1.1 directly, and can use encrypted DNS, so a DNS blocklist alone is not a guarantee. Redirect outbound port 53 to your resolver and block port 853 at your firewall; on a rooted TV the DNS-egress hook does it on-device. A hosts file alone is not enough either — some daemons ignore it and query the TV's built-in DNS resolver directly.scripts/localize.py --region <cc>.lge.com? That would kill the Content Store, updates, and account login along with the telemetry.Full list: docs/faq.md.
snu.lge.com # STRICT: firmware OTA check server.src/ only (CI regenerates the lists): CONTRIBUTING.md (templates: new domain, breakage).Content and generated lists: CC BY 4.0. Scripts and workflows: MIT.
49 commits
11 commits
Python
100.0%
An evidence-annotated DNS blocklist for LG webOS TV telemetry — the data your TV sends home about what you watch and do — plus ads and phone-home traffic. It is for LG TV owners who run a DNS blocker (Pi-hole, AdGuard Home, NextDNS) and want the TV to stop reporting home without breaking the apps they use.
Not affiliated with LG Electronics. LG is a trademark of LG Corp.
Built by watching a real LG G1's network traffic and DNS logs, cross-checked against public reports. Every entry notes what it blocks and the evidence behind it — observation, not speculation. Method and replication steps: docs/methodology.md.
| SAFE | STRICT | |
|---|---|---|
| Blocks | Telemetry, ads, and ACR (Automatic Content Recognition — the TV's "what are you watching" reporting) | Everything in SAFE, plus firmware OTA (over-the-air) updates, ThinQ cloud sync, and LG Channels |
| For | Almost everyone | Privacy-focused users who want the TV to fully stop talking to LG |
| Cost | Streaming apps, Content Store, and app updates keep working (verified on an LG G1) | Those services stop working on purpose |
What breaks in STRICT (read this):
| Feature | SAFE | STRICT |
|---|---|---|
| Netflix / Prime / HBO / YouTube | works | works |
| LG Content Store | works | may degrade (carve-out recipe) |
| Firmware OTA updates | works | blocked |
| ThinQ app / voice assistant cloud sync | works | blocked |
| LG Channels | works | blocked |
| LG account login | works | may fail |
Pick a tier above, then load the matching file into your blocker:
| Your blocker | SAFE | STRICT |
|---|---|---|
| Pi-hole, NextDNS, Unbound | safe-domains.txt | strict-domains.txt |
| AdGuard Home, uBlock Origin | safe-adblock.txt | strict-adblock.txt |
Rooted TV /etc/hosts | safe-hosts.txt | strict-hosts.txt |
Checksums: SHA256SUMS. Not in Germany? The exact-name lists only cover the regions present — see the region FAQ and scripts/localize.py.
Rooted TV (webosbrew / Homebrew Channel): mirror the -hosts.txt entries into /etc/hosts; a webosbrew init.d hook (a boot-time script) can rewrite that file at every boot (it lives in RAM and resets on reboot — mechanism: webosbrew filesystem-overlays). Mirror src/safe.txt, or src/strict.txt for the full lockdown. Separately, examples/webos-hooks/ ships a boot hook that forces all TV DNS through your resolver and drops encrypted DNS (DoT/DoQ, port 853) — the fix for the hardcoded-resolver bypass in caveat 1. Rollback and caveats: hook README.
8.8.8.8 / 1.1.1.1 directly, and can use encrypted DNS, so a DNS blocklist alone is not a guarantee. Redirect outbound port 53 to your resolver and block port 853 at your firewall; on a rooted TV the DNS-egress hook does it on-device. A hosts file alone is not enough either — some daemons ignore it and query the TV's built-in DNS resolver directly.scripts/localize.py --region <cc>.lge.com? That would kill the Content Store, updates, and account login along with the telemetry.Full list: docs/faq.md.
snu.lge.com # STRICT: firmware OTA check server.src/ only (CI regenerates the lists): CONTRIBUTING.md (templates: new domain, breakage).Content and generated lists: CC BY 4.0. Scripts and workflows: MIT.
49 commits
11 commits
Python
100.0%