ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 17833|回复: 5
上一主题 下一主题
[教程&攻略]

小米电视 2.10 版本 Magisk ROOT 教程

[复制链接]
跳转到指定楼层
楼主
发表于 2026-7-20 16:19 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式 | 来自江苏
本帖最后由 JaxsonWang 于 2026-7-20 19:57 编辑

前言

我的电视系统是 2.10.3982,设备型号:L75MA-AC,Android9,理论上版本号差不多本教程通用的。下面教程不涉及到 Magisk 补丁 root,第三方 recovery 刷入等教程,并且我使用的是 macOS 环境,不提供其他系统教程,可以根据文章实际情况来变动。
小米电视 2.10 版本 Magisk ROOT 教程 小米电视 2.10 版本 Magisk ROOT 教程 小米电视 2.10 版本 Magisk ROOT 教程 小米电视 2.10 版本 Magisk ROOT 教程 小米电视 2.10 版本 Magisk ROOT 教程 小米电视 2.10 版本 Magisk ROOT 教程 小米电视 2.10 版本 Magisk ROOT 教程
本教程是利用小米电视里面的服务名 TvService 作为入口,这个服务名把一个脚本路径交给高权限服务,由 uid=0 的 misysdiagnose SELinux 域执行:service call TvService 4400 s16 s s16 <script-path>:
  1. ADB shell
  2. uid=2000(shell)
  3. SELinux=u:r:shell:s0
  4.         │
  5.         │ Binder transaction 4400
  6.         ▼
  7. Xiaomi TvService
  8.         │
  9.         │ 将脚本路径交给厂商诊断执行组件
  10.         ▼
  11. misysdiagnose 执行脚本
  12. uid=0(root)
  13. SELinux=u:r:misysdiagnose:s0
复制代码

利用上面特性配合我写的脚本通过 UART/CP2102 → U-Boot/Recovery → 部署 Magisk 启动链实现的持久 root。
  1. TvService 临时 Root
  2.         │
  3.         │ 尝试部署持久化文件、修改启动入口
  4.         ▼
  5. Magisk 持久 Root
复制代码

准备

下载我的附件,然后新建 xiaomi 文件夹将附件里面内容解压进去,不要根解压。
final-root-bundle.zip (13.31 MB, 下载次数: 3)
使用 CP2102 UART 连接电视:这边参考论坛教程:


建议下载附件文本手册查阅,论坛吞字太厉害了,好多命令被吞了。
小米电视 root.zip (3.37 KB, 下载次数: 6)

电脑设置终端环境变量:
  1. # 小米电视ip地址
  2. export TV=192.168.50.202:5555
  3. # 工作目录地址
  4. export XIAOMI=/Users/jaxson/Downloads/xiaomi
  5. # 附件地址,放在工作目录地址里面
  6. export ROOT_BUNDLE=$XIAOMI/final-root-bundle
  7. # magisk 安装包
  8. export MAGISK_APK=$ROOT_BUNDLE/apps/Magisk-v27.0.apk
复制代码

CP2102:921600 baud / 8N1 / 无流控。
HDMI 1CP2102
14+5V
15TXD
16RXD
20 / 屏蔽地GND

核对设备
打开终端输入:
  1. adb connect "$TV"
  2. adb -s "$TV" shell '
  3. getprop ro.product.model
  4. getprop ro.product.device
  5. getprop ro.build.version.release
  6. getprop ro.build.version.sdk
  7. getenforce
  8. '
复制代码

必须得到:
  1. 敏感词-ASTP0
  2. mulan
  3. 9
  4. 28
  5. Enforcing
复制代码

进入 Recovery Root
启动 UART,注意在 window 使用 putty 的话,设置波特921600,新开一个终端A,输入:
  1. mkdir -p "$XIAOMI/logs"
  2. "$ROOT_BUNDLE/tools/uart921600" \
  3.   /dev/cu.usbserial-0001 \
  4.   921600 \
  5.   "$XIAOMI/logs/mulan-root-install.raw.log"
复制代码

另一个终端 B 重启电视:
  1. adb -s "$TV" reboot
复制代码

终端 A 在 U-Boot 阶段按回车。看到 mulan# 后逐条执行:
  1. factorydata read console_enable
  2. factorydata write console_enable 1
  3. factorydata read console_enable
  4. setenv reboot_mode update
  5. printenv reboot_mode
  6. run switch_bootmode
复制代码

不要执行 saveenv。

Recovery 中确认:
  1. grep -E '^(Uid|Gid|CapEff|Seccomp):' /proc/self/status
  2. cat /sys/fs/selinux/enforce
复制代码

必须是 UID 0,SELinux 输出 0。

完整分区备份
如果这一步不用做的话可以无视,直接跳转到下一节,但建议还是做一下备份,后期折腾分区坏了还能还原。
Recovery:
  1. B=/sbin/busybox
  2. $B mount /dev/block/data /data
  3. D=/data/local/tmp/mulan-full-backup
  4. $B mkdir -p "$D"
  5. $B umount /cache
  6. f(){ $B dd if=/dev/block/$1 of=$D/$1.img bs=1M; }
复制代码

逐条执行:
  1. f bootloader
  2. f reserved
  3. f cache
  4. f env
  5. f logo
  6. f recovery
  7. f misc
  8. f dtbo
  9. f cri_data
  10. f param
  11. f boot
  12. f rsv
  13. f metadata
  14. f vbmeta
  15. f tee
  16. f secure_recovery
  17. f factorydata
  18. f vendor
  19. f odm
  20. f system
  21. f product
  22. $B dd if=/dev/block/mmcblk0boot0 of=$D/mmcblk0boot0.img bs=1M
  23. $B dd if=/dev/block/mmcblk0boot1 of=$D/mmcblk0boot1.img bs=1M
  24. $B dd if=/dev/block/mtdblock0 of=$D/mtdblock0.img bs=1M
  25. $B dd if=/dev/block/mmcblk0 of=$D/emmc-before-data.img bs=1M count=3184
  26. $B chown -R 2000:2000 "$D"
  27. $B chmod 700 "$D"
  28. $B chmod 600 "$D"/*
  29. $B sync
  30. $B reboot
复制代码

Android 启动后重新开启 ADB,把备份拉到电脑,并复制一份到其他存储:

  1. mkdir -p "$XIAOMI/backups/mulan-full-backup"
  2. adb connect "$TV"
  3. adb -s "$TV" pull \
  4.   /data/local/tmp/mulan-full-backup/. \
  5.   "$XIAOMI/backups/mulan-full-backup/"
复制代码


安装 Stage-B
电视正常启动并重新开启 ADB 后,在终端 B:
  1. <blockquote>adb -s "$TV" shell 'test ! -e /data/local/tmp/mulan-stage-b-install-20260719'
复制代码

在终端 A 的 Recovery shell:
  1. <blockquote>B=/sbin/busybox
复制代码

必须看到:
  1. [mulan-stage-b-install] INSTALL_SUCCESS
复制代码

成功后:
  1. <blockquote>$B sync
复制代码
等待 Android 和 ADB 恢复:
  1. <blockquote>adb connect "$TV"
复制代码
必须是 Magisk 27.0、uid=0、bootstrap.rc=0,ADB 日志包含 SERVICE_SUCCESS。

启用内置 Zygisk
终端 B 执行:
  1. <blockquote>adb -s "$TV" shell
复制代码

输出必须包含:
  1. key=zygisk|value=1
复制代码


安装 Stage-C Final
终端 B:
  1. <blockquote>adb -s "$TV" shell 'test ! -e /data/local/tmp/mulan-stage-c-final'
复制代码

必须看到:
  1. [mulan-stage-c-final-prepare] PREPARE_SUCCESS
复制代码

终端 B 继续输入命令,进入 Recovery:
  1. adb -s "$TV" reboot recovery
复制代码

终端 A:
  1. B=/sbin/busybox
复制代码
必须看到:
  1. [mulan-stage-c-final-install] INSTALL_SUCCESS
复制代码
出现 FAILED 时不要重启。成功后:
  1. $B sync
  2. $B reboot
复制代码

最终验证
等待约 90 秒,不要手动重新开启电视设置中的 ADB:
  1. adb connect "$TV"
复制代码

必须满足:
  1. sys.boot_completed=1
  2. SELinux=Enforcing
  3. uid=0
  4. stage-c-early.rc=0
  5. stage-c-service.rc=0
  6. STAGE_C_LATE_SUCCESS
  7. Zygisk mode=builtin
复制代码

ADB 日志包含 STABILIZATION_SUCCESS 和 SERVICE_SUCCESS

检查 Zygisk:
  1. adb -s "$TV" shell "/sbin/magisk su -c '
复制代码
必须看到 /system/lib/libzygisk.so。再正常重启一次并重复本节。

Magisk App 和模块
终端执行下面命令安装 magisk app:
  1. adb -s "$TV" install -r "$MAGISK_APK"
复制代码

不要点击“修复运行环境”、Direct Install、核心更新或卸载。

模块必须兼容 Android 9、Magisk 27 和 32 位 zygote。安装模块后正常重启。



给应用授予 Root 权限
目前 magisk app 在小米电视系统无法正常弹窗授权,直到超时提示拒绝授权,这时候可以用下面 UID 授权:

1. 查应用 UID
把包名替换成目标应用:
  1. export TV=192.168.50.202:5555
  2. adb -s "$TV" shell
  3. pm list packages -U | grep 'package:com.example.app '
复制代码

示例输出:
  1. package:com.example.app uid:10075
复制代码

记下 UID。不要直接给 uid:1000 等共享系统 UID 授权,否则同一 UID 下的其他系统组件也会获得 Root。

2. 永久允许
先确认 Magisk daemon 正常:
  1. pidof magiskd
  2. /sbin/magisk su -c id
复制代码

然后进入 Root shell,把 10075 换成实际 UID:
  1. /sbin/magisk su
  2. APP_UID=10075
  3. /sbin/magisk --sqlite "INSERT OR REPLACE INTO policies (uid,policy,until,logging,notification) VALUES ($APP_UID,2,0,1,0);"
  4. /sbin/magisk --sqlite "SELECT uid,policy,until,logging,notification FROM policies WHERE uid=$APP_UID;"
  5. exit
  6. exit
复制代码

正确结果包含:
  1. uid=10075
  2. policy=2
  3. until=0
复制代码

含义:
  1. policy=2       允许
  2. until=0        永不过期
  3. logging=1      记录新的 su 请求
  4. notification=0 不显示授权通知
复制代码

这会覆盖该 UID 原有的拒绝记录,不再依赖电视上无法操作的 Magisk 弹窗。

3. 重新启动应用
  1. adb -s "$TV" shell 'am force-stop com.example.app'
复制代码

重新打开应用,再执行它的 Root 功能。

Magisk 日志中的旧“拒绝”不会自动消失,应以新的请求时间和 policies 查询结果为准。

4. 查看全部授权
  1. /sbin/magisk su -c '/sbin/magisk --sqlite "SELECT uid,policy,until,logging,notification FROM policies ORDER BY uid;"'
复制代码

5. 撤销授权
  1. /sbin/magisk su
复制代码
查询无结果表示已撤销。

6. 常见问题

No daemon is currently running!
这不是 App 授权问题,而是 magiskd 没有运行。先正常重启电视,确认以下命令成功后再授权:
  1. pidof magiskd
  2. /sbin/magisk su -c id
复制代码

已写入 policy=2,应用仍提示没有 Root
依次检查:
  • 包名对应的 UID 是否正确;
  • 应用是否在授权后被完全停止并重新打开;
  • 应用是否使用了其他进程或不同 UID;
  • pidof magiskd 是否有输出;
  • /sbin/magisk su -c id 是否仍返回 uid=0。

不要通过 Magisk App 的“修复运行环境”处理授权弹窗问题。





上一篇:求L55M5-AB: 小米电视 4 55 英寸的刷机包
下一篇:小米电视字符花图
6#
发表于 2026-7-25 12:11 | 只看该作者 | 来自湖北
我是直接uboot下备份出来分区 解锁bl 关闭avb 然后修补面具刷进去的  s pro miniled 2024 mt9653
回复 支持 反对

使用道具 举报

5#
发表于 2026-7-24 17:06 来自ZNDS手机版 | 只看该作者 | 来自辽宁
谢谢分享
回复 支持 反对

使用道具 举报

地板
发表于 2026-7-21 17:15 | 只看该作者 | 来自陕西
首先  我认可大佬!也佩服大佬!   只是enmmm   我眼界低吧   我实在没搞明白电视机root  这有撒用?
回复 支持 反对

使用道具 举报

板凳
发表于 2026-7-21 15:36 | 只看该作者 | 来自湖南
回复 支持 反对

使用道具 举报

沙发
发表于 2026-7-21 14:57 | 只看该作者 | 来自浙江
倒是好久没看到这么完整的教程了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2026-9-7 04:13 , Processed in 0.083797 second(s), 14 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2026 ZNDS.Com

快速回复 返回顶部 返回列表