- Shell 89.4%
- Python 10.6%
| adguard | ||
| root | ||
| ssap | ||
| DEPLOYMENT.md | ||
| README.md | ||
lg-webos-debloat
De-bloat and de-telemetry LG webOS TVs — without root, where possible, and fully where firmware still permits rooting.
Validated on: LG OLED65G1PUA (webOS 6, 2021) + AdGuard Home on a home router.
Why
LG webOS TVs ship with automatic content recognition (ACR — fingerprints everything you watch), home-screen ad tiles, promotional notifications, and interest-based ad tracking, all on by default. Most of it can be disabled without rooting; the rest is killable at DNS level.
What's in here
| Path | What | Root needed |
|---|---|---|
adguard/lg-webos-blocklist.txt |
DNS blocklist: ad delivery, ACR, telemetry. Firmware-update hosts deliberately allowed. | no |
ssap/lg-ssap-debloat.py |
Turns off ad targeting, promo notifications, content recommendations, Live Plus ACR via the TV's own settings API (SSAP). Reversible. | no |
root/webos-debloat.sh |
Full root debloat (from lucataco's gist, MIT): hides bloat apps, stops preloading, kills promos/ACR system-wide. Reversible, firmware-update-safe. | yes |
| → own-your-glass | Modern root hardening suite (mic, capture leak, DNS sinkhole, consents, debloat). Validated webOS 10; see root/README.md. |
yes |
root/README.md |
Root path guide: which exploit works per webOS version, current patch status | — |
Quick start
1. DNS block (anyone, 2 minutes)
AdGuard Home → Filters → Add custom rule, paste the blocklist.
Pi-hole: same file works as a regex list (||x^ lines are compatible).
2. Settings via SSAP (no root, 2 minutes)
pip install websockets
python3 ssap/lg-ssap-debloat.py --tv <TV_IP> --apply # accept prompt on TV
python3 ssap/lg-ssap-debloat.py --tv <TV_IP> --status
python3 ssap/lg-ssap-debloat.py --tv <TV_IP> --restore # undo
3. Full debloat (root)
Read root/README.md first — most current firmware (webOS 5/6/7/9 updated
after mid-2025) is patched against all known software exploits. If your
firmware is old enough (check https://cani.rootmy.tv/), root and run:
ssh root@<TV_IP> 'cat > /tmp/webos-debloat.sh' < root/webos-debloat.sh
ssh root@<TV_IP> sh /tmp/webos-debloat.sh --plan # preview
ssh root@<TV_IP> sh /tmp/webos-debloat.sh --apply
Recommended TV menu settings (manual, complements everything)
Settings → General → System → Live Plus → Off (ACR) Settings → General → System → Additional Settings → Ad Flags / Interest-Based Ads → Off Settings → Support → Privacy & Terms → every toggle → Off / Do Not Agree (keep functional ones you want)
Notes
- Pairing: webOS may prompt on every SSAP connection on some firmware — just accept again, or use the same client key (auto-saved).
- Never block
*.lge.comfirmware hosts at DNS or updates will fail. - Undo everything:
--restore(SSAP), remove blocklist (DNS), script's--restore(root layer).
Credits
root/webos-debloat.sh— lucataco (MIT), https://gist.github.com/lucataco/7c303b443934008a9031a55cfca552ec- Root method matrix — webosbrew.org / throwaway96 exploit repos