A LIVE MAN

# ATV 改音频输出

默认分类 Tags: 无标签 阅读: 184

一、准备

  1. 同一台 PC 先装好:
    adb (SDK Platform-Tools)
    magiskboot (Magisk 自带,GitHub 直接下 zip 解压就有)
  2. 把 TV 盒子联网,打开「USB 调试」,执行

adb connect <TV_IP>
adb root # 确认返回 “already running as root”

二、把 verity 关掉(一次性)

  1. 把当前 boot 镜像拖出来

adb shell "dd if=/dev/block/by-name/boot$(getprop ro.boot.slot_suffix) of=/sdcard/boot.img"
adb pull /sdcard/boot.img

  1. 用 magiskboot 拆包、改 ramdisk

magiskboot unpack boot.img

会生成 ramdisk.cpio 以及 kernel 等文件

  1. 在 ramdisk 里找到 fstab 文件(名字可能是 fstab.android_x86 或 fstab.ranchu )

mkdir rd && cd rd
gzip -dc ../ramdisk.cpio | cpio -id

编辑 fstab.*,把含有 “/system” 或 “/” 那一行的

verity 或者 avb 关键词全部删掉,保存

  1. 重新打包

find . | cpio -o -H newc | gzip > ../ramdisk-new.cpio
cd ..
magiskboot repack boot.img ramdisk-new.cpio

生成 new-boot.img

  1. 刷回

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。