一、准备
- 同一台 PC 先装好:
adb (SDK Platform-Tools)
magiskboot (Magisk 自带,GitHub 直接下 zip 解压就有) - 把 TV 盒子联网,打开「USB 调试」,执行
adb connect <TV_IP>
adb root # 确认返回 “already running as root”
二、把 verity 关掉(一次性)
- 把当前 boot 镜像拖出来
adb shell "dd if=/dev/block/by-name/boot$(getprop ro.boot.slot_suffix) of=/sdcard/boot.img"
adb pull /sdcard/boot.img
- 用 magiskboot 拆包、改 ramdisk
magiskboot unpack boot.img
会生成 ramdisk.cpio 以及 kernel 等文件
- 在 ramdisk 里找到 fstab 文件(名字可能是 fstab.android_x86 或 fstab.ranchu )
mkdir rd && cd rd
gzip -dc ../ramdisk.cpio | cpio -id
编辑 fstab.*,把含有 “/system” 或 “/” 那一行的
verity 或者 avb 关键词全部删掉,保存
- 重新打包
find . | cpio -o -H newc | gzip > ../ramdisk-new.cpio
cd ..
magiskboot repack boot.img ramdisk-new.cpio
生成 new-boot.img
- 刷回
adb reboot bootloader # Android-x86 会进入 fastboot 模式
fastboot flash boot new-boot.img
fastboot reboot
三、重新挂载并写声卡配置
TV 重启后执行
adb root
adb shell "mount -o rw,remount /"
这时 / 已经可写,继续:
adb shell
tv:/ # aplay -l # 确认 HDMI 对应的 card/device
tv:/ # cat > /etc/asound.conf <<EOF
pcm.!default {
type plug
slave.pcm "dmixer"}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,3" # 改成你的 HDMI 编号
rate 48000
}}
ctl.!default { type hw; card 0; }
EOF
tv:/ # pkill audioserver
10 秒后声音就会从 HDMI 出来;以后每次升级 ROM 只需重复 “二、5” 把 boot.img 再刷一次即可。
一句话总结
不是权限不够,而是 verity 锁了只读 → 把 boot 拆包关掉 verity 再刷回去,就能 mount -o rw,remount / ,之后随便改 /etc/asound.conf 把默认声卡切到 HDMI。