# Philips Google TV TA7 (TPV, PH3M_LT_T32 / device PH3M_AL_T32, MediaTek), Brazil # Google TV 14 (API 34), build UTT1.250308.001. About 1.9 GB RAM, armeabi-v7a, UI 1920x1080 on a 4K panel. # Fingerprint: Philips/PH3M_LT_T32/PH3M_AL_T32:14/UTT1.250308.001/101000072000:user/release-keys # Third unit: 50PUD7408/77, Argentina, same device and build UTT1.250308.001. Applied in batches on 2026-10-25 # with a screenshot after each, launcher installed, rebooted once (nothing re-enabled itself, boots to the new Home); # Live TV, HDMI input list and YouTube playback checked, Input and app buttons pressed on the real remote. # Vendor packages: TP Vision org.droidtv.* on a MediaTek base (com.mediatek.*, mediatek.factorymenu.ui). # # Apply: TV_HOST= tools/disable.sh examples/philips-google-tv-ta7/debloat.txt # Undo: TV_HOST= tools/restore.sh examples/philips-google-tv-ta7/debloat.txt com.google.android.apps.tv.launcherx # Launcher: TV_HOST= STOCK_LAUNCHER=com.google.android.apps.tv.launcherx HOME_KEY_SERVICE=1 launcher/build-and-install.sh # Everything is DISABLED, not uninstalled. Comment out any line you want to keep. # # Applied in batches on 2026-10-20 with a screenshot after each, then the custom launcher installed; # Home, HDMI 1 and Live TV, YouTube playback, HBO Max, Settings and every remote button were checked, # and everything survived a reboot. Not yet lived with for days. # # Stock launcher: com.google.android.apps.tv.launcherx. Home claimants: launcherx (priority 2), # setupwraith RecoveryActivity (1), com.android.tv.settings FallbackHome (-1000). While launcherx is # enabled, set-home-activity to another launcher does not stick. # Live TV app and HDMI player: com.mediatek.wwtv.tvcenter (TurnkeyUiMainActivity); the launcher's # default live_tv_package already matches. HDMI 1-4 are listed by com.mediatek.tvinput. # # Quirks on this firmware, all checked on the TV: # - Port 5555 was already open and the PC already authorised; ro.adb.secure=1. # - `screencap -p` prints "Init wrapper sys mutex successful. Pid:..." before the PNG on stdout: # strip everything before the \x89PNG signature. # - The remote's Settings (gear) button is scancode 357 (KEY_OPTION) -> KEYCODE_SETTINGS (176), a # global key routed to com.mediatek.tv.service's HotKey GlobalKeyReceiver, which forwarded it to the # stock dashboard. With launcherx disabled it does nothing until HomeKeyService is on # (HOME_KEY_SERVICE=1, no config needed for KEYCODE_SETTINGS). Input and app buttons keep working. # - KEYCODE_GUIDE and KEYCODE_NOTIFICATION are global keys of launcherx; this remote does not send them. # - setupwraith owned one old saved network (not the one in use), and only that entry was deleted. # Third unit: the same. Forgetting that network first (`cmd wifi list-networks`, then # `cmd wifi forget-network `) lets tools/disable.sh's Wi-Fi check pass without FORCE_SETUPWRAITH. # - Third unit: with HomeKeyService bound, holding volume up moves one step; with the accessibility list # empty it ramps again (tested both ways on the real remote). Same trade as # docs/devices/tcl-55p71b-g09-key-repeat.md: the gear button or the volume ramp, not both. That owner # kept the ramp and installed without HOME_KEY_SERVICE=1; the gear button then does nothing, and # Settings stays on the launcher's Settings pill. # # Second set: Philips 55PUD7908/77, Latin America, same device and build (software # TPM237L_R.101.000.072.000, security patch 2026-03-05). Debloated on 2026-10-20 with the core of this # list (candeebug, gel, consentcmpapp, opapp, play.games, printspooler, Netflix, the Google TV films app, # setupwraith, launcherx) plus feedback, feedbackconsent, dreamx, fusion.android.tv.demo and # org.droidtv.eum, and a custom launcher; lived with since then through daily use and several reboots. # Nothing had to be re-enabled because something broke. Checked there as well: # - org.droidtv.eum (e-manual) is safe to disable on this firmware: the Source key and tvcenter's inputs # panel still open. # - Live TV: tvcenter ignores TvContract.buildChannelsUriForInput() and stays on the last HDMI # source, but switches to the tuner with TvContract.buildChannelUriForPassthroughInput() # (TunerInputService/HW0 or HW8; it picks the right one itself). HDMI 1-4 are HDMIInputService/HW4..HW7. # - Location: Play Services re-applies the Google account's location consent at every boot # (LocationConsentTransfer), so `cmd location set-location-enabled true` does not survive a reboot and # apps read the Wi-Fi name as "" unless Location is turned on in Settings. # - The Settings key fix is the same: an accessibility service filtering KEYCODE_SETTINGS, checked with # the real remote (`input keyevent` bypasses accessibility filters). # # Kept on purpose: org.droidtv (TPVTvService, sees every key press), org.droidtv.icp (persistent # sign-on service, purpose unclear), org.droidtv.ambisvc (Ambilight/Lounge), org.droidtv.eum (user # manual; hidden in the launcher instead), com.mediatek.tv.service (hot keys, Netflix key, TV agent), # com.mediatek.tvinput, com.mediatek.wwtv.tvcenter, com.mediatek.wwtv.setupwizard (channel scan), # com.mediatek.wwtv.mediaplayer (USB media), com.mediatek.autopair (remote pairing), com.mediatek.tv.factory # and mediatek.factorymenu.ui (factory menus), com.mediatek.android.leanbacklauncher.partnercustomizer # (crash-loops tv.service on another MediaTek set), com.android.tv.ota and com.easy.oad (firmware # updates), com.google.android.katniss (Assistant), Play Store, Play Services, both keyboards. # Disabled by the first owner before this list: cm.aptoide.pt, com.vscine.tv, com.viki.android and # com.google.android.apps.tv.dreamx (ambient mode). The demo, ad-services, feedback and Health Connect # packages they had also disabled are now list entries, applied on the third unit. # Batch 1: telemetry and attribution org.droidtv.candeebug # TP Vision "DAC" analytics: CollectionService, boot receiver, ~55 MB resident org.droidtv.gel # TP Vision metrics GatheringService, shares candeebug's cache provider com.google.android.partnersetup # partner referrer / RLZ ping android.autoinstalls.config.tpv.device # Play auto-install of TPV partner apps com.android.adservices.api # Privacy Sandbox ad services (third unit) com.android.ondevicepersonalization.services # (third unit) com.android.federatedcompute.services # (third unit) com.android.tv.feedbackconsent # (third unit) com.google.android.feedback # (third unit) # Batch 2: manufacturer content and popups com.mediatek.opapp # European satellite operator apps (Canal Digitaal, HD+, Skylink...), unused in Brazil org.droidtv.consentcmpapp # TP Vision ad-consent (CMP) screen com.mstar.android.tv.disclaimercustomization # disclaimer popup fusion.android.tv.demo # retail store demo, RetailDialogReceiver (third unit) # Batch 3: background extras com.google.android.play.games com.google.android.onetimeinitializer # runs once at first setup com.google.android.syncadapters.calendar # no calendar app on a TV com.android.printspooler com.android.healthconnect.controller # Health Connect, nothing on a TV uses it (third unit) com.android.health.connect.backuprestore # (third unit) # Batch 4: by owner's choice (not used) com.netflix.ninja com.amazon.amazonvideo.livingroom # Prime Video com.google.android.videos # Google TV films/shop app com.google.android.apps.mediashell # Chromecast built-in, ~75 MB resident # The third unit kept Netflix, Prime Video and Chromecast (comment those lines out if you use them) and # disabled these instead. com.google.android.videos was not installed on it. # com.spotify.tv.android # com.google.android.youtube.tvmusic # com.nero.swiftlink.mirror.tv # "1001 TVs" phone-mirroring receiver, preinstalled # Batch 5: stock home. Disable only after the new launcher is installed (build-and-install.sh with STOCK_LAUNCHER does this). # setupwraith goes first: its RecoveryActivity (HOME priority 1) otherwise takes Home. Check # `dumpsys wifi | grep -o 'cname=[^ ]*'` first; on this TV it owned only an old, unused network. com.google.android.tungsten.setupwraith com.google.android.apps.tv.launcherx