# Home+ (中嘉寬頻, Taiwan) STB-6252C, Inspur "Homeplustv", MediaTek MT5221, 1.85 GB RAM, 32-bit (armeabi-v7a) # Android TV 11 (API 30), Operator Tier. Tested on build Homeplustv/STB6252C/STB6252C:11/MAIN/2.22.12 (2024-09-05 patch). # # Apply: tools\disable.ps1 -TvHost examples\homeplus-stb-6252c\debloat.txt # Undo: tools\restore.ps1 -TvHost examples\homeplus-stb-6252c\debloat.txt -Stock com.inspur.isoc.launcher # Everything is DISABLED, not uninstalled. Comment out any line you want to keep. # # Connecting: Developer options > USB debugging. service.adb.tcp.port=5555 is baked into the firmware, # so port 5555 is open whenever USB debugging is on. ro.adb.secure=1: accept the prompt on screen once. # No device owner / MDM. Sideloading is allowed (install_non_market_apps=1). # # Quirks: `screencap` returns a 0-byte file on this box, so verify Home with # `dumpsys window | grep mCurrentFocus` instead of screenshots. # # Stock launcher: com.inspur.isoc.launcher (CNS_Launcher, HOME priority 2). There is NO Google launcher # on this box; the only other HOME claimant is com.android.tv.settings/.system.FallbackHome. The # launcher rotates friDay 影音 promo posters every 5 s (RecommendPosterRotationFrameView). Its embedded # TvInputService is not a registered TV input (dumpsys tv_input lists only the DVB-C tuner # com.inspur.tang.mwtvinput/.MWTvInputService/HW28), so disabling the launcher does not touch cable TV. # It is NOT in this list: launcher\build-and-install.ps1 -StockLauncher com.inspur.isoc.launcher disables # it once com.gathin.tvhome owns Home. While it stays enabled, HOME priority 2 beats the new launcher's 0 # and `cmd package set-home-activity` to com.gathin.tvhome is ignored. # # Live TV: com.android.tv (operator build LiveTv_CNS) on the tuner above. It cannot parse the passthrough # channel URI the launcher's Inputs menu sends on a cold start (ContentUriUtils.safeParseId), and its window # closes again, which looks like a crash. Set "live_tv_input_id": "none" in a theme so the Live TV row starts # the app normally, and "input_sources": ["HW28=-"] to drop the tuner's own row, which sends the same URI. # # Firmware updater: com.inspur.httpupgrade (the operator's OTA client, a PERSISTENT priv-app) stays ON: # its line at the end is commented out. The tested unit had it disabled, because its owner chose to freeze # the firmware so that an operator update cannot re-enable the packages below or hand Home back to the # stock launcher. Uncomment the line to do the same. Then no firmware, security-patch or channel-table # updates arrive while it is off, and being PERSISTENT an empty process still starts at boot (no services, # about 5 MB). To take an update later: `pm enable com.inspur.httpupgrade`, let it run, then re-apply the # list with tools\check.py --fix. # # Watchdog: com.inspur.android.daemon is left enabled. From its APK: LightsService (front LED), # ProcessMonitorService (force-stops cached processes not on the allow list in assets/processes.json), # GlobalKeyReceiver (remote keys such as YouTube), and boot-time sleep/dream/animation/HDMI-CEC settings. # Nothing in it re-enables packages or resets Home, and it did not kill com.gathin.tvhome in the # background (Android protects the Home process). Disabling it would lose the LED and the YouTube key. # # Wi-Fi: disabling a uid 1000 com.inspur.* package logs "Remove all networks for app"; the saved networks # survived because their creator is android.uid.system. Check `cmd wifi list-networks` before and after. # # Leave alone: com.inspur.tang.mwtvinput (DVB-C cable tuner, TIF input), com.android.tv (Live TV), # com.inspur.cns.settings (channel and time settings), com.atv.keymanage (remote keys), com.atv.setupwizard, # com.actions.* (Bluetooth remote firmware, pairing, volume), com.omni.simplesetup (remote's TV/AVR IR setup), # com.omni.modeswitch, com.omni.sci, com.mstar.* and com.mtk.systemcontrol (SoC services), # com.google.android.tv.remote.service (BT remote), com.google.android.tungsten.setupwraith, # Play Store / Play services, the keyboard. Never start com.inspur.factory (factory test). # # Kept on by the owner's choice (disable them if you do not use them): com.google.android.katniss # (voice search, 110-196 MB resident), com.google.android.apps.mediashell (Chromecast built-in, about 137 MB), # com.google.android.youtube.tv, com.disney.disneyplus, tw.com.app.watchtv, com.inspur.member.center, # com.omni.otademo (ODM OTA), com.inspur.cnsvbm (VbmService + AreaLimitationService; purpose unknown, # may be tied to the cable entitlement, untested). # # Netflix: the box is not Netflix certified (no ro.netflix.* properties); Play Store answers # "your device isn't compatible with this version". # Ads on the home screen and interstitials com.inspur.adservice # CNS_AD: operator ad service, resident BaseService/ADService (system uid) com.litv.interstital # LiTV interstitial ad SDK (LiAdSDK) com.inspur.cns.ticker # 跑馬燈 FloatTextService: scrolling text overlay fed by DVB DSMCC # Google recommendations / telemetry com.google.android.tvrecommendations # recommendation rows + notification panel service (~26 MB resident) com.google.android.feedback # Google feedback reports com.google.android.syncadapters.calendar # calendar sync, nothing on the box uses it # Preloads nothing on a TV box needs com.google.android.play.games # Play Games # Streaming apps the owner does not use (comment out the ones you watch). All but HBO GO are # UPDATED_SYSTEM_APP: base APK in /system/product/app, Play update in /data. They auto-start at boot and # each holds 130-170 MB while idle, so this group is where the RAM goes. com.skysoft.kkbox.android # KKBOX (base /system/product/app/KKBOX) com.catchplay.asiaplay.common.tv # CATCHPLAY+ com.litv.cable.home # LiTV net.fetnet.fetvod.tv # friDay 影音 (base /system/product/app/friDayAPP); the launcher's poster carousel advertises it tv.fourgtv.video # 四季線上 4gTV (base /system/product/app/4gTVshow) com.hbo.asia.androidtv # HBO GO (plain third-party app, Play Store reinstalls it) com.google.android.videos # Google Play Movies & TV (base /system/product/app/VideosPano) # Operator firmware updater: kept on by default (see header). Uncomment to freeze the firmware. # com.inspur.httpupgrade # 中嘉 OTA client, resident HttpService, PERSISTENT