WangQiFei

Keefer


思想提纯
  • 首页
  • 归档
  • 标签
  • 关于
  •     

© 2026  by  Wangqifei

小米电视4A(Android 6.0.1)系统精简与优化教程

发布于 2026-10-22 18:10

小米电视4A(Android 6.0.1)系统精简与优化教程

设备:小米电视4A,Android 6.0.1(API 23),1GB 内存,无 root,开启开发者模式(开启usb调试、adb调试【可选】),已安装第三方launcher。
现状:已完成 36 个系统包的 adb shell pm uninstall --user 0 用户级卸载,系统设置、输入源、遥控器、播放均正常。
原则:不再卸载核心系统包,优化重心转向 settings 参数调优、force-stop 临时压制、开发者选项手动调整。


一、已验证的精简

以下 36 个包已通过 adb shell pm uninstall --user 0 < 包名 >部分是通过 adb shell pm uninstall < 包名 > 从当前用户卸载,APK 仍在系统分区,不需要再动. 路径是卸载前 pm list packages -u -s -f < 包名 > 记录的原 APK 路径;/data/app/... 下的路径在卸载后可能已被清理,恢复前先用 pm path < 包名 > 确认或使用提前备份的 APK adb pull < 路径> <提取地址>。恢复命令统一为:

1
adb install -r -d --user 0 ./<包名>.apk

风险是“卸载后可能影响”,不是必然发生;经验证当前系统正常,说明多数风险未触发。


1. 广告 / 统计 / 推送 / 上报

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.miui.systemAdSolution 小米系统广告解决方案 /system/vendor/app/AdServer/AdServer.apk 低风险;系统广告减少,无直接功能影响
2 com.miui.tv.analytics 小米电视行为分析/遥测 /data/app/com.miui.tv.analytics-1/base.apk 低风险;停止行为统计,无功能影响
3 com.xiaomi.statistic 小米统计服务 /system/vendor/app/MiTVStat/MiTVStat.apk 低风险;统计上报停止,无功能影响
4 com.xiaomi.mitv.tvpush.tvpushservice 小米电视推送服务 /system/vendor/app/TVPushService/TVPushService.apk 低风险;可能收不到系统/广告推送,不影响播放和设置
5 com.xiaomi.devicereport 设备信息上报 /data/app/com.xiaomi.devicereport-1/base.apk 低风险;设备数据上报停止,一般无感;售后诊断/账号设备同步可能少数据

2. 系统更新 / 应用升级 / 应用商店

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.xiaomi.mitv.upgrade 小米电视系统 OTA 升级 /system/vendor/app/MiTVUpgrade/MiTVUpgrade.apk 中低风险;无法接收系统更新;对老机型通常利大于弊
2 com.xiaomi.tv.appupgrade 小米电视应用升级服务 /system/vendor/app/AppUpgrade/AppUpgrade.apk 低风险;应用不会自动升级
3 com.xiaomi.mitv.appstore 小米电视应用商店 /system/vendor/app/MiTVAppStore/MiTVAppStore.apk 中风险;无法从小米商店安装/更新应用,需 U 盘或第三方商店

3. 商城 / 游戏 / 支付

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.xiaomi.mitv.shop 小米电视商城 /system/vendor/app/MiTVShop/MiTVShop.apk 低风险;商城入口消失,无其他影响
2 com.xiaomi.mibox.gamecenter 小米游戏中心 /system/vendor/app/MiTvGameCenter/MiTvGameCenter.apk 低风险;游戏中心入口消失
3 com.xiaomi.gamecenter.sdk.service.mibox 小米游戏中心 SDK 服务 /system/vendor/app/MiGameCenterSDKService/MiGameCenterSDKService.apk 中低风险;游戏中心/部分小米游戏登录或支付可能受影响
4 com.mipay.wallet.tv 小米钱包 TV 版 /system/vendor/app/Mipay/Mipay.apk 中低风险;电视端钱包支付不可用
5 com.xiaomi.mitv.pay 小米电视支付组件 /system/vendor/app/MiTVPay/MiTVPay.apk 中低风险;电视内支付/购买不可用
6 com.xiaomi.mitv.payment 小米电视支付服务 /data/app/com.xiaomi.mitv.payment-1/base.apk 中低风险;电视内购买/支付流程不可用

4. 天气 / 日历 / 音乐 / 相册

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.xiaomi.tweather 小米电视天气 /data/app/com.xiaomi.tweather-1/base.apk 低风险;天气入口/天气信息消失
2 com.xiaomi.mitv.calendar 小米电视日历 /system/app/TVCalendar/TVCalendar.apk 低风险;日历入口消失
3 com.xiaomi.mimusic2 小米音乐 TV 版 /system/app/TVMusic/TVMusic.apk 低风险;小米音乐入口/播放功能消失,第三方音乐不受影响
4 com.mitv.gallery 小米电视相册 /system/priv-app/MiTVGallery/MiTVGallery.apk 低风险;系统相册入口消失;可用第三方文件管理器/相册替代

5. 投屏 / 多屏互动 / UPnP

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.xiaomi.mitv.smartshare 小米电视无线投屏/多屏互动 /data/app/com.xiaomi.mitv.smartshare-1/base.apk 中风险;原生投屏/多屏互动失效;第三方投屏接收器可替代
2 com.xiaomi.upnp 小米 UPnP/DLNA 服务 /data/app/com.xiaomi.upnp-1/base.apk 中低风险;DLNA/UPnP 发现与投屏失效
3 com.mi.miplay.mitvupnpsink 米联 UPnP 投屏接收 /system/app/MiTVUpnpApp/MiTVUpnpApp.apk 中低风险;米联/UPnP 接收端失效
4 com.xiaomi.miplay 小米米联投屏服务 /data/app/com.xiaomi.miplay-1/base.apk 中低风险;米联投屏相关功能失效
5 com.duokan.airkan.tvbox 多屏互动/米联投屏服务 /data/app/com.duokan.airkan.tvbox-1/base.apk 中低风险;多屏互动/Airkan 投屏可能失效

6. 屏保 / 锁屏 / 画报

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.mitv.screensaver 小米电视智能屏保 /system/priv-app/TVSmartScreenSaver/TVSmartScreenSaver.apk 低风险;智能屏保不可用,可能回退为无屏保/黑屏
2 com.xiaomi.mibox.lockscreen 小米电视锁屏/屏保 /system/vendor/app/MiBoxLockScreen/MiBoxLockScreen.apk 低风险;锁屏/屏保样式失效,不影响正常使用
3 com.xiaomi.tv.gallery 小米电视时尚画报/壁纸轮播 /system/vendor/app/MiGallery/MiGallery.apk 低风险;画报/壁纸轮播停止,无功能影响

7. 其他预装 / 功能组件(重点看风险)

序号 包名 作用 原 APK 路径 可能风险 / 备注
1 com.xiaomi.mitv.karaoke.service 小米电视 K 歌服务 /system/app/KaraokeService/KaraokeService.apk 低风险;K 歌功能失效
2 com.xiaomi.smarthome.tv 米家 TV 智能家居入口 /system/vendor/app/SmartHomeTV/SmartHomeTV.apk 低风险;电视端米家入口消失,不影响手机米家
3 com.xiaomi.screenrecorder 小米电视屏幕录制 /system/app/TVScreenRecorder/TVScreenRecorder.apk 低风险;系统录屏功能失效
4 com.xiaomi.voicecontrol 小米电视语音控制(小爱同学) /system/app/VoiceControl/VoiceControl.apk 中低风险;遥控器语音控制失效,普通按键不受影响
5 com.xiaomi.mitv.handbook 小米电视用户手册 /system/priv-app/Mitv_handbook/Mitv_handbook.apk 低风险;内置说明书入口消失
6 com.mitv.alarmcenter 小米电视定时提醒/闹钟中心 /system/priv-app/AlarmCenter/AlarmCenter.apk 低风险;定时提醒/闹钟功能失效
7 com.sogou.speech.offlineservice 搜狗离线语音识别服务 /system/vendor/app/SogouInputOffline/SogouInputOffline.apk 中低风险;语音输入离线识别失效,在线输入/普通输入不受影响
8 com.mitv.tvhome 小米电视原生桌面/Launcher /data/app/com.mitv.tvhome-3/base.apk 中高风险;当前由第三方桌面替代;若默认桌面丢失/第三方桌面异常,需恢复此包或确保其他桌面可用
9 com.xiaomi.mitv.media MiTVMediaExplorerDaemon 媒体浏览守护 /system/vendor/app/MiTVMediaExplorerDaemon/MiTVMediaExplorerDaemon.apk 中风险;与 mediaexplorer 配套;若 U 盘/媒体扫描/存储访问异常,优先恢复它和 mediaexplorer
10 com.android.providers.downloads Android 下载管理提供者 /system/priv-app/DownloadProvider/DownloadProvider.apk 中高风险;核心下载 Provider;若应用内下载、浏览器下载、安装器下载异常,优先恢复此包

恢复优先级提醒

  • 遇到下载异常:先恢复 com.android.providers.downloads。
  • 遇到桌面异常/默认桌面丢失:恢复 com.mitv.tvhome,或确认 Projectivy 等第三方桌面仍可用。
  • 遇到 U 盘/媒体扫描/存储访问异常:检查 com.xiaomi.mitv.media 与 com.xiaomi.mitv.mediaexplorer(后者你已恢复)。
  • 恢复 /data/app 下的包:原路径可能已被清理,优先用之前 adb pull 备份的 APK;没有备份时,/system 下的包通常仍可 adb install 恢复。

特别注意:com.mitv.tvhome(原生桌面)和 com.android.providers.downloads(下载提供者)也在已卸载列表中。前者卸载前需要确认已经安装第三方launcher不如: ATVlauncher、leanbakc、 Projectivy 等第三方桌面替代,后者如遇下载异常可用 adb install -r -d --user 0 恢复。


二、当前可执行的优化(按风险从低到高)

第一批:settings 全局参数(低风险,立即生效)

逐条执行,每条后测试电视反应。异常时用 settings delete 撤销。

1. 关闭动画(收益最明显)

1
2
3
adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0

2. 限制后台进程数(1GB 内存关键优化)

1
adb shell settings put global limit_background_processes 2

2 或 4 是平衡点,不建议设为 1 以下,否则应用切换频繁重载。

3. CPU 调度倾向性能

1
adb shell settings put global cpuset.sched_boost 1

4. 关闭强制门户检测(家庭固定网络适用)

1
adb shell settings put global captive_portal_mode 0

副作用:连接需要网页认证的公共 Wi-Fi 时,不会自动弹出认证页。

5. 关闭 Wi-Fi 扫描节流限制

1
adb shell settings put global wifi_scan_throttle_enabled 0

6. 尝试速度模式(不保证生效,成本低)

1
2
3
adb shell settings put secure speed_mode_enable 1
adb shell settings put system speed_mode 1
adb shell settings put global speed_mode_on 1

无效或异常时撤销:

1
2
3
adb shell settings delete secure speed_mode_enable
adb shell settings delete system speed_mode
adb shell settings delete global speed_mode_on

7. 硬件加速补充(不保证生效)

1
2
adb shell settings put global media.sf.hwaccel 1
adb shell settings put global video.accelerate.hw 1

撤销模板:

1
adb shell settings delete global <设置项>

第二批:force-stop 临时压制(不跨重启)

pm disable-user 在这台电视上被 SecurityException 挡住,force-stop 是唯一可用的临时压制手段。效果仅限本次开机,重启后包会复活。

1. 电视管家(可安全 force-stop,不建议卸载)

1
adb shell am force-stop com.xiaomi.mitv.tvmanager

已知副作用:内置“网络测速”可能失效。重启后自动复活,需要时重新执行。

2. 编解码更新服务(低风险,可考虑卸载)

1
adb shell am force-stop com.mitv.codec.update

先 force-stop,测试本地视频/U 盘视频播放正常后,再决定是否 uninstall。卸载前备份:

1
2
3
4
5
adb shell pm path com.mitv.codec.update
adb pull <返回路径> ./com.mitv.codec.update.apk
adb shell pm uninstall --user 0 com.mitv.codec.update
# 异常恢复
adb install -r -d --user 0 ./com.mitv.codec.update.apk

3. 第三方常驻应用(按需压制,释放内存最直接)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 与 Projectivy 重复的亚马逊桌面
adb shell am force-stop com.amazon.tv.leanbacklauncher
# 投屏接收器(不用投屏时)
adb shell am force-stop com.softmedia.receiver
# 文件管理器(不用时)
adb shell am force-stop com.xiaobaifile.tv
# 代理工具(不需要代理时)
adb shell am force-stop com.v2ray.ang
# 影视/商店/屏保类,不用时
adb shell am force-stop flix.com.vision
adb shell am force-stop app.orchard.tv
adb shell am force-stop com.overseas.store.appstore
adb shell am force-stop org.videolan.vlc

这些 force-stop 不跨重启,适合“本次开机想腾内存”。长期不用某应用,直接在电视“应用管理”里正常卸载更彻底。


第三批:开发者选项手动调整(零风险)

  1. 进入 设置 → 关于 → 连续点击“版本号”7 次解锁开发者选项。
  2. 在开发者选项中:
    • 窗口动画缩放 / 过渡动画缩放 / 动画程序时长缩放 → 全部设为 0
    • 强制进行 GPU 渲染 → 开启
    • 后台进程限制 → 设为 不得超过 2 个进程 或 4 个

三、不建议再动的包(黑名单)

以下包是系统核心依赖,**不要 force-stop,不要 uninstall**:

包名 原因
mitv.service 通用设置、输入源依赖
com.xiaomi.mitv.mediaexplorer 设置存储/U盘访问依赖
com.xiaomi.mitv.settings / com.xiaomi.mitv.providers.settings 设置本体与数据
com.xiaomi.mitv.systemui / com.android.systemui 系统 UI
com.xiaomi.mitv.remotecontroller.service 遥控器服务
com.xiaomi.mitv.tvplayer HDMI/DTMB/模拟电视输入源(不是播放器)
com.droidlogic.tvinput / com.droidlogic 晶晨 TV 输入源
com.miui.core / com.miui.daemon MIUI 核心与守护进程(persistent,杀不死,不建议卸载)
com.android.providers.* / com.android.externalstorage Android 核心 Provider
com.google.android.webview WebView 组件
com.android.packageinstaller 应用安装器
com.xiaomi.account / com.xiaomi.account.auth 账号服务,卸载风险高
com.xiaomi.mitv.tvmanager 可 force-stop,不建议卸载(网络测速失效 + 潜在系统依赖)

四、验证与回滚速查

查看已卸载的系统包(差集命令):

1
2
3
adb shell pm list packages -s > installed.txt
adb shell pm list packages -u -s > all.txt
comm -13 <(sort installed.txt) <(sort all.txt)

查看已禁用的包:

1
adb shell pm list packages -d

这台电视返回为空,说明 disable-user 未成功执行过,所有操作均为 uninstall --user 0。

force-stop 后确认进程状态:

1
adb shell ps | grep <包名片段>

不要用 pidof,这台电视的 toybox pidof 在找不到精确匹配时会错误打印所有 PID。

恢复被卸载的系统包:

1
adb install -r -d --user 0 ./<包名>.apk

五、执行顺序建议

  1. 先做第一批 settings 参数:动画归零 + 后台进程限制为 2,这两条对 1GB 内存的流畅度提升最直接。
  2. **再做第二批 force-stop**:对 tvmanager、codec.update 和第三方常驻应用逐条压制,每条后测试设置与桌面。
  3. 最后做第三批开发者选项:手动确认动画与 GPU 渲染设置。
  4. 每次只改一项,改完立即测试:设置各页面、桌面、遥控器、本地播放。异常立即撤销或重启。

精简已进入尾声,继续动系统包的收益极低、风险极高。把精力放在 settings 调优和对第三方应用的按需管理上,是这台 1GB 内存 Android 6 电视当前最安全、最有效的优化路径。

六、常用 ADB 命令手册(电视场景)

连接与设备管理

1
2
3
4
5
6
adb connect 192.168.x.x:5555      # 无线连接电视
adb disconnect # 断开所有无线连接
adb devices # 列出设备及状态(device / offline / unauthorized)
adb kill-server # 重启 ADB 服务前先停止
adb start-server # 重新启动 ADB 服务
adb -s 192.168.x.x:5555 shell # 多设备时指定目标

如果 adb devices 显示 offline,先 adb kill-server → adb start-server → 重新 adb connect。仍 offline 时,用 USB 连接后执行 adb tcpip 5555 重置无线监听。


基础信息检测

1
2
3
4
5
6
7
8
adb shell getprop ro.build.display.id
adb shell getprop ro.build.version.release # Android 版本
adb shell getprop ro.product.model # 设备型号
adb shell getprop ro.build.version.sdk # API 级别
adb shell getprop | grep -i "low_ram" # 是否低内存模式
adb shell wm size # 屏幕分辨率
adb shell wm density # 屏幕密度
adb shell ip addr show wlan0 # 电视当前 IP

包管理(精简场景核心)

1
2
3
4
5
6
7
8
9
10
11
adb shell pm list packages | sort                          # 全部包,排序
adb shell pm list packages -s # 仅系统包
adb shell pm list packages -3 # 仅第三方包
adb shell pm list packages -u # 包含已卸载的包
adb shell pm list packages -u -s # 系统包 + 已卸载系统包(全集)
adb shell pm list packages -d # 已禁用的包
adb shell pm list packages -f -U --user 0 # 带路径、UID、user 0 视图
adb shell pm path <包名> # 查 APK 路径
adb shell pm list packages -f -u | grep <包名> # 包被禁用了,普通的 pm path 会失效,必须加上 -u(包含未安装/禁用)和 -f(显示路径)参数
adb shell dumpsys package <包名> | grep -B 2 "stopped" # 查包的 stopped 状态
adb shell "for pkg in \$(pm list packages | cut -d ':' -f 2); do ver=\$(dumpsys package \$pkg | grep versionName | head -n 1 | cut -d '=' -f 2); echo \"\$pkg : \$ver\"; done" # 查看软件 包名 及版本号

找出“已卸载”的系统包(差集):

1
2
3
adb shell pm list packages -s > installed.txt
adb shell pm list packages -u -s > all.txt
comm -13 <(sort installed.txt) <(sort all.txt) # 出现在全集但不在当前安装集的包

恢复被 uninstall --user 0 的系统包:

1
2
3
adb shell pm path <包名>                  # 先确认原 APK 是否还在
adb pull <APK路径> ./<包名>.apk
adb install -r -d --user 0 ./<包名>.apk

按键模拟(遥控器替代)

1
adb shell input keyevent <键值>
键值 含义 键值 含义
3 HOME 19 方向上
4 BACK 20 方向下
23 确认/OK(DPAD_CENTER) 21 方向左
26 电源(POWER) 22 方向右
24 / 25 音量 + / - 164 静音
85 播放/暂停 87 下一曲
88 上一曲 126 播放
127 暂停 130 媒体播放暂停

电视遥控的方向和确认键对应 DPAD_UP(19)/DOWN(20)/LEFT(21)/RIGHT(22)/CENTER(23),HOME 是 3,BACK 是 4。

输入文本:

1
adb shell input text "hello"             # 仅支持 ASCII,中文需借助输入法或 TVRemoteIME

点击坐标(需要知道屏幕分辨率):

1
2
adb shell input tap 960 540              # 在 1920x1080 屏幕上点击中心
adb shell input swipe 500 500 1000 500 # 从 (500,500) 滑动到 (1000,500)

截图与录屏

1
2
3
4
5
6
7
adb shell screencap -p /sdcard/testscr.png
adb pull /sdcard/testscr.png ./
ls -l testscr.png

# 录屏(部分 Android 6 电视支持,最多 180 秒)
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4 ./

文件操作

1
2
3
4
5
6
7
8
9
adb pull <设备路径> <本地路径>              # 从电视拉到电脑
adb push <本地路径> <设备路径> # 从电脑推到电视
adb shell cp <源> <目标> # 设备内部复制
adb shell mv <源> <目标> # 设备内部移动/重命名
adb shell rm <路径> # 删除(谨慎)
adb shell ls -l <目录> # 查看权限和大小
adb shell chmod 644 <文件> # 修改权限
adb shell df /data # 查看 /data 剩余空间
adb shell du -sh /data/local/tmp/* # 查看临时目录占用

pull/push 可复制任意文件或目录,不受 install 只能装 APK 的限制。电视上 /data/local/tmp/ 是 shell 可写的安全暂存区,适合在安装/恢复 APK 前做中转。


进程与服务管理

1
2
3
4
5
6
adb shell ps | grep <包名片段>                       # 最可靠的进程检查(Android 6 推荐)
adb shell top -n 1 | grep <包名> # 单次快照 CPU/内存占用
adb shell top -m 6 -n 1 # 内存占用前 6 的进程
adb shell dumpsys activity processes | grep -A 3 <包名> # AMS 进程记录
adb shell dumpsys activity services | grep -A 3 <包名> # 服务记录
adb shell dumpsys window | grep mCurrentFocus ## 获取当前前台应用包名和组件信息

强制停止(临时压制,不跨重启):

1
2
adb shell am force-stop <包名>      # 强杀包的所有进程,重启后复活
adb shell am kill <包名> # 仅杀“可安全结束”的进程,更温和

这台电视上 pidof 在找不到精确匹配时会错误打印所有 PID,不要用 pidof 判断进程是否存活,用 ps | grep 替代。

启动 Activity:

1
2
adb shell am start -n <包名>/<Activity全类名>
adb shell dumpsys window | grep mCurrentFocus # 查看当前前台 Activity

性能监控

1
2
3
4
5
6
7
adb shell dumpsys meminfo                  # 全局内存概览
adb shell dumpsys meminfo <包名> # 指定包的内存详情
adb shell dumpsys cpuinfo # 各进程 CPU 占用
adb shell dumpsys gfxinfo <包名> # 图形渲染性能(帧耗时)
adb shell dumpsys diskstats # 磁盘 I/O 统计
adb shell cat /proc/meminfo # 原始内存信息
adb shell cat /proc/cpuinfo # 原始 CPU 信息

dumpsys meminfo 看总内存/可用内存/各进程 PSS;dumpsys cpuinfo 看 CPU 使用率和负载;top -n 1 适合快速抓一次瞬时快照。


日志抓取(崩溃排查)

1
2
3
4
5
6
7
8
adb logcat -c                                    # 清空旧日志(抓之前先做)
adb logcat -v time > tv.log # 带时间戳保存到本地
adb logcat -d # 导出当前日志后退出
adb logcat -b crash # 只看崩溃缓冲区
adb logcat *:E # 只看 Error 及以上
adb logcat | grep -E "AndroidRuntime|FATAL" # 抓 Java 崩溃堆栈
adb logcat -s <Tag>:D # 按标签过滤
adb logcat -v threadtime AndroidRuntime:E *:S # 带线程信息的崩溃日志,屏蔽其他

设置应用闪退时,标准流程是:adb logcat -c → 打开设置复现 → adb logcat -d | grep -E "FATAL|AndroidRuntime"。


settings 参数(无需 root)

1
2
3
4
5
6
adb shell settings list global                    # 列出所有 global 项
adb shell settings list system
adb shell settings list secure #
adb shell settings get global <key> # 读单个值
adb shell settings put global <key> <value> # 写入
adb shell settings delete global <key> # 删除(恢复默认)

电视/1GB 内存常用写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 关闭动画(三项必须一起)
adb shell settings put global window_animation_scale 0
adb shell settings put global transition_animation_scale 0
adb shell settings put global animator_duration_scale 0

# 限制后台进程数
adb shell settings put global limit_background_processes 2

# 关闭强制门户检测(家庭固定网络)
adb shell settings put global captive_portal_mode 0

# 关闭 Wi-Fi 扫描节流
adb shell settings put global wifi_scan_throttle_enabled 0

# CPU 调度倾向性能(不保证所有固件生效)
adb shell settings put global cpuset.sched_boost 1

window_animation_scale 控制 Activity 窗口动画,transition_animation_scale 控制 Activity 过渡,animator_duration_scale 控制属性动画,三项是开发者选项中“动画缩放”的底层键。


广播发送(高级调试)

1
2
3
4
adb shell am broadcast -a <Action>
adb shell am broadcast -a <Action> --es <key> "<string>" # 字符串参数
adb shell am broadcast -a <Action> --ei <key> 200 # 整型参数
adb shell am broadcast -a <Action> --ez <key> true # 布尔参数

示例:

1
2
3
4
# 网络状态变化
adb shell am broadcast -a android.net.conn.CONNECTIVITY_CHANGE
# 屏幕解锁/用户在场
adb shell am broadcast -a android.intent.action.USER_PRESENT

广播常用于在不触碰 UI 的情况下触发系统或应用逻辑;排查无响应时,配合 adb logcat | grep "Broadcast" 观察接收情况。


屏幕与分辨率

1
2
3
4
adb shell wm size                              # 当前分辨率
adb shell wm size 1920x1080 # 临时修改
adb shell wm size reset # 恢复默认
adb shell wm density # 当前密度

无线调试的关键一步

如果你还有 USB 连接,在 USB 下执行一次:

1
adb tcpip 5555

然后拔掉 USB,adb connect <电视IP>:5555。这条命令让电视的 adbd 监听网络端口,不经过设置界面,是设置应用异常时保住无线调试通道的可靠手段。


“避坑备注”

命令/场景 注意
pidof 这台 Android 6 电视在无精确匹配时错误打印所有 PID,用 ps | grep 代替
settings put ... animation 三项必须一起设 0,只设一项效果不完整
am force-stop 不跨重启;persistent 应用(如 com.miui.daemon)会被系统立刻拉起,PID 可能不变
pm install 后面必须跟 APK 绝对路径,跟包名会 INSTALL_FAILED_INVALID_URI
恢复系统包 优先 adb install -r -d --user 0,adb shell pm install 可能返回 Success 但未注册到 user 0
logcat -b crash Android 7+ 的 crash 缓冲区在 Android 6 上行为可能不完整,优先用 AndroidRuntime 关键字过滤

七、一键脚本

下面是整合了非卸载优化的完整脚本。新增模块:settings 扩展参数、缓存与日志清理、状态快照、force-stop 临时压制、开发者选项手动清单、重启提示。卸载部分保留原有安全关卡。


脚本:mi_tv_optimize.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
#!/usr/bin/env bash
# ============================================================
# 小米电视4A (Android 6.0.1) 恢复出厂后一键优化
#
# 前置条件(缺一不可):
# 1. 电视已恢复出厂并完成初始设置(正常开机电视即可,不需要刻意恢复)。开启开发者模式,usb调试
# 2. 已安装第三方 launcher(Projectivy / Amazon Leanback / Aerial)
# 3. 已在电视【设置 → 应用 → 默认应用 → 主屏幕】中将其设为默认
# 4. adb devices 显示 device(已授权)
#
# 用法:
# chmod +x mi_tv_optimize.sh
# DEVICE=192.168.6.185:5555 ./mi_tv_optimize.sh
# ============================================================

set -uo pipefail

DEVICE="${DEVICE:-192.168.6.185:5555}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_DIR="$SCRIPT_DIR/optimize_logs"
mkdir -p "$LOG_DIR"
TS="$(date +%Y%m%d_%H%M%S)"
LOG_FILE="$LOG_DIR/optimize_$TS.log"

RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
BLUE='\033[0;34m'; BOLD='\033[1m'; NC='\033[0m'

log() { echo -e "$*" | tee -a "$LOG_FILE"; }
info() { log "${BLUE}[INFO]${NC} $*"; }
ok() { log "${GREEN}[ OK ]${NC} $*"; }
warn() { log "${YELLOW}[WARN]${NC} $*"; }
err() { log "${RED}[ERR ]${NC} $*"; }

adb_() { adb -s "$DEVICE" "$@"; }

# ============ 包清单 ============

SAFE_PKGS=(
com.miui.systemAdSolution com.miui.tv.analytics com.xiaomi.statistic
com.xiaomi.mitv.tvpush.tvpushservice com.xiaomi.devicereport
com.xiaomi.mitv.upgrade com.xiaomi.tv.appupgrade com.xiaomi.mitv.appstore
com.xiaomi.mitv.shop com.xiaomi.mibox.gamecenter
com.xiaomi.gamecenter.sdk.service.mibox
com.mipay.wallet.tv com.xiaomi.mitv.pay com.xiaomi.mitv.payment
com.xiaomi.tweather com.xiaomi.mitv.calendar com.xiaomi.mimusic2
com.mitv.gallery
com.xiaomi.mitv.smartshare com.xiaomi.upnp
com.mi.miplay.mitvupnpsink com.xiaomi.miplay com.duokan.airkan.tvbox
com.mitv.screensaver com.xiaomi.mibox.lockscreen com.xiaomi.tv.gallery
com.xiaomi.mitv.karaoke.service com.xiaomi.smarthome.tv
com.xiaomi.screenrecorder com.xiaomi.voicecontrol
com.xiaomi.mitv.handbook com.mitv.alarmcenter
com.sogou.speech.offlineservice
)

RISKY_PKGS=(
com.mitv.tvhome
com.android.providers.downloads
com.xiaomi.mitv.media
)

CORE_PKGS=(
mitv.service com.xiaomi.mitv.mediaexplorer
com.xiaomi.mitv.settings com.xiaomi.mitv.providers.settings
com.xiaomi.mitv.systemui com.android.systemui
com.xiaomi.mitv.remotecontroller.service
com.xiaomi.mitv.tvplayer com.droidlogic.tvinput com.droidlogic
com.miui.core
com.android.providers.media com.android.providers.tv
com.android.providers.settings com.android.externalstorage
com.android.packageinstaller com.google.android.webview
)

LAUNCHERS=(
"com.spocky.projengmenu:Projectivy Launcher"
"com.amazon.tv.leanbacklauncher:Amazon Leanback Launcher"
"app.orchard.tv:Aerial"
)

# 不卸载、仅 force-stop 的系统服务
FORCESTOP_SYS=(
com.xiaomi.mitv.tvmanager
com.mitv.codec.update
)

# 第三方常驻应用(可选 force-stop)
FORCESTOP_3RD=(
com.amazon.tv.leanbacklauncher
com.softmedia.receiver
com.xiaobaifile.tv
com.v2ray.ang
com.overseas.store.appstore
flix.com.vision
app.orchard.tv
org.videolan.vlc
com.android.tvremoteime
net.kollnig.missioncontrol
)

# ============ 检查函数 ============

check_adb() {
info "检查 ADB 连接..."
command -v adb &>/dev/null || { err "未找到 adb"; exit 1; }
adb connect "$DEVICE" &>/dev/null || true
local state; state=$(adb -s "$DEVICE" get-state 2>/dev/null || echo offline)
[[ "$state" == "device" ]] || { err "设备状态: $state"; exit 1; }
local model ver
model=$(adb_ shell getprop ro.product.model 2>/dev/null | tr -d '\r')
ver=$(adb_ shell getprop ro.build.version.release 2>/dev/null | tr -d '\r')
ok "ADB 已连接: $DEVICE ($model / Android $ver)"
}

check_launcher() {
info "检查第三方 launcher..."
local pkgs; pkgs=$(adb_ shell pm list packages 2>/dev/null)
local found=0
for entry in "${LAUNCHERS[@]}"; do
local pkg="${entry%%:*}" name="${entry##*:}"
if echo "$pkgs" | grep -qx "package:$pkg"; then
ok "已安装: $name ($pkg)"; found=1
fi
done
if [[ $found -eq 0 ]]; then
err "未检测到任何第三方 launcher!"
err "执行卸载(尤其 com.mitv.tvhome)后电视将无法进入主屏幕。"
err "请先安装 Projectivy / Amazon Leanback / Aerial,并设为默认主屏幕。"
exit 1
fi
info "当前默认 Home:"
adb_ shell pm resolve-activity --brief -a android.intent.action.MAIN \
-c android.intent.category.HOME 2>/dev/null | tail -1 | sed 's/^/ /'
warn "请确认按遥控器 HOME 键能正常返回第三方桌面。"
}

check_core() {
local phase="$1"
info "检查核心包完整性($phase)..."
local pkgs; pkgs=$(adb_ shell pm list packages 2>/dev/null)
local missing=0
for c in "${CORE_PKGS[@]}"; do
echo "$pkgs" | grep -qx "package:$c" || { err "核心包缺失: $c"; missing=$((missing+1)); }
done
[[ $missing -gt 0 ]] && { err "发现 $missing 个核心包缺失,终止!"; exit 1; }
ok "核心包完整"
}

confirm() {
local prompt="$1" expect="$2" answer
read -r -p "$(echo -e "${YELLOW}${prompt}${NC}")" answer
[[ "$answer" == "$expect" ]]
}

# ============ 非卸载优化模块 ============

apply_settings() {
info "===== [1/6] settings 参数 ====="
local entries=(
"global|window_animation_scale|0"
"global|transition_animation_scale|0"
"global|animator_duration_scale|0"
"global|limit_background_processes|2"
"global|captive_portal_mode|0"
"global|wifi_scan_throttle_enabled|0"
"global|cpuset.sched_boost|1"
"global|auto_sync|0"
)
for e in "${entries[@]}"; do
IFS='|' read -r ns key val <<< "$e"
if adb_ shell settings put "$ns" "$key" "$val" &>/dev/null; then
local got; got=$(adb_ shell settings get "$ns" "$key" 2>/dev/null | tr -d '\r')
if [[ "$got" == "$val" ]]; then
ok "$ns/$key = $val"
else
warn "$ns/$key 写入后读回为 '$got'(可能不生效)"
fi
else
warn "写入失败: $ns/$key(该 key 可能不存在)"
fi
done

info "尝试速度模式 / 硬件加速(不保证生效)..."
local extra=(
"secure|speed_mode_enable|1"
"system|speed_mode|1"
"global|speed_mode_on|1"
"global|media.sf.hwaccel|1"
"global|video.accelerate.hw|1"
)
for e in "${extra[@]}"; do
IFS='|' read -r ns key val <<< "$e"
if adb_ shell settings put "$ns" "$key" "$val" &>/dev/null; then
local got; got=$(adb_ shell settings get "$ns" "$key" 2>/dev/null | tr -d '\r')
[[ "$got" == "$val" ]] && ok "$ns/$key = $val" \
|| warn "$ns/$key 未生效(读回 '$got'),可忽略"
else
warn "不支持: $ns/$key(可忽略)"
fi
done
}

clean_cache_and_logs() {
info "===== [2/6] 缓存与日志清理 ====="
info "pm trim-caches(清理所有应用缓存,不删数据)..."
adb_ shell pm trim-caches 999999999999 &>/dev/null && ok "缓存清理完成" \
|| warn "pm trim-caches 失败(可忽略)"

info "清理 /data/local/tmp..."
adb_ shell rm -rf /data/local/tmp/* &>/dev/null && ok "临时目录已清理" \
|| warn "临时目录清理失败(可忽略)"

info "清空 logcat 缓冲区..."
adb_ logcat -c &>/dev/null && ok "logcat 已清空" || warn "logcat -c 失败(可忽略)"
}

snapshot_state() {
info "===== [3/6] 状态快照 ====="
local lowram; lowram=$(adb_ shell getprop ro.config.low_ram 2>/dev/null | tr -d '\r')
info "ro.config.low_ram = ${lowram:-<空>}"

info "存储 /data:"
adb_ shell df /data 2>/dev/null | tail -1 | sed 's/^/ /'

info "内存概览:"
adb_ shell cat /proc/meminfo 2>/dev/null | grep -E "MemTotal|MemFree|MemAvailable|Cached" \
| sed 's/^/ /'

info "屏幕:"
adb_ shell wm size 2>/dev/null | sed 's/^/ /'
adb_ shell wm density 2>/dev/null | sed 's/^/ /'
}

force_stop_sys() {
info "===== [4/6] force-stop 系统服务(不跨重启) ====="
if ! confirm "是否 force-stop 系统服务 [${FORCESTOP_SYS[*]}]?(y/N): " "y"; then
info "已跳过"; return
fi
for p in "${FORCESTOP_SYS[@]}"; do
adb_ shell am force-stop "$p" &>/dev/null && ok "force-stop: $p" || warn "失败: $p"
done
sleep 2
for p in "${FORCESTOP_SYS[@]}"; do
local hit; hit=$(adb_ shell ps 2>/dev/null | grep -F "$p" | grep -v grep)
[[ -z "$hit" ]] && ok "进程已停: $p" || warn "进程仍存在: $p(可能被系统拉起)"
done
}

force_stop_third() {
info "===== [5/6] force-stop 第三方常驻应用(可选) ====="
info "候选: ${FORCESTOP_3RD[*]}"
warn "force-stop 会中断这些应用当前进程,重启后复活。"
if ! confirm "是否执行第三方 force-stop?(y/N): " "y"; then
info "已跳过"; return
fi
for p in "${FORCESTOP_3RD[@]}"; do
if adb_ shell pm list packages 2>/dev/null | grep -qx "package:$p"; then
adb_ shell am force-stop "$p" &>/dev/null && ok "force-stop: $p" || warn "失败: $p"
else
warn "未安装,跳过: $p"
fi
done
}

dev_options_hint() {
info "===== 开发者选项手动清单(脚本无法可靠写入) ====="
log " 请在电视上进入 设置 → 关于 → 连续点击版本号 7 次解锁开发者选项,然后:"
log " [ ] 强制进行 GPU 渲染 → 开启(如选项中存在)"
log " [ ] 后台进程限制 → 确认已是 2 或 4"
log " [ ] 动画三项 → 确认已是 0(脚本已写入,此处仅核对)"
log " [ ] 不保留活动 → 保持关闭(开启会影响多任务)"
}

uninstall_pkgs() {
local label="$1"; shift
local pkgs=("$@") success=0 fail=0 skip=0
info "===== $label(共 ${#pkgs[@]} 个)====="
for pkg in "${pkgs[@]}"; do
if ! adb_ shell pm list packages --user 0 2>/dev/null | grep -qx "package:$pkg"; then
warn "跳过(已无): $pkg"; skip=$((skip+1)); continue
fi
local out; out=$(adb_ shell pm uninstall --user 0 "$pkg" 2>&1 | tr -d '\r')
if echo "$out" | grep -qi "success"; then
ok "卸载: $pkg"; success=$((success+1))
else
err "失败: $pkg -> $out"; fail=$((fail+1))
fi
done
info "结果: 成功=$success 失败=$fail 跳过=$skip"
}

verify_after() {
info "===== [6/6] 验证 ====="
check_core "执行后"

for d in com.xiaomi.mitv.mediaexplorer mitv.service com.xiaomi.mitv.settings; do
if adb_ shell pm list packages --user 0 2>/dev/null | grep -qx "package:$d"; then
ok "依赖包存在: $d"
else
err "依赖包缺失!: $d —— 请立即恢复!"
fi
done

info "打开设置并检查前台..."
adb_ shell am start -a android.settings.SETTINGS &>/dev/null || true
sleep 3
adb_ shell dumpsys window 2>/dev/null | grep -E "mCurrentFocus|mFocusedApp" \
| head -2 | sed 's/^/ /'

info "发送 HOME 键..."
adb_ shell input keyevent 3; sleep 2

info "当前进程(前 15):"
adb_ shell ps 2>/dev/null | grep -E "^u0_|^system" | head -15 \
| awk '{printf " %-12s %s\n", $1, $NF}'
}

# ============ 主流程 ============

main() {
echo ""
log "${BOLD}============================================================${NC}"
log "${BOLD} 小米电视4A (Android 6) 恢复出厂后一键优化${NC}"
log "${BOLD} 日志: $LOG_FILE${NC}"
log "${BOLD}============================================================${NC}"
echo ""

check_adb; echo ""
check_launcher; echo ""
check_core "执行前"; echo ""

log "${BOLD}===== 操作清单 =====${NC}"
log " [1] settings 参数:动画×3=0 | 后台进程=2 | 门户检测=关 | Wi-Fi节流=关 | CPU boost=1 | auto_sync=关"
log " 尝试写入:速度模式×3、硬件加速×2(不保证生效)"
log " [2] 缓存清理:pm trim-caches、/data/local/tmp、logcat"
log " [3] 状态快照:low_ram、存储、内存、屏幕"
log " [4] force-stop 系统服务(可选):${FORCESTOP_SYS[*]}"
log " [5] force-stop 第三方常驻(可选):${FORCESTOP_3RD[*]}"
log " [6] 卸载 ${#SAFE_PKGS[@]} 个安全包;高风险包(${RISKY_PKGS[*]})需二次确认"
log ""
warn "卸载使用 pm uninstall --user 0,APK 仍在系统分区,可用 adb install -r -d --user 0 恢复。"
echo ""

if ! confirm "确认已安装并设为默认第三方 launcher,且理解以上操作?输入 I UNDERSTAND 继续: " "I UNDERSTAND"; then
err "用户取消,未做任何修改。"; exit 1
fi

echo ""
info "备份当前包列表..."
adb_ shell pm list packages -s > "$LOG_DIR/packages_before_$TS.txt" 2>/dev/null || true
adb_ shell pm list packages -u -s > "$LOG_DIR/packages_all_before_$TS.txt" 2>/dev/null || true
ok "已保存到 $LOG_DIR/"
echo ""

apply_settings; echo ""
clean_cache_and_logs; echo ""
snapshot_state; echo ""
force_stop_sys; echo ""
force_stop_third; echo ""

uninstall_pkgs "安全包卸载" "${SAFE_PKGS[@]}"; echo ""

if confirm "是否卸载高风险包 [${RISKY_PKGS[*]}]?(可能影响原桌面/下载/U盘媒体扫描)输入 RISKY 确认: " "RISKY"; then
uninstall_pkgs "高风险包卸载" "${RISKY_PKGS[@]}"
else
info "已跳过高风险包。"
fi

echo ""
verify_after; echo ""
dev_options_hint; echo ""

log "${GREEN}============================================================${NC}"
log "${GREEN} 完成!日志: $LOG_FILE${NC}"
log "${GREEN}============================================================${NC}"
echo ""

if confirm "是否重启电视以让 settings 完全生效?(y/N): " "y"; then
info "重启中..."
adb_ reboot
else
info "未重启。建议手动重启一次电视。"
fi
}

main "$@"

新增模块说明

模块 内容 风险 是否可逆
[1] settings 参数 动画×3、后台进程=2、门户检测、Wi-Fi节流、CPU boost、auto_sync;尝试速度模式×3、硬件加速×2 低 settings delete 可撤销
[2] 缓存与日志清理 pm trim-caches、清空 /data/local/tmp、logcat -c 极低 无需撤销,不删个人数据
[3] 状态快照 low_ram、df /data、/proc/meminfo、wm size/density 无 只读
[4] force-stop 系统服务 tvmanager、codec.update,可选确认 低 重启复活
[5] force-stop 第三方常驻 亚马逊桌面、投屏接收器、文件管理器、v2ray、商店、影视、VLC、远程输入、监控 低 重启复活
[6] 卸载 原安全包 + 高风险包(二次确认) 中 adb install 恢复
开发者选项清单 强制GPU渲染、后台进程限制、动画核对 无 仅提示
重启提示 可选重启让 settings 完全生效 无 —

注:

  • settings 参数扩展:新增 auto_sync=0,尝试写入速度模式与硬件加速,每条写入后 settings get 读回验证,不生效只警告不中断。
  • 新增缓存清理:pm trim-caches 清理所有应用缓存(不删数据),清空 /data/local/tmp,清空 logcat。
  • 新增状态快照:记录 low_ram、存储、内存、屏幕分辨率/密度,执行后可在日志里对比。
  • 新增 force-stop 模块:系统服务(tvmanager、codec.update)和第三方常驻应用(亚马逊桌面、投屏接收器、文件管理器、v2ray、商店、影视、VLC、远程输入、监控)分开确认,每条后检查进程是否真的停掉。
  • 新增开发者选项手动清单:强制GPU渲染 无法通过 settings put 可靠写入,脚本改为提示用户手动开启并核对。
  • 新增重启提示:settings 部分参数需要重启才完全生效,脚本末尾询问是否 adb reboot。

执行顺序

  1. 检查 ADB → launcher → 核心包(三道关卡,任一失败直接退出)
  2. 总确认 I UNDERSTAND
  3. 备份包列表
  4. [1] settings → [2] 缓存清理 → [3] 状态快照 → [4] force-stop 系统服务 → [5] force-stop 第三方(均为可选确认)
  5. [6] 卸载安全包 → 高风险包二次确认 RISKY
  6. 验证 → 开发者选项清单 → 可选重启

所有操作写入 optimize_logs/optimize_<时间戳>.log,备份文件同目录。

推荐软件

桌面 - aerial
桌面 - ProjectivyLauncher4.72
投屏 - airReceiverPremium4.9.6 投屏使用,但是可以扩展mac屏幕
商店 - Emotn1.0.40
手机输入 - IMEService
桌面管理 - LauncherManger1.1.6
文件 - MT2.26.8
播放 - VLC
直播 - TiviMatePremium5.9.1
工具 - TrackerControl
工具 - activityLauncher1.14.4
工具 - deviceInfo2.7.5.2
工具 - LMUltimate1.0.1
工具 - AdGuardPremium4.5.22

Visitors

 

下一篇: 小米电视4A(Android 6.0.1)pm uninstall --user 0 卸载与恢复完整复盘.md 

© 2026  by  Wangqifei