A beginner-friendly, clutter-free walkthrough to enable network ADB debugging and sideload custom launchers/apps on supported Jio Set-Top Boxes using a Windows PC and your home Wi-Fi router.
Tip
Need Hands-On Help or Want Me to Do It For You?
- Mail-in Service: If you find this guide too technical or complicated, you can ship your box to me and I will set it up for you! You can pay me whatever your heart desires + return shipping.
- Reddit: Reach out directly at u/ilikechocopies
Note
Supported Hardware & Firmware:
- JMSC200Av2 and JMSB200A across firmware builds
22.1.09,24.1.39,25.1.9, and older. - JHS series (JHSC200 v1 / JioOS 2.0) on firmware build
stb-jhcs200-11.3.46.
Both box families use the exact same ./stage1.sh workflow. The only minor difference is in Step 8 (launching the proxy listener).
Tip
Don't Panic If Something Goes Wrong:
- Box acting up? Simply factory reset your Jio STB to restore it back to default settings, then start over.
- Wi-Fi not connecting properly? Go into network settings, choose Forget Network, re-enter your password, and reconnect. Everything will work fine.
Important
Package Installer Limitation (Read This!): Jio disabled the stock Android package installer UI on the box. Because of this, you cannot simply click an APK file directly on the TV to install it. Every time you want to install apps, you must install them via ADB from your PC using:
adb install "filename.apk"โค๏ธ A quick note from Vishal Beniwal / Reddit u/ilikechocopies If you prefer me to do it for you, you can ship the box overโpay whatever your heart desires + shipping. Otherwise, just keep me in your blessings for future success!
Once you execute Stage 1, the script performs several handy quality-of-life modifications on your Jio STB:
- ๐ ADB Enabled: Network ADB is activated (expires in 2037) so you can manage and sideload apps.
- ๐ Monet Launcher Activated: Replaces the cluttered stock interface with a clean, customizable TV launcher. The stock launcher is suspended to prevent boot ad reversion.
- โก Shevery (Shizuku-Compatible API) Installed: Standalone manager allowing supported apps to access privileged system APIs over ADB.
- ๐ Automatic Firmware Updates Blocked: OTA auto-updates are disabled (
com.jio.*on JMSC/JMSB andcom.iwedia.*on JHS) so your setup doesn't get overwritten. - ๐ซ Startup Boot Ads Disabled: Annoying commercial promo and intro ads that display when powering on the STB are suppressed.
- Prerequisites
- Step-by-Step Guide
- 1. Network Pairing
- 2. Get Host IP
- 3. Configure STB DNS via USB Bug
- 4. Isolate Network & Temporarily Disable Firewall
- 5. Run Docker
- 6. Setup Technitium DNS
- 7. Deploy TLS Containers
- 8. Launch Proxy Listener (Model Specific)
- 9. Initialize Git Bash & Health Check
- 10. Execute Stage 1
- 11. Verify ADB Connection
- 12. Teardown & Reset
- How to Install Apps via ADB
- Advanced CLI & JHS Options
- Get Hands-On Help / Mail-In Setup
- Credits & Acknowledgments
Install these utilities on your Windows system before starting:
| Tool | Purpose | Download |
|---|---|---|
| Docker Desktop | Hosts local GenieACS backend services | Official Download |
| Python 3 | Runs proxy and diagnostic scripts (Add to PATH checked) |
python.org |
| Technitium DNS | Overrides local domain resolution | technitium.com |
| Git for Windows | Bash terminal environment | gitforwindows.org |
(Note: Android platform-tools ADB binaries are already bundled inside this folder).
- Connect your Windows PC to your primary home Wi-Fi.
- Connect your Jio STB to the same router (via standard Wi-Fi or Ethernet).
- Do not use Guest Wi-Fi (guest networks isolate connected devices from talking to each other).
Open Command Prompt (Win + R cmd) and type:
ipconfigFind Wireless LAN adapter Wi-Fi (or Ethernet if wired) and copy your IPv4 Address (example: 192.168.1.20).
Note
An empty USB pendrive is required strictly to access the hidden stock Android settings menu.
- Plug any USB thumb drive into the Jio STB.
- Turn on the STB
$\rightarrow$ Launch My Music$\rightarrow$ Settings$\rightarrow$ Select Eject USB. - Tap Internal Storage
$\rightarrow$ Open Apps$\rightarrow$ Select the stock Settings app (gear icon). - Navigate to Network
$\rightarrow$ Select your Wi-Fi network$\rightarrow$ Open Advanced IP Settings. - Change IP Settings from DHCP to Static.
- Keep IP Address, Gateway, Subnet, and DNS 2 unchanged.
- Set DNS 1 to your Windows PC's IPv4 Address from Step 2.
- Save and ensure the STB reconnects to your Wi-Fi.
Warning
If the Gateway or IP fields auto-clear upon selecting Static, switch back to DHCP, note the default values, switch to Static, and re-enter them manually before saving.
-
Unplug Incoming Internet: Unplug the WAN / incoming fiber cable from your router (keep the router powered on).
- Both devices must communicate over the local network without active internet access.
-
Temporarily Disable Windows Defender Firewall:
[!IMPORTANT] Windows Firewall frequently blocks incoming connections from the STB on port 53 (DNS) and port 8443/9443 (TLS proxy), causing the exploit to silently fail. You must temporarily turn it off:
- Press
Win + R, typefirewall.cpl, and press Enter. - Click "Turn Windows Defender Firewall on or off" on the left menu.
- Select "Turn off Windows Defender Firewall (not recommended)" for both Private and Public network settings.
- Click OK. (You will re-enable it in Step 12 once finished.)
- Press
Launch Docker Desktop from your Start Menu and wait until the engine status switches to running.
- Open the Technitium console in your browser at
http://localhost:5380. - Go to Zones
$\rightarrow$ Click Add Zone:-
Zone Name:
jio.com -
Zone Type:
Primary Zone
-
Zone Name:
- Click into
jio.com$\rightarrow$ Click Add Record:-
Name:
acs.oss -
Type:
A - IP Address: Your Windows IPv4 Address from Step 2
-
Name:
- Save the record and ensure the
jio.comzone is Enabled.
- Open File Explorer and navigate to
sideload-jiostb/tls. - Click the address bar, type
cmd, and press Enter. - In Command Prompt, run:
docker compose up -dDepending on your model, pick Option A or Option B:
In the same Command Prompt window (inside the tls folder):
python -m pip install pycryptodome
python pass_front.py(Leave this window running. pass_front.py includes a precomputed token fallback, so it works even if pycryptodome is absent).
JHS boxes enforce strict system CA certificate validation and reject the default certificate chain. Instead of python pass_front.py:
- Open Git Bash in the main
sideload-jiostbfolder. - Run the automated eMudhra certificate minting script:
./jhs/run_acs.sh
(This automatically recovers the leaked eMudhra intermediate key, mints a certificate trusted by the STB's system store, and launches the proxy on ports 8443 and 9443. Leave this terminal open).
- Open the main
sideload-jiostbfolder. - Right-click blank space
$\rightarrow$ Show more options$\rightarrow$ Open Git Bash here. -
(Optional but highly recommended) Prove your PC setup works before touching the TV:
python doctor.py --quick python doctor.py --simulate
--simulatesends a synthetic Inform through the proxy and GenieACS, verifying the entire chain is 100% operational.
Ensure Docker, Technitium, and your proxy listener (from Step 8) are active, then run:
./stage1.sh --list-devicesSelect your STB when prompted. To run only the required payload without stripping extras, you can alternatively use:
./stage1.sh --tasks-onlyImportant
Cold Power-Cycle Is Mandatory (Unplug Wall Power):
The Jio STB only contacts the ACS server during boot. Its periodic background check-in takes hours, and remote wake is impossible because NATDetected=True closes incoming port 7547 on the STB.
- Unplug the STB power adapter from the wall (do not just put it in standby with the remote).
- Wait 5 seconds
$\rightarrow$ Plug it back in. - Allow it to boot up completely.
Tip
Stuck at any point during Steps 5 to 10? If you find the technical setup too cumbersome, I can also do the whole process for youโjust cover shipping + whatever you feel like paying. Reach out via Reddit at [u/ilikechocopies.
Note
"Allow USB Debugging?" Dialog on TV: No prompt will appear on your TV until the STB boots and applies the CWMP task. Once connected, your TV screen will display an RSA key prompt. Check "Always allow from this computer" and select OK.
If running adb connect initially shows failed to authenticate or unauthorized, that is completely normal before you click OK on the TV. Simply run adb connect <STB_IP>:5555 again after approving.
In Git Bash, confirm your connection:
adb devicesYour device should now be listed with the status device.
Once ADB is confirmed and your setup is complete:
- Stop
pass_front.py/run_acs.shby pressingCtrl + Cin its window (or run./stage1.sh --stop). - In Git Bash, stop Docker containers:
docker compose down
- Reconnect your router's incoming WAN/Internet cable.
-
Turn Windows Defender Firewall back on: Press
Win + R$\rightarrow$ firewall.cpl$\rightarrow$ Turn Windows Defender Firewall back on.
Since the built-in package installer UI is disabled on the STB, install any Android TV APK from your PC:
- Connect your PC to the STB over ADB (if not already connected):
adb connect <STB_IP_ADDRESS>:5555
- Sideload your preferred application:
adb install "C:\path\to\your_app.apk" - The app will immediately appear inside Monet Launcher.
| Command | Purpose |
|---|---|
./stage1.sh --doctor |
Run full diagnostic checklist of ports, NBI, and DNS |
./stage1.sh --simulate |
Test synthetic CWMP session through TLS front & GenieACS |
./stage1.sh --watch |
Real-time watcher polling for STB Inform and port 5555 |
./stage1.sh --tasks |
Inspect all pending TR-069 tasks queued for your STB |
./stage1.sh --clear-tasks |
Clear duplicate or stale tasks from GenieACS queue |
./stage1.sh --stop |
Stop background pass_front.py process |
./stage1.sh --yes-disable-tr069 |
Explicitly permit disabling com.jio.tr069client in Stage 6 |
./jhs/run_acs.sh |
Mint eMudhra-forged TLS cert & start proxy for JHS boxes |
./jhs/jhs_stage1.sh --status |
Display persisted Iwedia ADB properties and launcher state on JHS |
./jhs/jhs_stage1.sh --post-setup |
Sideload Monet/Shevery and disable Iwedia OTA services on JHS |
./jhs/jhs_stage1.sh --clu-probe |
Queue native root command execution probe via tr069native |
./jhs/jhs_stage1.sh --clu-read |
Read back executed command output from tr069native root probe |
If you find this guide too complicated or don't have the time to configure Docker, DNS records, and TLS certificates, I can handle the entire setup for you:
- 100% Free Guidance: The guide itself and any troubleshooting assistance you need to complete it yourself are completely free.
- Mail-In Modification: Send your box over, and I will unlock network ADB, configure Monet Launcher, and set everything up.
- Pricing: Pay whatever your heart desires + return shipping charges.
- Contact: Message me on Reddit at [u/ilikechocopies.
- Scope: Stage 1 performs modifications such as enabling ADB, queueing downgrade flags, installing Monet Launcher and Shevery, disabling TR-069 settings, and disabling startup ads.
- Root/Bootloader: This guide deliberately excludes
unlock.shandpull_boot.sh. Do not run Stage 2 utilities unless you know what you are doing. - Liability: Use only on hardware you own or have explicit authorization to test.
-
Documentation, Windows 11 Streamlining & Maintenance:
Maintained by Vishal Beniwal (aka u/ilikechocopies
The guide and any personal support are completely free. If you need me to do the process for you, pay whatever your heart desires + shipping! -
Original Vulnerability Research & Tooling:
Massive respect to Bihaan Sen, ak_0o7, and Otus9051 for the reverse-engineering and original Housekeeping-PoC repository. Please star and support their project! -
JHS Series & eMudhra Chain Research:
Huge thanks to Pavit Chhabra (@mesosan16 on Twitter) for helping add JHS series support.