niklas‑stephan.de

Philips 55OLED706 TV debloat + CleanYourTV launcher

Last updated 05/11/2026 · tv, philips, adb, cleanyourtv

The TV

  • Philips 55OLED706/12 (TP Vision), HA device name 55OLED706/12, area wohnzimmer.
  • ro.product.model = “2021/22 Philips UHD Android TV”, board PH1M_EA_9970A, MediaTek MT5895, Android TV 11, firmware RTT2.211108.001 build 21029, 1920x1080 @ density 320.
  • IP 192.168.68.62 (DHCP, Wi-Fi; was .61 until 2026-10-27 when the lease moved). ADB port 5555 works after enabling USB debugging on the TV (Settings → Device Preferences → About → press Build 7× → Developer options → USB debugging); turn it off again afterwards.
  • ADB is run from iris (adb installed via apt on 2026-10-27; handtrixxx.com has no LAN route to the TV): ssh iris 'adb connect 192.168.68.62:5555'. On first connect the TV shows a pairing prompt that must be accepted on screen, otherwise adb connect reports failed to authenticate.
  • 32-bit userland: ro.product.cpu.abi = armeabi-v7a, no secondaryCpuAbi, no /system/lib64 → 64-bit-only apps cannot run (relevant for ES-DE, see tv-emulation-options). ~2.7 GB RAM, internal storage 5.1 GB with ~0.9 GB free (83 % used).

What was done (2026-10-20)

Repo https://github.com/Gathin23/cleanyourtv cloned to /home/handtrixxx/code/cleanyourtv; working files in /home/handtrixxx/code/tv-debloat/.

  • Closest tested list: examples/philips-55oled707/debloat.txt (identical board/firmware generation). Of its 32 entries, 17 are installed on this set → filtered list tv-debloat/disable-confirmed.txt, 15 not present.
  • Disabled (nothing uninstalled): candeebug, gel, usagelogger, recommendation, nettvrecommender, com.google.android.tvrecommendations, nettv.market, nettvapps, demome, amazonalexa, katniss, play.games, tungsten.setupwraith, feedback, com.google.android.videos, youtube.tvmusic, playfi.softap. Kept: Chromecast/mediashell, Ambilight, playtv, eum, xtv, nettvbrowser.
  • Saved Wi-Fi networks are owned by android.uid.system, so tungsten.setupwraith is safe to disable on this set.
  • Home is now com.gathin.tvhome (CleanYourTV launcher); stock com.google.android.tvlauncher is disabled. live_tv_package = org.droidtv.playtv; org.droidtv.eum, contentexplorer, channels hidden. INPUT_KEY_SERVICE=1 enabled. Layout comes from the theme cleanyourtv/themes/niklas-6grid/config.json (pushed with tools/theme.sh): dock = Jellyfin, Prime Video, Netflix, Disney+, Magenta TV, Moonlight (com.limelight); RTL+ (de.rtli.tvnow) is in the grid, not the dock; columns = 6.
  • Undo: bash /home/handtrixxx/code/tv-debloat/restore.sh (re-enables the 17 packages; header of that file also restores the stock launcher).

Remote lag (open, not yet diagnosed)

Niklas saw a short lag on some remote commands after the reboot (2026-10-20). Measurements taken over ADB:

  • Rendering is not the problem: dumpsys gfxinfo com.gathin.tvhome frame-time → 926 frames, 14 janky (1.5 %), median 5 ms, 99th pct 19 ms; GPU median 3 ms. After a fresh reset and 10 arrow presses: 132 frames, 0 janky, 0 missed vsync, 0 high-input-latency.
  • gfxinfo still reported 83 “High input latency” frames and 10 “Slow UI thread” in the long-running window, i.e. the lag is on the key-event path, not the GPU.
  • Jellyfin cold start is 399 ms; relaunching Home is instant (TotalTime: 0).
  • Leading suspect (unconfirmed): **InputKeyService**, the accessibility service enabled by INPUT_KEY_SERVICE=1. It intercepts every key press (onKeyEvent runs before the app sees it). The A/B test (disable the service, re-measure) was started but interrupted, so this is still a hypothesis.
  • Still resident after the reboot, each a plausible source of stutter: org.droidtv.xtv, org.droidtv.xtvsystem, org.droidtv.playtv (+ playtv.oad), org.droidtv.eum, org.droidtv.nettvregistration, org.droidtv.contentexplorer, org.droidtv.nettvbrowser (+ :browser_service, :privileged_process0) and the Play-Fi native services (playfiaudioservice, vendor.tpv.*). ~1 GB free RAM at idle (MemAvailable 1,043,964 kB of 2,798,440).

To test next time:

grep -A3 compiler <<< "$(adb -s 192.168.68.61:5555 shell dumpsys package com.gathin.tvhome)"
adb -s 192.168.68.61:5555 shell 'settings get secure enabled_accessibility_services'
adb -s 192.168.68.61:5555 shell 'dumpsys gfxinfo com.gathin.tvhome reset'
# press remote keys, then:
adb -s 192.168.68.61:5555 shell 'dumpsys gfxinfo com.gathin.tvhome frame-time'

Easy levers if it turns out to be the animations: set "reduced_motion": true in cleanyourtv/themes/niklas-6grid/config.json (config.xml notes the MediaTek MT5895 on Android 10 as the known weak-GPU case) or "animations": false, then TV_HOST=192.168.68.61 tools/theme.sh themes/niklas-6grid - no rebuild needed.

Gotchas

  • Play-Fi (com.phorus.playfi.tv) re-enables itself on boot on this board family — leave it; only playfi.softap stays disabled.
  • A full power cycle at the wall is recommended after a launcher swap for Home to stick reliably.
  • uk.co.freeview.* and org.droidtv.aurora were already disabled before this (German set, no Freeview).
  • Turn USB debugging off on the TV when finished (ADB 5555 is open to the whole LAN).

Build toolchain on the ThinkPad

  • JDK 17 (openjdk-17-jdk-headless), Android SDK at ~/Android/Sdk (platforms;android-34, build-tools;34.0.0, cmdline-tools unzipped as cmdline-tools/latest), python3-venv + cleanyourtv/tools/venv.
  • Rebuild: cd /home/handtrixxx/code/cleanyourtv && ANDROID_HOME=$HOME/Android/Sdk TV_HOST=192.168.68.61 launcher/build-and-install.sh. Themes change dock/columns without a rebuild: tools/theme.sh themes/<name>.

Source: Wiki.js