github bryanroscoe/shield_optimizer v0.75.0
Shield Optimizer v0.75.0

13 days ago

Shield Optimizer v0.75.0

A maintenance + features release covering everything since v0.74.1. New device-action menus for Tweaks and Snapshot/Restore, real on-device launcher fixes for Android 11 Shields, and a host of quality-of-life cleanups.

✨ New features

  • Snapshot / Restore (#18) — Save the current set of disabled apps, the active launcher, and tunable settings to a JSON file in ./snapshots/, then re-apply after a factory reset, OTA, or fresh device. Action menu shortcut N.
  • Tweaks menu (#18) — New device-action submenu (shortcut K) for HDMI-CEC sub-toggles (master, auto-wake TV, auto-off TV, audio routing), match_content_frame_rate (24p movie playback), and long_press_timeout. Each setting is independent — no opinionated defaults.
  • Display & Audio diagnostics (#18) — Health Report now shows actual negotiated resolution, refresh rate, HDR mode (HDR10 / HLG / Dolby Vision / HDR10+), and audio output device. So you can confirm your TV is actually getting 4K@60.
  • Defunct streaming apps in the bloat list (#18) — Funimation, Stadia, Quibi, and the orphaned com.hbo.hbonow precursor. All four are confirmed dead services with shutdown dates surfaced in the descriptions.
  • Custom launcher entry in the launcher wizard (#14) — "Custom..." option lets you type any package id with package-name validation.

🐛 Bug fixes

  • Launcher set-default actually works on Shield Android 11 (#17, hardened in #18) — Real-device debug found three layered issues: cmd role doesn't exist on Shield's customized Android 11, the chosen launcher was disabled before the wizard ran, and Projectivy's HOME activity is .ui.home.MainActivity (deeply nested, missed by the old dumpsys parser). Fix pm enables the chosen launcher first, recognizes "Unknown command" and skips role API instantly, uses cmd package query-activities --components for accurate HOME-activity discovery, retries across both cmd package and pm aliases with --user 0, and verifies after each attempt. Live-tested against a real Shield. Failures now surface the actual ADB error in the WARNING.
  • Optimize prompt RAM annotations (#16) — Plex (and several other apps) showed nothing on the Optimize prompt even when actively using hundreds of MB. Replaced fragile per-app dumpsys meminfo $pkg | grep 'TOTAL PSS' with a single system-wide dumpsys meminfo parsed the same way the Health Report parses it. Fewer ADB roundtrips, consistent numbers between the two screens.
  • background_process_limit setting removed (#12, closes #11) — The setting doesn't persist across reboots on Nvidia Shield, and the optimization flow prompts for a reboot at the end — so anything set there was always reverted before it took effect. Removed from the PerfList prompt, Health Report, and README feature line.

🎨 UX improvements

  • Digit shortcuts always prefix in menus (#15) — Previously, picking shortcut 2 for an option containing the IP 192.168.42.196 would render as 19[2].168.42.196, highlighting an arbitrary octet character. Digit shortcuts (device list, AT4K, process-limit menus) now always render as [N] <text>.
  • Homebrew Core formula for PowerShell on macOS (#10, by @dannyfallon) — Replaces the broken powershell/tap/powershell tap (which fails with Calling depends_on macos: :high_sierra is disabled!) with brew install powershell from Homebrew Core.

📚 Docs

  • Docker usage on Linux (#13, closes #9) — New README subsection covering the --network host + iproute2 workflow @shawly verified for running the script inside mcr.microsoft.com/powershell:latest without installing PowerShell on the host. Calls out the Docker Desktop limitation on macOS/Windows where host networking isn't available.

Acknowledgments

Thanks to @dannyfallon for the Homebrew fix (#10), @shawly for the verified Docker workflow guidance (#9), and @scana for the heads up on the persistence bug (#11).


Full changelog: v0.74.1...v0.75.0

Don't miss a new shield_optimizer release

NewReleases is sending notifications on new releases.