Guides / vendors
LG (webOS)
webOS is LG’s own television platform and no other brand in our source material ships it. Two menu toggles and one settings command do most of the work available to you, and all three are free. Past that, LG’s set has a single DNS field that only unlocks when you also pin a static IP, and it dials at least two hardcoded IP addresses that no DNS filter can touch, so the router is where this guide ends up for anyone who wants the block to hold. Content recognition on webOS is Alphonso, which LG has owned since 2021, and the 2024 IMC study found that switching it off stopped the traffic to every recognition domain the researchers had identified.
Covers: LG televisions running webOS 1.x through webOS 25 (10.0). Also sold as: nothing. No other brand in our sources ships webOS. How far you can get: Tier 2 for almost everyone, though Tier 1 is where the block holds. Tier 4 is documented upstream, but as of 24 August 2025 the latest firmware for essentially all webOS 5, 6, 7 and 9 models is patched.
What this device sends home
| What | Where it goes | How often | Source |
|---|---|---|---|
| Content recognition (Alphonso, LG-owned since 2021) | eu-acrX.alphonso.tv in the EU and UK, tkacrX.alphonso.tv in the US, where X rotates |
Frames sampled every 10 ms, batched and sent every 15 seconds, peaking every minute | IMC 2024 |
| Advertising | lgads.tv, roughly 159 <cc>.lgsmartad.com hosts and 163 <cc>-ad-lgsmartad-com.aws-prd.net mirrors |
Not documented | HaGeZi, Perflyst |
| Home screen and platform telemetry | cdpbeacon, cdpsvc, homeprv, nudge, rdl, wiseconfig, recommend, service and ads under .lgtvcommon.com, plus aic.* variants |
Not documented | Perflyst |
| Service delivery platform | nextlgsdp.com family including us., ngfts., aic-gfts., rdx2.; smartshare.lgtvsdp.com, us.rdx2.lgtvsdp.com, ibis.lgappstv.com, us.ibs.lgappstv.com, ad.lgappstv.com, tv.wiselg.com, lggalleryplus.com |
Not documented | Perflyst |
| Third-party ad exchanges | yumenetworks.com, smartclip.com, lgad.cjpowercast.com.edgesuite.net |
Not documented | Perflyst |
| IoT and appliance pairing | *.lgtviot.com, *.lgthinq.com |
Not documented | Perflyst |
| Crash and diagnostic uploads | Spooled locally in /tmp/rdxd, /tmp/uploadd, /var/spool/rdxd, /var/spool/uploadd/* before upload |
Not documented | webos-homebrew-channel startup.sh |
| OTA firmware fallback | 156.147.69.32:8080, no DNS lookup |
Not documented | Level1Techs wiki, from a rooted OLED65G5WUA |
| Live telemetry | 54.186.247.229:443, no DNS lookup |
Not documented | Level1Techs wiki, from a rooted OLED65G5WUA |
| LAN inventory: device names, MAC addresses, internal IP addresses and signal strengths for phones, PCs, watches, printers, servers and HVAC equipment, plus names and signal strengths of neighbouring Wi-Fi networks | Endpoints not published | Not documented | Gamers Nexus and Level1Techs, September 2026, as reported by The Verge, PCMag and CyberInsider |
| Microphone audio captured while the screen appeared to be off | Endpoints not published | Not documented | Same |
Firmware shared-object inventories in
webosbrew/dev-toolbox-cli contain libacrcloud_recognizer.so,
libAdvertisementPlugin.so and libTVIS.so, so the engine is ACRCloud and it sits on the filesystem
where a rooted set can reach it. If you want to prove your own model ships it rather than take our
word, epk2extract pulls apart LG firmware images.
What Gamers Nexus and Level1Techs published in September 2026
Their packet captures from retail LG OLED sets are why this page exists. As reported:
- The television sweeps the local network and records device names, MAC addresses, internal IP addresses and signal strengths for phones, PCs, watches, printers, servers and HVAC equipment, plus the names and signal strengths of neighbouring Wi-Fi networks.
- Microphones captured usable audio while the screen appeared to be off.
- One G5 kept recording after its network cable was pulled and uploaded the audio once connectivity came back.
- Content recognition produced roughly 4 GB of traffic per month and kept running on some sets used as plain HDMI displays.
LG had not responded at the time of publication. Reported by The Verge, PCMag and CyberInsider.
Traffic evidence establishes which hosts a set contacted, how often, and how many bytes moved. It does not establish what was inside an encrypted payload. “This television contacted an advertising endpoint 1,400 times while idle” is supportable. “This television sent your viewing history to an advertiser” is not, unless someone has shown the payload. See LEGAL.md, where the same line holds for every page in this repository.
The specific endpoint list from that reporting has not been reproduced in any article we can cite, so
it is not in data/endpoints/lg.yml yet. What we do have is
Perflyst, which added a section headed # Gamers Nexus - LG Smart TV spying containing
aic.cdpsvc.lgtvcommon.com, aic.cdpbeacon.lgtvcommon.com, us.nextlgsdp.com,
ngfts.nextlgsdp.com, aic.rdl.lgtvcommon.com and aic-gfts.nextlgsdp.com.
Tier 0: settings only
Time: about 5 minutes. Risk: none. Reversible: yes.
Every path below is marked ⚠️ needs-confirmation. They come from LG’s own support library or from webosbrew, and nobody has checked them against real hardware for this repository. If you confirm or correct one, tell us and include your model number and firmware version.
Turn off content recognition
Live Plus is the content recognition feature on webOS. Turning it off takes five seconds and it works. The IMC 2024 team measured a complete absence of traffic to every recognition domain they had identified after opting out, and no new domains appeared.
What stops working: not yet documented. See Open questions.
| Generation | Path | Status |
|---|---|---|
| Current webOS | Settings > All Settings > General > System > Additional Settings > Live Plus | ⚠️ needs-confirmation |
Our source gives this one path and does not break it down by webOS version, so the older menu layouts are not yet documented. See Open questions.
Close the phone-control port
This one needs no developer mode and closes a real attack surface, so do it second. Setting
allowMobileDeviceAccess to false disables the SSAP listener on ports 3000 and 3001, which is the
entry point for the whole CVE-2023-63xx chain that Bitdefender documented: CVE-2023-6317
(authorisation bypass), CVE-2023-6318 (privilege escalation to root through the analytics reporting
service), CVE-2023-6319 (command injection in the lyrics library, webOS 4.9.7 to 7.3.1-43) and
CVE-2023-6320 (authenticated command injection in network configuration). Bitdefender counted over
91,000 devices exposing that LAN-intended service to the public internet (writeup).
What stops working: the SSAP listener is what phone apps use to control the television over your network, so expect phone-based remote control to stop. Which specific apps break is not documented in our sources.
luna-send -f -n 1 'luna://com.webos.settingsservice/setSystemSettings' \
'{"category":"network","settings":{"allowMobileDeviceAccess":false}}'
Documented at webosbrew’s settings notes, which record this as requiring no developer mode. There is an equivalent toggle in the television’s own menus. Our sources do not give its label or its path, so that is an open question below rather than a table row we made up.
Turn off ad tracking and personalisation
What stops working: not yet documented. See Open questions.
| Generation | Path | Status |
|---|---|---|
| Current webOS | Settings > All Settings > Support > Privacy & Terms > Advertising, then Limit Ad Tracking | ⚠️ needs-confirmation |
| Older webOS | All Settings > General > Additional Settings > Advertising | ⚠️ needs-confirmation |
Other settings worth changing
| Setting | Path | What it covers | Status |
|---|---|---|---|
| User Agreements | Settings > All Settings > Support > Privacy & Terms > User Agreements | Viewing information, voice information, interest-based advertising | ⚠️ needs-confirmation |
| Voice Recognition | Settings > All Settings > General > AI Service > Voice Recognition | Microphone and voice command handling. Expect voice commands to stop once this is off. | ⚠️ needs-confirmation |
Our sources give no menu path for turning off automatic firmware updates or local network access on webOS. Not yet documented. See Open questions.
What this does not fix: the two hardcoded addresses at the top of this page, 156.147.69.32:8080 and
54.186.247.229:443, are dialled without a DNS lookup, so no menu toggle and no DNS filter reaches
them. A Level1Techs wiki page also states that some webOS firmware hardcodes 8.8.8.8, which is
a secondary source we have not confirmed. Separately, Mazhar and Shafiq found that 68% of
smart televisions in 200-plus homes reached Google Public DNS directly rather than the resolver their
router handed them. Go to Tier 1 and do it at the router.
Tier 1: DNS
Time: 30 minutes at the router. Risk: none to the TV. Reversible: yes.
webOS has one DNS field, not two, and it is not standalone. Unticking Set Automatically pins a static IP address at the same time, so you cannot change DNS without also taking over addressing for that device. Whether the firmware then honours what you typed is unsettled, since a hardcoded 8.8.8.8 fallback has been reported on some builds and never confirmed.
On the device
| Generation | Path | Status |
|---|---|---|
| webOS 6.0 and later, Wi-Fi | Settings > All Settings > General > Network > Wi-Fi Connection > Advanced Wi-Fi Settings, untick Set Automatically, edit DNS Server | ⚠️ needs-confirmation |
| webOS 6.0 and later, wired | Settings > All Settings > General > Network > Wired Connection > Edit, untick Set Automatically, edit DNS Server | ⚠️ needs-confirmation |
| webOS 5.0 | All Settings > Connection > Network Connection Settings | ⚠️ needs-confirmation |
| webOS 4.5 | All Settings > Connection | ⚠️ needs-confirmation |
| webOS 4.0 and earlier | All Settings > Network | ⚠️ needs-confirmation |
Source: LG support.
Because unticking Set Automatically also pins the IP, choose an address outside your router’s DHCP pool or reserve it, or you will collide with another device later.
At the router
Read Why do it at the router and Router enforcement. The short version for this platform: hand the set your resolver over DHCP option 6, redirect outbound port 53 to it with the resolver’s own address excluded from the rule, reject port 853 so DNS-over-TLS cannot slip past, and add the IPv6 twin of every rule. RFC 8106 lets a Router Advertisement hand a device a resolver with no DHCPv6 involved, which is the most common silent failure. Two LG-specific reasons not to stop at the on-device field: the reported 8.8.8.8 hardcoding, and the two hardcoded IP addresses below, which need a firewall rule rather than a resolver.
What to block
The endpoint list lives in data/endpoints/lg.yml with a breakage flag
per entry, rather than being duplicated here. Two notes on shape:
lgsmartad.comhas roughly 159 country-code hosts plus 163aws-prd.netmirrors, so match it with the regex(^|\.)lgsmartad\.cominstead of enumerating hostnames.- The OTA hosts (
snu,su,su-sslandnsuunder.lge.com) are opt-in. Blocking them stops firmware updates, including security fixes, which is why the webOS Homebrew Channel gates update blocking behind an explicit setting.
Generated lists: blocklists/fightback-tv-lg.txt
Upstream, HaGeZi publishes native.lgwebos with 341 entries, updated several times daily
under GPL-3.0. It is the most thorough per-vendor list we found.
https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/native.lgwebos-onlydomains.txt
HaGeZi’s own guidance is to run Pro plus the native lists for hardware you actually own. The Light and Normal tiers deliberately include only native trackers that do not break things; Ultimate blocks everything and does break things.
What never to block
| Domain | Blocking it breaks | Source |
|---|---|---|
ngfts.lge.com |
Content Store thumbnails | Perflyst |
lgtvsdp.com |
Content Store | Perflyst |
lgappstv.com |
Content Store | Perflyst |
us.lgtvsdp.com |
Content Store, per Perflyst issue 117 | Perflyst |
lgsmartweb.com |
Voice search | Perflyst |
Perflyst is the only list in this space that annotates per-domain breakage. It has also been stale since 13 July 2023, so treat the annotations as good history rather than current fact.
Hardcoded addresses
| Address | What it is | Why DNS cannot help |
|---|---|---|
156.147.69.32:8080 |
OTA firmware fallback | Dialled by IP, so no name is ever resolved and no resolver sees the request. Only a firewall rule reaches it. |
54.186.247.229:443 |
Live telemetry | Same. |
Both come from the Level1Techs wiki, observed on a rooted OLED65G5WUA. If you block these, block them outbound at the firewall and expect the OTA rule to stop firmware updates.
Tier 2: developer mode and sideloading
Time: 1 hour. Risk: low. Reversible: yes. Warranty: unaffected, this is an official vendor feature.
Read the expiry trap before you install anything, because the failure mode is LG deleting your work.
⚠️ The expiry trap. LG’s documentation says developer mode enables for a limited time, that you check the Remain Session field and press EXTEND, and that if the session runs out you cannot extend it. It disables after ten reboots while the set is off the network, or after a reboot once the session has expired. LG’s wording on the consequence: “After Developer Mode is disabled, the installed apps that you were using on Developer Mode are uninstalled.” The session length is 1000 hours according to webosbrew. That figure is not corroborated by LG, and LG’s own documentation gives no number at all.
Enabling it
Install the Developer Mode app from the Content Store and sign in with an LG account. You get
unsigned IPK installation, SSH on port 9922 as the user prisoner, and a key server on port 9991.
Tooling is @webosose/ares-cli:
ares-setup-device -a webos -i "username=prisoner" -i "privatekey=webos_rsa" \
-i "passphrase=PASSPHRASE" -i "host=TV_IP" -i "port=9922"
ares-package sampleApp
ares-install --device webos com.example.app_1.0.0_all.ipk
ares-launch --device webos com.example.app
If you would rather not install LG’s SDK, dev-manager-desktop does the same work through a GUI and has 2,549 stars.
What it does not give you
The prisoner account is not root. It is jailed and has no PTY, so developer mode is a route to
running your own app on the set, not a route to changing the system. Nothing in Tier 3 is reachable
from here.
If your set is rooted, or might be
Two rules from webosbrew that catch people out: uninstall the LG Developer Mode app before rebooting after rooting, and never install it on a rooted television.
Tier 3: disable preinstalled advertising and metrics apps
Not available on webOS. There is no ADB, no package manager exposed to the user, and developer mode’s
prisoner account is jailed and not root, so the components in the table at the top of this page
cannot be disabled without root. That capability is Tier 4.
Tier 4: root and custom firmware
Risk: high. Warranty: void. We do not publish the steps.
Almost certainly not available on your set. As of 24 August 2025, the latest firmware for essentially all webOS 5, 6, 7 and 9 models is patched, and for 2025 models only factory webOS 10.0 was vulnerable. Check cani.rootmy.tv against your exact model and firmware before reading further. RootMyTV v1 and v2 are both patched and dead.
What root gets you: the ability to block on the device rather than at the router, which is the one
thing DNS filtering and menu toggles cannot do. The webOS Homebrew Channel’s
startup script already bind-mounts a writable hosts file and appends LG update servers
to it when webosbrew_block_updates is set, and it read-only bind-mounts /tmp/rdxd, /tmp/uploadd,
/var/spool/rdxd and /var/spool/uploadd/* to neuter crash and diagnostic upload spools. That is
crash telemetry only and does not touch content recognition. Boot hooks run from
/var/lib/webosbrew/init.d, which is where a blocking script belongs. Root also puts
libacrcloud_recognizer.so and libAdvertisementPlugin.so within reach.
Nothing on repo.webosbrew.org blocks or reports LG telemetry. All 51 apps were checked. The closest entries are an app update blocker, YouTube and Twitch ad removal patchers, an OpenVPN client and a WireGuard client. So the capability is proven and unbuilt, which makes this the clearest open slot for anyone who wants to write code for the project.
What it costs you: the warranty, and possibly the television. The Homebrew Channel writes this to
/etc/motd on every boot:
NEVER EVER OVERWRITE SYSTEM PARTITIONS LIKE KERNEL, ROOTFS, TVSERVICE. Your TV will be bricked, guaranteed!
Whether iptables is present and reliable across webOS versions is unverified, so even with root the
firewall half of the job may not be available. Bricked-set reports belong with the people who maintain
these exploits, not with us.
Where to go: cani.rootmy.tv for the compatibility oracle, webosbrew.org/rooting for the current tooling, and webos-homebrew-channel for what runs afterwards.
What breaks, by tier
| Tier | What stops working | How to undo it |
|---|---|---|
| 0 | Phone-based remote control, once the SSAP listener on 3000 and 3001 is off. Voice commands, if you turn Voice Recognition off. What Live Plus off costs you is not documented. | Set allowMobileDeviceAccess back to true, or re-enable each toggle in the same menu. |
| 1 | Over-blocking breaks the Content Store, its thumbnails and voice search. Blocking the OTA hosts stops firmware updates. | Remove the entry from your blocklist and flush the resolver cache. |
| 2 | Nothing while the session lasts. When it lapses, LG uninstalls every app you sideloaded. | Re-enable developer mode and reinstall, subject to the no-extension rule above. |
| 3 | Not available on this platform. | Not applicable. |
Verify it worked
Do not assume a block is working because you configured it. Follow
Verify it works. For this platform, the check that matters most is a WAN-side
packet capture, because 156.147.69.32:8080 and 54.186.247.229:443 never appear in a DNS query log
at all. A clean resolver log is not evidence that this set has stopped talking.
Second most useful: start the capture before the television boots. The IMC 2024 team note
that most DNS requests fire in the first seconds after activation, so a late start loses the
hostname-to-address mapping for the session. Then confirm that nothing reaches alphonso.tv after
Live Plus is off.
Open questions
Things we do not know about webOS. If you have the hardware, these are what would help.
- Every menu path on this page. None has been confirmed on hardware for this repository. Report the model number and firmware version with any correction.
- The developer mode session length. A much shorter expiry figure circulates in community posts. It appears in no LG documentation, so we do not repeat the number. Only the 1000-hour figure is corroborated, and only by webosbrew.
- The UI equivalent of
allowMobileDeviceAccess. webosbrew records that a toggle exists. Nobody has given us its label or its menu path. Also unclear is how to reach a shell to runluna-sendwithout developer mode. - What Live Plus off actually costs. No source describes the features you lose.
- Menu paths for automatic firmware updates and local network access. Our sources give none for webOS, so we cannot say whether either setting exists in the menus.
- The Gamers Nexus endpoint list. Not reproduced in any article we can cite. It needs pulling from
the video directly before it can go into
data/endpoints/lg.yml. - Whether firmware updates silently re-enable content recognition. Widely repeated, undocumented, and measurable. This would be an original contribution: record the toggle state, take an update, record it again.
- Which webOS firmware hardcodes 8.8.8.8. The Level1Techs wiki states that some does. No version list, no capture.
- Whether
iptablesworks on webOS. Unverified across versions, which decides whether a rooted set can enforce anything beyond a hosts file. - A claimed LG DNS-over-HTTPS bootstrap IP set. It circulates on a site whose captures are unpublished and whose IP set is just the usual public resolvers. We do not cite it.
- The Texas complaint. Texas sued LG among others in December 2025 over content recognition. A specific screenshot rate is quoted in coverage; we have not read the complaint PDFs, so we do not repeat the figure.
Sources
- Anselmi et al., Watching TV with the Second-Party, IMC 2024. Data: SafeNetIoT/ACR, AGPL-3.0
- Mazhar and Shafiq, IoTDI 2020, §IV-C
- Gamers Nexus and Level1Techs, September 2026, per The Verge, PCMag, CyberInsider
- LG support, manually changing DNS server settings
- webosbrew settings notes for
allowMobileDeviceAccess - webosbrew rooting for tooling and the 1000-hour figure
- webos-homebrew-channel
services/startup.shfor the hosts bind-mount - repo.webosbrew.org, all 51 apps checked
- webosbrew/dev-toolbox-cli for the shared-object inventories
- webosbrew/dev-manager-desktop
- cani.rootmy.tv, root compatibility oracle
- Bitdefender on CVE-2023-6317 through CVE-2023-6320
- Level1Techs wiki for the hardcoded addresses, from a rooted OLED65G5WUA
- HaGeZi DNS blocklists, GPL-3.0
- Perflyst/PiHoleBlocklist, MIT, stale since 13 July 2023
- epk2extract for firmware extraction
Found something wrong on your model? A corrected menu path is the most useful contribution this project gets.
Report it ·Edit this page ·Contributing guide