# Philips 50PUD7406/43 (TPV, PH0M_EA_T32, MStar/MediaTek), Chile, Android TV 11 # Android TV 11 (SDK 30), firmware TPM215L_R.105.000.097.000, build RTM2.210929.098 # ro.product.model=2020/2021 UHD Android TV ro.product.device=PH0M_EA_T32 ro.product.name=PH0M_LT_T32 # Fingerprint: Philips/PH0M_LT_T32/PH0M_EA_T32:11/RTM2.210929.098/200321:user/release-keys # persist.odm.tpv.region=lt (Latin America). About 1.38 GB RAM, ro.config.low_ram=true. # Second unit: Europe (Denmark), retail model unknown. Same ro.product.device=PH0M_EA_T32 and build # RTM2.210929.098, but ro.product.name=PH0M_EA_T32, incremental 200715, persist.odm.tpv.region=eu. # Same RAM. On Wi-Fi. See "Second unit" below. # # Same board and firmware as docs/devices/philips-65pug7406-78.md, which is launcher notes only; # this is the first debloat list for PH0M_EA_T32. It is NOT the TP Vision org.droidtv platform of # examples/philips-50pus8517 (PH1M): there is no org.droidtv.xtv/playtv here, Live TV and inputs # are MediaTek's com.mediatek.wwtv.tvcenter, and only a thin org.droidtv layer is present. # The About screen shows the generic "2020/2021 UHD Android TV"; read the retail model off the # sticker and match on ro.product.device and the TPM215L firmware instead. # # Apply: TV_HOST= tools/disable.sh examples/philips-50pud7406/debloat.txt # Undo: TV_HOST= tools/restore.sh examples/philips-50pud7406/debloat.txt com.google.android.tvlauncher # Everything is DISABLED, not uninstalled. Comment out any line you want to keep. # # Stock launcher: com.google.android.tvlauncher (disabled by launcher/build-and-install.ps1). # Live TV app: com.mediatek.wwtv.tvcenter # ADB: USB debugging alone opens port 5555 (ro.adb.secure=1, the RSA prompt appears on screen). # # Tested: remote, Bluetooth, YouTube, Disney+, DirecTV GO and Zapping play normally, idle logcat # shows no retry loops. NOT tested yet: HDMI inputs / Source key, antenna/cable channels and # firmware updates, so org.droidtv.eum and nettvregistration below stay commented out until those are # checked (with them disabled, run the Source key, live channels and a reboot, then uncomment). # # QUIRKS ON THIS FIRMWARE: # # 1. Screensaver. screensaver_components ships as com.google.android.backdrop/.Backdrop with a # 5-minute screen_off_timeout. Once backdrop is disabled the screensaver points at a disabled # component, so set another one: # settings put secure screensaver_components com.gathin.tvhome/.ClockDream # settings put secure screensaver_default_component com.gathin.tvhome/.ClockDream # (or com.android.dreams.basic/.Colors without the launcher). # 2. Chromecast on a shared network. On this owner's Wi-Fi (a large shared network, ~150 hosts # across 192.168.1-18.x) about 150 devices held connections to the TV's Cast port 8009, and # YouTube kept pausing and then closing a few minutes into a video. The log showed the exit: # ActivityTaskManager: START u0 {act=MAIN cat=[HOME] ...} from uid 10043 # uid 10043 is com.google.android.apps.mediashell. Disabling it fixed playback. Unlike the # 50PUS8517 (its quirk 4), mediashell stayed disabled here 45 s after disabling; a reboot # check is still pending. Keep it (comment the line out) if you cast from your phone and your # network is your own. # 3. lowmemorykiller is active even at idle with one app playing ("low watermark is breached and # thrashing"); this is a 1.38 GB low_ram set, so every background service removed helps. # 4. Do not open com.mediatek.tv.factory or mediatek.factorymenu.ui to see what they do (see # PROMPT.md); they are left alone. # 5. Boot to Live TV (EU unit). After a full reboot, Home comes up and about 0.2 s later system_server # sends android.mtk.intent.action.ACTION_REQUEST_TOP_RESUME to # com.mediatek.wwtv.tvcenter/.nav.TurnkeyUiMainActivity, so the TV lands in Live TV. Neither # settings list has a switch for it. A normal power-on from standby lands on Home. # # SECOND UNIT (EU, Denmark, Danish UI). Tested the same day only, not over several days. The whole # list below applied cleanly, except that the owner kept com.google.android.apps.mediashell # (Chromecast, on a home network), Netflix and Spotify. org.droidtv.android.fitness is not installed # on this unit. The owner also disabled com.google.android.katniss (Assistant). Home handed over to # launcher/ on the first try. A reboot re-enabled nothing. Real-remote checks after the reboot: Home, # Source/Input and Settings keys, the Netflix key, Back, and held volume all work. Netflix, Spotify, # YouTube and live channels play (Live TV or TiviMate; the owner did not report them separately). # Private DNS (dns.adguard-dns.com) works. # HDMI picture is still untested: nothing is plugged in. org.droidtv.eum and nettvregistration # stayed enabled on this unit too, so the Source key result does not cover disabling them. # The owner also disabled com.mediatek.wwtv.mediaplayer (MMP, the USB photo/video player). # tools/disable.sh skips it because it requests TV_INPUT_HARDWARE, but on this unit it serves no # TvInputService: `pm query-services --components -a android.media.tv.TvInputService` lists only # com.mediatek.tvinput (tuner, HDMI, composite, ...) and com.mediatek.tv.service. It is left # commented out below until someone checks an HDMI picture with it disabled. # # THIRD UNIT (EU, Lithuania, Lithuanian UI): Philips 55PUS7906/12, wired Ethernet, nothing in the USB ports. # persist.odm.tpv.fw.revision=TPM215E_R.101.000.198.158, persist.odm.tpv.region=eu, ro.product.name=PH0M_EA_T32, # incremental 200715, board m7332, ro.config.low_ram=true: the build of the second unit, so it is noted here. # It names the retail model the second unit lacks. Tested the same evening only, not over several days. # Applied as written: the telemetry, nettv.market, fusion.android.tv.demo, disclaimercustomization, # partnercustomizer, mediashell (Chromecast, off by choice), videos, youtube.tvmusic, play.games, Netflix and # Prime Video. Not applied: tvrecommendations and backdrop (so quirk 1 did not come up), and fitness and # Spotify are not installed. Home handed over to launcher/ on the first try; setupwraith is installed but is # not a HOME claimant and owns no saved network. After one reboot the disabled list matched what was # applied (nothing re-enabled itself). With org.droidtv.eum, nettvregistration and the MMP player # (com.mediatek.wwtv.mediaplayer) all left ENABLED, the Home, Input/Source and Settings keys work on the # real remote, a PlayStation 4 on HDMI shows a picture, and DVB-T antenna channels play. That says nothing # about what disabling those three would break. The owner also disabled com.google.android.katniss # (Assistant). The commented lines at the end of the list were disabled here as well; they are a # same-evening test only, so they stay commented until someone has lived with them. # # FOURTH UNIT (EU, Germany, German UI): Philips 50PUS7906/12, wired Ethernet, nothing in the USB ports. The build of # the third unit: persist.odm.tpv.fw.revision=TPM215E_R.101.000.198.158, persist.odm.tpv.region=eu, # ro.product.name=PH0M_EA_T32, Android 11. Tested the same evening only, with two reboots. # Applied: the four telemetry lines, nettv.market, fusion.android.tv.demo, partnercustomizer, tvrecommendations, # backdrop (screensaver moved to com.gathin.tvhome/.ClockDream, quirk 1), videos, youtube.tvmusic, play.games and # Spotify, plus com.google.android.katniss (Assistant) by the owner's choice. Kept by choice: mediashell # (Chromecast, on a home network; casting from a phone works), Netflix and Prime Video. Fitness is not installed. # tools/disable.sh skipped com.mstar.android.tv.disclaimercustomization (dumpsys shows no permission block for it on # this unit), so it stayed enabled. Home handed over to launcher/ on the first try. # katniss came back after the first reboot: it had been disabled a few seconds before, and a `sync` in between did # not keep it. Disabled again and left well over 15 s before the second reboot, it stayed off, and the disabled list # matched what was applied. Quirk 5 (boot to Live TV) shows here too; power_on_home_always with HOME_KEY_SERVICE=1 # brings Home back about 3 s after the firmware opens com.mediatek.wwtv.tvcenter. # Real remote with the launcher as Home: Home, Source/Input, Settings and the Netflix key work. The Rakuten key sends # keycode 249 (KEYCODE_TV_INPUT_COMPONENT_1, scancode 472, KEY_FN_F7); TPVTvService catches it ("launchRakutenApp") # and starts tv.wuaki.apptv, which this unit ships disabled, so the key does nothing. app_keys "249:" # (HOME_KEY_SERVICE=1) gets the key first and opens that app instead (checked on the real remote). # Not checked here: HDMI picture and DVB-T (IPTV only), held volume (external audio). # TPV / Philips telemetry org.droidtv.candeebug # "DAC" analytics uploader, as on the 50PUS8517 org.droidtv.gel # metrics collector running in candeebug's process org.droidtv.tv.frameworklogger # persistent TPV logger: GET_TOP_ACTIVITY_INFO, EPG read, boot receiver com.tpv.xmic.ots.cms.client # TPV "CMS client" 0.6.04_ad: INTERNET, boot receiver, channel/EPG write # Philips content, store and demo org.droidtv.nettv.market # app gallery storefront # org.droidtv.nettvregistration # Smart TV registration (OilProvider/StateProvider); kept on the 50PUS8517 for firmware updates -- re-enable if an update check fails org.droidtv.android.fitness # Fitness Buddy # org.droidtv.eum # e-manual; on this board there is no xtv binding to it and no retry loop at idle (checked), but the Source key is untested fusion.android.tv.demo # retail demo com.mstar.android.tv.disclaimercustomization # vendor disclaimer screen com.mediatek.android.leanbacklauncher.partnercustomizer # partner rows for the stock launcher # com.mediatek.wwtv.mediaplayer # MMP USB media player; disabled on the EU unit, HDMI unchecked (see Second unit); needs TVINPUT_ALLOW=1 # Google recommendations, ambient mode and casting com.google.android.tvrecommendations # recommendation rows and notification panel com.google.android.backdrop # ambient-mode screensaver; see quirk 1 (44 MB data + 36 MB cache) com.google.android.apps.mediashell # Chromecast built-in; see quirk 2 # Google apps this owner does not use com.google.android.videos com.google.android.youtube.tvmusic com.google.android.play.games # Preinstalled streaming apps, off by the owner's choice com.netflix.ninja com.amazon.amazonvideo.livingroom com.spotify.tv.android # Stock launcher, replaced by launcher/ -- build-and-install disables it after Home has moved # com.google.android.tvlauncher # Candidates from the third unit, disabled there with no regression in one evening (not yet lived with): # com.google.android.partnersetup # Google partner setup: INTERNET, boot receiver # com.google.android.feedback # com.google.android.onetimeinitializer # android.autoinstalls.config.tpv.device # PlayAutoInstallConfig: TPV's auto-install list # com.android.providers.calendar # no calendar app on a TV; boot receiver, runs in the background # com.google.android.syncadapters.calendar # # Kept on purpose: com.google.android.katniss (Assistant/voice; the owners of the second and third unit disabled it), com.android.tv.ota (updates), # com.mediatek.wwtv.tvcenter, com.mediatek.tvinput, com.mediatek.tv.service, org.droidtv, # org.droidtv.icp, com.google.android.tv.remote.service, com.google.android.tungsten.setupwraith # (not a HOME claimant on this build; Home went to the new launcher without touching it), # and the preinstalled DirecTV GO, DAZN, Disney+, Pluto TV, Twitch and Zapping.