Philips · Android TV 11

Philips 50PUS8517/12 debloat list

The cleanyourtv list for the Philips 50PUS8517/12 disables 41 packages on Android TV 11: the manufacturer's telemetry, sponsored content rows and preloaded apps you never asked for, plus the stock launcher once the clean home screen is in place. It was tested on a real set by a cleanyourtv contributor.

41

packages disabled

Android TV 11

operating system

Debloat + launcher

what cleanyourtv does

About this Philips 50PUS8517/12 list

Header: Philips 50PUS8517/12 (50" 4K UHD LED, 3-sided Ambilight, P5 Picture Engine, 2022 model)

Android TV 11 (ro.build.version.release=11), firmware RTT2.211108.001, board PH1M_EA_9970A ro.product.model=2021_22_Philips_UHD_Android_TV ro.product.device=PH1M_EA_9970A Fingerprint: Philips/PH1M_EA_9970A/PH1M_EA_9970A:11/RTT2.211108.001/21029:user/release-keys TP Vision build: MediaTek MT5895, 2.67 GB RAM, armeabi-v7a userspace. Vendor packages use the org.droidtv prefix. Match on the BOARD and firmware, not on the model number. Philips/TP Vision ships one org.droidtv layer across a whole generation, so the x PUS85xx / PUS88xx sets of 2021-2022 on board PH1M_EA_9970A should carry the same package set; a different board or a Google TV (Android 12+) Philips will not. Check your own `pm list packages` against this file first — `tools/tv.py --probe` prints model, Android version and build. NOT the same platform as examples/philips-smart-4k-google-tv, which is a Skyworth-built India-market set on Google TV 14 with com.smartdevice/com.sky/com.tianci packages and no org.droidtv at all. Nothing from that file applies here and nothing here applies there. Stock launcher: com.google.android.tvlauncher (pass it to restore.sh, as above). Live TV app: org.droidtv.playtv App labels below were resolved by pulling each APK and reading it with `aapt dump badging`, not guessed from the package name. That matters on this firmware: org.droidtv.nettvapp4546 is MEGOGO, nettvapp4655 is Deezer, nettvapp5512 is Fishing TV, and org.droidtv.candeebug is labelled "DAC" and is the analytics uploader, not a debug tool. QUIRKS ON THIS FIRMWARE, in the order they will bite you: 1. pm disable-user persists to /data/system/users/0/package-restrictions.xml with a delay (~10 s on AOSP). If you run disable.sh and power-cycle the TV straight away, the changes are silently lost: packages come back as enabled=0 (DEFAULT). Wait, or run `pm list packages -d` and confirm your packages are listed before pulling the plug. 2. `adb reboot` over TCP hangs holding the dropped connection. Kill the adb server right after sending it and wait on port 5555 coming back instead of on the adb command. 3. The Android 11 shell cannot disable individual components of another app ("SecurityException: Shell cannot change component state") and cannot `pm hide` ("Neither user 2000 nor current process has android.permission.MANAGE_USERS"). So if a package refuses to stay disabled, the shell has no second lever. `pm suspend` does work and survives a reboot, but it does not stop services: an app that starts itself from its own boot receiver keeps running with suspended=true. 4. com.google.android.apps.mediashell (Chromecast built-in) could NOT be kept disabled on this firmware and is deliberately absent from the list below. It returns to enabled=1 about 35 s after every boot, reproducibly. pm disable-user, pm suspend, per-component disable and pm hide were all tried; the first is undone, the second does not stop it, the last two are refused by the platform. Left enabled, at a cost of about 37 MB. 5. A DISABLED PACKAGE CAN LEAVE A PERSISTENT PROCESS RETRYING FOREVER, AND pidof WILL NOT SHOW IT. org.droidtv.xtv is the persistent TV engine and has five outbound service bindings. Two of them, eum and aurora, were on the first version of this list, and BOTH leave xtv in a permanent retry loop when disabled. Neither is in the list above now; both are in the DO NOT DISABLE block below. org.droidtv.eum -- bound via CONTEXTUALHELP. About five retries per second, logged as xtvContextInterface ... connectCotextService - Service failed to connec i is null 51 of them in 10 seconds of an idle TV. This one also BREAKS A VISIBLE FUNCTION, and not the one you would guess: the Philips sources drawer opens and vanishes within a second, so HDMI inputs stop being reachable from the remote's SOURCES key. SourcesService logged a correct, complete source list every time and the drawer still died. org.droidtv.aurora -- about five retries per second too, logged as xtvService: xtvService handleConnectAurora at a steady 201 ms interval, 59 in 30 seconds of an idle TV. This one breaks nothing visible and costs little: xtv sits at 0.2% of one core while doing it. It is log noise plus a retry that can never succeed. Re-enabling it is free in practice -- aurora's process does not start at idle even when the package is enabled, so xtv only needed the package to be resolvable. `pm enable` on either took its counter to zero immediately, with no reboot. THE METHOD, which is the transferable part: a live PID proves the process exists, not that it is healthy. xtv held the same PID through all eleven batches while both loops ran. And do not grep for a string you already know -- that is how I missed the second loop for a day after fixing the first. Clear the log, wait 30 seconds on an idle TV, then group EVERYTHING by frequency and look at what repeats: adb shell logcat -c; sleep 30; adb shell logcat -d > idle.txt # then collapse digits and count: anything repeating several times a second is a loop On this set that takes an idle log from 130 lines per 30 s down to 50, and the 50 that remain are the firmware's own heartbeats. 6. The replacement launcher takes over on its own. Projectivy declares android.intent.category.HOME, so the moment com.google.android.tvlauncher is disabled the system resolves HOME to it — immediately, without a reboot and without enabling any accessibility service. Check with `cmd package resolve-activity --brief -a android.intent.action.MAIN -c android.intent.category.HOME` BEFORE disabling the stock launcher, and make sure your replacement is listed by `cmd package query-activities` for that intent. If it is not, you will be left without a home screen (see issue #90).

Before you run it: every package below is disabled, not uninstalled. Comment out (prefix with #) any line for an app you use. Never disable the Play Store, Play Services, the on-screen keyboard or the TV input services that play HDMI. Switch USB debugging off when you are done.

Packages the Philips 50PUS8517/12 list disables

TP Vision telemetry. org.droidtv.gel runs inside the candeebug process (android:process="org.droidtv.candeebug"), so disabling candeebug alone leaves a process with (3)

PackageNote
org.droidtv.candeebug"DAC" analytics uploader: channel watched, resolution, HDMI-CEC devices, viewing times, Ambilight config; uploads to AWS Firehose/S3 and geolocates the public IP via ipinfo.io
org.droidtv.gelmetrics collector sharing candeebug's process; no INTERNET permission of its own
org.droidtv.usageloggerboot stats, remote keypress counts, panel/eMMC telemetry forwarded to the above

Philips content promos and the app gallery (12)

PackageNote
org.droidtv.nettvrecommender"Top Picks" content promotion row
org.droidtv.recommendationits headless backend; disable the row above first or you get a live tile with no data source
org.droidtv.nettv.market"Smart TV Collection" app storefront
org.droidtv.nettvapp1814ARTE
org.droidtv.nettvapp4546MEGOGO
org.droidtv.nettvapp4633alacarta RTVE
org.droidtv.nettvapp4655Deezer
org.droidtv.nettvapp4932Free Games by PlayWorks
org.droidtv.nettvapp5326Toon Goggles
org.droidtv.nettvapp5512Fishing TV
org.droidtv.nettvapp20004410Couchplay Games
org.droidtv.android.fitnessFitness Buddy

Philips features this owner does not use. Check each against your own setup (5)

PackageNote
org.droidtv.amazonalexaAlexa bridge; live TV holds a binding into it, so test channel zapping and the EPG after disabling -- NOT exercised on this unit
org.droidtv.dlnaDLNA/UPnP server and renderer; persistent + coreApp, yet disables cleanly and contentexplorer ("Media") still starts and keeps its PID. Its DLNA init is gated behind a broadcast dlna itself sends, so the USB source should be unaffected -- reasoned from the code, not tested here
org.droidtv.ipcontrolLAN control of volume, audio output, Ambilight on/off and ShopMode. NOTE: this is NOT the JointSpace API on ports 1925/1926 — that is served by org.droidtv.xtv, which must stay. Keep this if you drive the TV from Home Assistant
org.droidtv.demome"Demo me" retail demo mode, e-sticker and shop loop; bound at boot by org.droidtv.settings to clear demo clips before a firmware update, null-guarded
org.droidtv.m7opappM7 satellite operator promo (Canal Digitaal, TV Vlaanderen, Skylink, HD Austria); keep if you use one of those

Google telemetry and first-setup leftovers (5)

PackageNote
com.google.android.feedbackMarket Feedback Agent
com.google.android.partnersetuppartner referrer / attribution
com.google.android.onetimeinitializerruns once at first setup, nothing afterwards
com.google.android.sss.authbridgeSecond Screen Setup Auth Bridge (set-up-from-phone helper)
com.google.android.syncadapters.calendarGoogle Calendar sync; no calendar app is installed on this TV

Google apps this owner does not use (5)

PackageNote
com.google.android.katnissAssistant and voice search, ~101 MB across two processes. Kills the remote's mic button, "Hey Google", on-screen voice search and the mic icon inside YouTube and Play Store search. Settings and tvsystemui guard their calls into it, so nothing crashes
com.google.android.play.games—
com.google.android.videosGoogle TV / Play Movies
com.google.android.youtube.tvmusicYouTube Music
com.google.android.marvin.talkbackTalkBack screen reader; keep if anyone needs it

Preinstalled streaming apps. All of these sit in /data/app rather than on the system (9)

PackageNote
com.netflix.ninja—
com.amazon.amazonvideo.livingroomPrime Video
com.apple.atve.androidtv.appletv—
com.disney.disneyplus—
com.zeasn.whaleliveWhaleLive (Zeasn) ad-supported FAST channels
com.boosteroidtv.streamingBoosteroid cloud gaming
com.witsoftware.ir.vodafonetvVodafone TV; runs headless, no icon
tv.sweet.tvplayerSweet TV (Ukrainian IPTV)
tv.wuaki.apptvRakuten TV

Stock launcher and its content engine, replaced by launcher/ (or Projectivy). ORDER MATTERS: disable the launcher FIRST. com.google.android.tvlauncher holds a stable (1)

PackageNote
com.google.android.tvrecommendations"Android TV Core Services" despite the name: recommendation rows, channels, notification panel

Stock YouTube, replaced by SmartTube (ads and sponsor segments). 119 MB resident vs ~35 MB (1)

PackageNote
com.google.android.youtube.tv—

Apply the Philips 50PUS8517/12 debloat

Turn on Developer options on the TV (Settings → Device Preferences → About → press OK on Build seven times), switch on USB debugging and, if shown, Network or ADB debugging. Then, from a clone of the cleanyourtv repository on a computer on the same Wi-Fi:

export TV_HOST=192.168.1.50   # your TV's IP address
tools/venv/bin/python -I tools/tv.py --probe
tools/disable.sh examples/philips-50pus8517/debloat.txt

Then build and install the clean launcher, which makes itself the default Home and rolls back if it fails:

TV_HOST=192.168.1.50 launcher/build-and-install.sh

Prefer to let an assistant do it? Paste the cleanyourtv prompt into Claude Code with "Philips 50PUS8517/12" as the model; it reads this list, checks each package on your TV and asks before anything that depends on your preferences.

Restore the Philips 50PUS8517/12

TV_HOST=192.168.1.50 tools/restore.sh examples/philips-50pus8517/debloat.txt

The restore script replays the state recorded before the change, so Home goes back to the launcher that owned it. More in the restore guide and the Android TV debloat guide.

Source: examples/philips-50pus8517/debloat.txt in the MIT-licensed cleanyourtv repository.

Other Philips debloat lists

All Philips lists →

Philips 50PUS8517/12 debloat FAQ

Is it safe to debloat the Philips 50PUS8517/12?

The Philips 50PUS8517/12 list only uses pm disable-user, so nothing is uninstalled or flashed. Every package can be turned back on with the cleanyourtv restore script or from the TV's own Settings → Apps page. Apply it in small batches and check the TV between them.

How many packages does this Philips 50PUS8517/12 list disable?

41 packages, grouped as: TP Vision telemetry. org.droidtv.gel runs inside the candeebug process (android:process="org.droidtv.candeebug"), so disabling candeebug alone leaves a process with; Philips content promos and the app gallery; Philips features this owner does not use. Check each against your own setup; Google telemetry and first-setup leftovers and more. Comment out any line you want to keep before running it.

Does the Philips 50PUS8517/12 list work on a similar model?

Often, if the platform matches. Compare the device codename and firmware in the list header with Settings → About on your TV. The cleanyourtv prompt also checks each package on your own set before touching it, so a near match is a good starting point.

Will the Philips 50PUS8517/12 get the Apple TV-style launcher?

Yes. After debloating, cleanyourtv builds its small native launcher (about 300 KB) and makes it the default Home, rolling back automatically if Home does not land on it.

How do I undo the Philips 50PUS8517/12 debloat?

Run TV_HOST=<tv ip> tools/restore.sh examples/philips-50pus8517/debloat.txt. It replays the record saved before the change. Full steps are in the restore guide.