# XGIMI MoGo 4 projector (model WK08K, device altai, MediaTek), Google TV / Android 14 (SDK 34), # build UKNV.260612.001.15630599, France. # # Apply: TV_HOST= tools/disable.sh examples/xgimi-mogo-4/debloat.txt # Undo: TV_HOST= tools/restore.sh examples/xgimi-mogo-4/debloat.txt com.google.android.apps.tv.launcherx # Everything is DISABLED, not uninstalled. Comment out any line you want to keep. # # Tested for one session (a few hours) on 2026-10-24, including one reboot, not the several days # CONTRIBUTING asks for. Every entry was applied and checked on the real unit; what has not been # proven is that nothing surfaces after days of use. See README.md in this folder. # # Same board (altai) as examples/xgimi-mogo-3-pro, one firmware build older, so that list applies # closely. Differences on this unit: com.nbcast.wirelessscreen (MagiCast) is replaced by # com.xgimi.starmirror, com.xgimi.screensaver and com.google.android.videos are not present, and # nothing was disabled from the factory (com.google.android.youtube.tvmusic ships enabled here). # # Stock launcher: com.google.android.apps.tv.launcherx (HOME priority 2), with the setup wizard's # RecoveryActivity at priority 1, so setupwraith is listed below. # setupwraith owned one saved Wi-Fi network, a phone hotspot, and NOT the network the projector was # using: `dumpsys wifi` showed cname=android.uid.system:1000 on the entry with # "Currently Connected: true". Checking which entry is connected before trusting disable.sh's # skip message is worth it; FORCE_SETUPWRAITH=1 was used after that check, and ADB and Wi-Fi held. # Only the unused hotspot entry was lost. # # Launcher notes (applied and verified on a real unit on 2026-10-24): # - Install with HOME_KEY_SERVICE=1, and put this in config.xml or a theme's config.json # (config.json in this folder has them): # "live_tv_package": "" no tuner # "columns": 5 # "settings_key_keycodes": [83] the gear button sends KEYCODE_NOTIFICATION # "app_keys": ["KEYCODE_F4:com.google.android.youtube.tv", # "KEYCODE_F9:com.netflix.ninja", # "KEYCODE_F8:com.amazon.amazonvideo.livingroom"] # "stock_home_redirect": "com.google.android.apps.tv.launcherx" # - THE STOCK LAUNCHER DOES NOT STAY DISABLED. launcherx re-enabled itself across the reboot and # again within minutes of being disabled during use (XGIMI's com.xgimi.xrmservice, as on the # MoGo 3 Pro). Do not re-disable it after every boot: stock_home_redirect is what holds the new # home screen. Measured: with HomeKeyService unbound, one press of Home landed on the stock # Google TV launcher. Disabling only its home activity # (`pm disable --user 0 com.google.android.apps.tv.launcherx/.home.HomeActivity`) is refused with # a SecurityException on this firmware, so package-level disable plus the redirect is the only route. # - HOME_KEY_SERVICE costs volume-key auto-repeat on this firmware: holding volume up/down moves one # step instead of ramping, the same CAPABILITY_CAN_FILTER_KEY_EVENTS mechanism as # docs/devices/tcl-55p71b-g09-key-repeat.md (dumpsys accessibility shows capabilities=8). Holding a # D-pad direction still repeats normally; only the volume keys were affected. Unlike the sets in # that note, the helper is not optional here: dropping it gives the stock launcher back (above), # so the trade is the new launcher against the volume ramp, not buttons against the volume ramp. # The owner kept the helper. # - HDMI 1 (the only port) opens through com.google.android.tv.inputplayer from the Inputs menu, so # no input_action is needed (unlike the Horizon S Pro). # - Network ADB does not survive a reboot: Developer options offers only "Wireless debugging", and # turning that on also reopens 5555 for tools/tv.py. The stock adb binary is answered # "unauthorized"; tools/tv.py authenticates with its own key. # - Screenshots from `screencap -p` start with a vendor log line; tools/tv.py already strips it. # # DO NOT DISABLE on this model (projector hardware, inputs, mirroring): # com.xgimi.autokst # auto keystone correction # com.xgimi.windowsystem # keystone/window service # com.xgimi.tof # ToF autofocus # com.xgimi.misckey # remote keys, focus/keystone shortcuts # com.xgimi.uiconfiguration # global key receiver, power listener # com.xgimi.xrmservice # global remote keys, picture/sound adaptation (re-enables the stock launcher, see above) # com.xgimi.xgimiservice # core XGIMI system service # com.xgimi.autoinstall # purpose unclear (PermissionRequestActivity only): kept # com.xgimi.overseas.xgimiatvbootwizard # first-boot wizard # com.mediatek.tvinput # HDMI input service # com.mediatek.tv.service # TV service, Netflix key receiver # com.google.android.tv.inputplayer # HDMI passthrough player and input switcher # com.xgimi.starmirror # XGIMI screen-mirroring receiver (ships as a user app here) # com.dolby.android.audio.service # Dolby audio # Store demo, factory and test tools fusion.android.tv.demo # RetailDisplay store demo com.xgimi.atvwifiverify # factory Wi-Fi verification com.xgimi.minitvfactory # factory menu, file transfer and burn-in (never launched) # Telemetry and feedback com.xgimi.bugreportsender # XGIMI bug report uploader com.google.android.feedback # Google feedback com.android.tv.feedbackconsent # feedback / diagnostics consent prompt com.mstar.android.tv.disclaimercustomization # vendor disclaimer screen, first-run only # Google ad, attribution and on-device personalisation services com.android.adservices.api # Privacy Sandbox ad services (Topics, attribution) com.android.ondevicepersonalization.services # on-device ad personalisation com.android.federatedcompute.services # federated learning for the above com.google.android.partnersetup # partner / RLZ install-attribution pings # Google TV setup wizard (claims HOME on Google TV 14; re-enable before a factory reset) com.google.android.tungsten.setupwraith # Google preloads com.google.android.play.games # Play Games com.google.android.youtube.tvmusic # YouTube Music com.google.android.marvin.talkback # TalkBack (accessibility), off by choice # Voice and phone remote (off by choice) com.google.android.katniss # Google Assistant / Gemini voice search com.google.android.tv.assistant # assistant LED / hotword service com.google.android.tv.remote.service # Google TV phone-as-remote, not the Bluetooth remote # XGIMI extras (off by choice) com.xgimi.doubanfm # XGIMI music app, speaker-mode screen # Preinstalled streaming apps (off by choice; they ship as user apps on this French unit) com.disney.disneyplus # Disney+ com.orange.owtv.tv # Orange TV # Kept by choice on this unit: com.netflix.ninja, com.google.android.youtube.tv, # com.amazon.amazonvideo.livingroom, com.apple.atve.androidtv.appletv, com.canal.android.canal, # fr.francetv.pluzz, fr.m6.m6replay, tv.arte.plus7, com.google.android.apps.mediashell (Chromecast), # com.xgimi.ota.accessories (remote/speaker firmware), com.xgimi.gimiplayer (local player), # com.google.android.apps.tv.dreamx (Backdrop screensaver). The projector's own firmware updater # was left enabled. # Disabled last, after the new launcher was confirmed as Home with # `dumpsys activity activities | grep mFocusedApp`. It comes back on its own: see the header. com.google.android.apps.tv.launcherx