No description
- Shell 100%
| docs | ||
| hooks | ||
| packages | ||
| tools | ||
| workflows | ||
| .gitignore | ||
| config.sh | ||
| install.sh | ||
| lefthook.yml | ||
| mise.toml | ||
| README.md | ||
onntv-setup
Scripts for managing onn Google TV boxes — backup, provision, and day-to-day app installs.
Quick Start
New box from scratch:
./workflows/provision.sh # uses IP from config.sh
./workflows/provision.sh 192.168.1.50 # override IP
Check box status:
./tools/audit-box.sh
Install a single APK:
./tools/install-apk.sh '/path/to/app.apk'
Directory Structure
onntv-setup/
├── config.sh # shared device IP — edit once, all scripts use it
├── install.sh # install all apps from packages/
├── packages/ # backed-up APKs (one folder per app)
│
├── workflows/ # multi-step operations
│ ├── provision.sh # one-shot: connect → install → clean → reboot
│ └── backup.sh # pull APKs from a box into packages/
│
└── tools/ # single-purpose utilities
├── audit-box.sh # read-only diagnostic (apps, security, privacy, performance)
├── clean-box.sh # full cleanup: launcher, bloatware, privacy hardening
├── connect.sh # connect to device
├── list-packages.sh # list installed packages
└── install-apk.sh # install a single APK
Scripts
| Script | Purpose | When to use |
|---|---|---|
config.sh |
Device IP | Edit once, all scripts source it |
install.sh |
Install all apps from packages/ | After backup, before provision |
workflows/provision.sh |
Full setup for new box | First-time setup |
workflows/backup.sh |
Pull APKs from working box | Capture app list before moving |
tools/audit-box.sh |
Diagnostic checkup | Check box health, privacy, security |
tools/clean-box.sh |
Full cleanup | Launcher, bloatware, privacy |
tools/connect.sh |
Connect to device | Debug connection issues |
tools/list-packages.sh |
List installed packages | See what's on a box |
tools/install-apk.sh |
Install single APK | Sideload an app |
Configuration
Edit config.sh to set your device IP:
DEVICE_IP="192.168.1.186"
DEVICE="$DEVICE_IP:5555"
All scripts source this file so you only update it once.
Backup & Restore Flow
- Backup from working box:
./workflows/backup.sh - Install on new box:
./install.sh(or./workflows/provision.shfor full setup) - Install single APK:
./tools/install-apk.sh /path/to/app.apk
Troubleshooting
Connection fails:
- Check TV screen for authorization popup
- Verify IP in
config.sh - Try
adb connect <ip>:5555manually
Launcher reverts after reboot:
- Re-run
./tools/clean-box.sh - The stock launcher needs to be disabled AND Projectivity set as home role