My WorldLink NetTV box played an advert every time I switched it on. Then a row of banners on the home screen, then a full-screen ad for hair transplants or floor tiles every time I opened Live TV. I pay for the subscription every month, so one evening I decided to see how much of that I could switch off without breaking the channels.
It turned out to be most of it. The home screen is clean now, YouTube has no ads, Live TV opens straight to the channel, and the subscription still works. This is exactly what I did on my box, including the parts that went wrong, and how to undo all of it if you need to.
Quick answer
Turn on USB debugging in Developer options, connect with ADB (on the NETTV-1000 the port is not 5555, mine was 5789), disable the screensaver, Movies, Cine+ and TV Shows apps, and set a new launcher as Home. Leave the Live TV, NetTV launcher and Account apps alone. Then block five ad servers with Pi-hole or NextDNS. Everything is reversible, and my scripts are on GitHub.
The box I was working with
NetTV has shipped a few different boxes over the years, and they don't all behave the same way. Mine is the newer black one. You can check yours under Settings > Device Preferences > About.
| Detail | My box |
|---|---|
| Model | NETTV-1000 |
| Android | Android TV 10, build NETTV-1000_20240111-1728 |
| Chip | Allwinner H313, 2 GB RAM, 32-bit apps (armeabi-v7a) |
| Made by | Genius Systems for NetTV (WorldLink) |
| ADB port | 5789 (not the usual 5555) |
One small trap: the NetTV "User Information" screen showed my IP as 192.168.1.1. That was wrong for what I needed. The box's real address on my Wi-Fi was in Settings > Network, and it changed once when I moved it between networks.
Step 1: Get ADB working
ADB is Android's debugging tool. It lets a computer on the same network install apps and change settings on the box. Google gives it away free as platform-tools.
- On the box, go to Settings > Device Preferences > About and press OK on Build seven times until it says you are a developer.
- Go back to Developer options and turn on USB debugging. There was no "network debugging" switch on my box, and that's fine.
- Put your computer on the same network as the box.
Every guide I found said to run adb connect <ip>:5555. On this box that just got "Connection refused". I spent a while thinking NetTV had blocked ADB completely, then scanned every port on the box instead. Two were open, and one of them was ADB:
python3 find-adb-port.py 192.168.0.50
open ports: [5789, 14035]
adb connect 192.168.0.50:5789
connected to 192.168.0.50:5789
The scan script is in the repo and takes about a minute and a half. The first time you connect, the TV asks "Allow USB debugging?". Tick Always allow and press OK.
Step 2: Back up before touching anything
This is the boring step that saves you later. I saved the full app list, the disabled list, every setting and the current home app to a folder on my Mac:
bash backup.sh 192.168.0.50:5789
I also wrote the restore script at this point, before changing a single thing. If something breaks at eleven at night, you don't want to be working out how to undo it.
Step 3: Turn off the extras, keep Live TV working
This is where it's easy to go too far. The NetTV launcher (the home screen with the RADIO and movie tiles) is where most ads live, but it also handles your login and subscription in the background, and it's a device admin. Disable it and you can end up with no Live TV at all. So I only turned off the apps I was sure about, and I used pm disable-user, which hides an app without uninstalling it.
| App | Package | What I did |
|---|---|---|
| Screensaver | np.com.geniussystems.screensaver | Disabled |
| Movies | np.com.nettv.movies | Disabled |
| Cine+ | np.com.geniussystems.android.stb.nettvprime | Disabled |
| TV Shows | np.com.geniussystems.android.stb.tvshows | Disabled |
| Live TV | np.com.geniussystems.android.stb.iptv | Kept |
| NetTV launcher | np.com.geniussystems.android.stb.launcher | Kept (login and subscription) |
| Account | np.com.nettv.myaccount | Kept (payments) |
I did these one small batch at a time and opened Live TV after each one. It kept playing every time. The command for one app looks like this:
adb -s 192.168.0.50:5789 shell pm disable-user --user 0 np.com.nettv.movies
Step 4: A new home screen
With the extras off, the NetTV home screen still played its own video ads, so I replaced it. My first try was FLauncher, a free open-source launcher. It worked straight away and the boot ad was gone, but it looked like a settings menu.
So I built the Apple TV style launcher from cleanyourtv instead. It's a small native Android TV app: black background, a dock along the bottom, a big clock, and a glass highlight that moves between tiles. Building it needs Java 17 and the Android SDK, which is about a gigabyte of downloads the first time, then a couple of minutes per build.
I set the dock to YouTube, Jellyfin, Live TV and Nepali Radio, hid the factory test apps the box ships with, and drew new tiles using Google's Material Symbols icons, so every tile has a proper colour and icon instead of a blank square. Then I made it the default Home:
adb -s 192.168.0.50:5789 install -r app-release.apk
adb -s 192.168.0.50:5789 shell cmd package set-home-activity --user 0 com.gathin.tvhome/.MainActivity
The NetTV launcher stays installed, just not as Home. After a restart the box now goes straight to the new screen, with no advert.
Step 5: YouTube without ads
People usually suggest ReVanced or TizenBrew for this. ReVanced doesn't support the TV version of YouTube, and TizenBrew only runs on Samsung TVs. On Android TV the one that works is SmartTube. It's free, open source, skips ads and sponsor segments, and lets you sign in with your Google account.
Pick the armeabi-v7a APK, because this box runs 32-bit apps. After installing it I disabled the stock YouTube app so nobody opens it by habit:
adb -s 192.168.0.50:5789 install -r SmartTube_stable_armeabi-v7a.apk
adb -s 192.168.0.50:5789 shell pm disable-user --user 0 com.google.android.youtube.tv
Step 6: Block the Live TV ads at DNS
The new home screen fixed everything except the ads inside the Live TV app itself. Those come from NetTV's own ad system, so the only clean way to stop them is to block the servers they load from. I already run Pi-hole at home (if you don't, my notes on setting up Pi-hole and Pi-hole vs AdGuard Home will get you started).
I opened Live TV a few times and watched the Pi-hole query log for the box. These are the ones I blocked, and the ones you must leave alone:
| Domain | What it does | Block? |
|---|---|---|
| ads-agg.geniustv.geniussystems.com.np | Ad service, called every time Live TV opens | Yes |
| ads.geniustv.geniussystems.com.np | Ad server | Yes |
| ads.nettv.com.np | Ad server, called at start-up | Yes |
| resources-static.geniustv.geniussystems.com.np | Ad images, always fetched right after the ad service | Yes |
| imasdk.googleapis.com | Google's video ad loader inside the app | Yes |
| btbn.geniustv.geniussystems.com.np | Login and subscription | No |
| resources / livetv-resources.geniustv.geniussystems.com.np | Channel lists and logos | No |
| nxota.nettv.com.np | Updates | No |
In Pi-hole I added each one under Domains as an exact deny. A tip: on my Pi-hole v6, pasting all five at once didn't save. Adding them one at a time did.
The ad that wouldn't go away
After blocking, the Live TV start screen still showed a full-screen ad. I wrongly assumed at first that it was burned into the channel by the broadcaster. It wasn't. The app shows a picture for about four seconds before the channel starts, and it had saved a copy of the ad on the box while it still had a clear path to the ad server.
Clearing the app's cache didn't touch it, because the copy lives in the app's own data. So I backed up the Live TV app's data first (the TV asks you to confirm), then cleared only that app:
adb -s 192.168.0.50:5789 backup -f livetv.ab -noapk np.com.geniussystems.android.stb.iptv
adb -s 192.168.0.50:5789 shell pm clear np.com.geniussystems.android.stb.iptv
This doesn't reset the box. The channel list isn't stored on it anyway; Live TV downloads it from WorldLink's server for your subscription every time. It signed in again on its own, the start screen now shows the plain "LIVE TV" logo, and with the ad servers blocked it can't download a new ad.
The Ethernet catch
This is the part that cost me the most time. For a while the blocks seemed to do nothing at all, and Pi-hole showed no requests from the box. The reason: the box had two connections. Wi-Fi went through my own router and Pi-hole, but the Ethernet cable was plugged straight into WorldLink's router. When a cable is connected, Android sends everything over it, and on that network the box uses WorldLink's DNS servers. Pi-hole never even saw the requests.
The obvious fix is to change the DNS on WorldLink's router. I logged in to mine (a Nokia G-2425G-A at https://192.168.1.254), but the customer account only shows Status and a MESH page. WorldLink keeps the admin account, so there's no DNS or URL filter setting to change.
You have two options:
- Plug the cable into your own router instead of WorldLink's. The box then uses Pi-hole on the cable too, and nothing else changes.
- Use Android Private DNS. I wanted to keep my cable where it was, so I made a free NextDNS account, added the same five domains to its Denylist, and set the box to use it:
adb -s 192.168.0.50:5789 shell settings put global private_dns_specifier TVBox-yourid.dns.nextdns.io
adb -s 192.168.0.50:5789 shell settings put global private_dns_mode hostname
One thing to know: Private DNS is a single setting for the whole box, not per connection. Once it's on, both the cable and Wi-Fi use NextDNS, and Pi-hole stops seeing this box (it still works for everything else in the house). The NextDNS log shows the box as "TVBox", and the ad servers come back blocked whichever way it's connected.
How to roll it all back
Everything above can be undone. With a computer, the restore script re-enables every app it disabled, gives Home back to the NetTV launcher, switches Private DNS back to automatic and removes the extra launchers:
bash restore.sh 192.168.0.50:5789 me.efesser.flauncher com.gathin.tvhome
Without a computer, you can do the important parts with the remote:
- Settings > Apps > Default apps > Home app and pick NetTV Launcher.
- Settings > Apps > See all apps, open each disabled app and press Enable.
- Settings > Network & Internet > Private DNS and set it back to Automatic.
- Remove the blocked domains from Pi-hole or NextDNS if Live TV ever misbehaves.
If you backed up the Live TV data, adb restore livetv.ab puts it back exactly as it was (including the old saved ad, so only use it if something actually broke). And when you're done making changes, turn USB debugging off. An open ADB port on your home network is not something to leave lying around.
A few things I learned
- Check the Wi-Fi list. My box had an old network saved with the wrong password. After every restart it tried that one, failed, and only then reconnected, which took about a minute and a half. Forgetting the old network fixed it.
- Test Live TV after every change. When it showed "Please restart the setup box and call WorldLink support", the cause was the box having no internet, not anything I'd disabled. Check the connection before blaming the cleanup.
- Live TV blocks screenshots of the channel picture, so you can't check it remotely. Look at the actual TV.
All the scripts, the blocklist and the launcher settings are in my GitHub repo, nettv-box-adfree. It was tested on one NETTV-1000. Older NetTV models are built differently, so check your model first.
I also keep notes on the rest of my home setup in Homelab Intelligence. If you'd rather someone set this up for you, or you want a proper look at your home or office network, that's what my network services are for.
Frequently asked questions
Will removing ads stop my NetTV Live TV or subscription from working?
Not if you keep the Live TV, NetTV launcher and Account apps enabled and only block the ad servers. The login, channel list and logo servers stay open, so Live TV and the monthly subscription keep working. Mine still plays every channel.
What is the ADB port on the NetTV NETTV-1000 box?
On my NETTV-1000 it was 5789, not the usual 5555. Turn on USB debugging first, then scan the box's ports to find it, because it may differ between firmware versions.
Does clearing the Live TV app data reset the NetTV box?
No. It only resets that one app. The box, the NetTV launcher and your other apps are untouched, and the channel list downloads again from WorldLink's server. Favourites or a parental PIN inside Live TV may need setting again.
Why does Pi-hole not block ads when the box uses the WorldLink router cable?
On the WorldLink router's network the box gets WorldLink's DNS servers, so its requests never reach Pi-hole. Plug the cable into your own router, or set Android Private DNS to a service like NextDNS with the ad domains on its denylist.
Can I watch YouTube without ads on the NetTV box?
Yes. Install SmartTube, the 32-bit armeabi-v7a version for this box, over ADB. It skips ads and sponsor segments and supports signing in. ReVanced does not support YouTube for TV, and TizenBrew only works on Samsung TVs.

