Files

4.6 KiB
Raw Permalink Blame History

小爱音箱 Pro 刷机教程

Important

本教程仅适用于 小爱音箱 ProLX06Xiaomi 智能音箱 ProOH2P 这两款机型,其他型号的小爱音箱请勿直接使用!🚨

准备条件

  • 小爱音箱
    • Xiaomi 智能音箱 ProOH2P
    • 小爱音箱 ProLX06
  • 数据线
    • Type-C(适用于新款小爱音箱 Pro,无需拆机
    • Micro USB(旧款小爱音箱 Pro 用这种,需要拆机

Note

注意:数据线不能只是充电线,需要连接到电脑上能传输数据才行。

连接电脑

新款的 Xiaomi 智能音箱 Pro 可以直接使用 Type-C 数据线通过音响底部的 Type-C 接口连接到电脑。

旧款小爱音箱 Pro 需要先把音箱外壳拆下来(参考步骤),然后在主板左上角找到 Mico USB 的调试接口,使用 Mico USB 数据线连接到电脑。

开始刷机

Caution

刷机有风险,操作需谨慎。刷机可能会造成设备失去保修资格,变砖无法运行等。请自行评估相关风险,一切后果自负!🚨

首先,下载或自行制作补丁固件,重命名为 root_patched.squashfs

然后,下载刷机工具:https://androidmtk.com/download-amlogic-flash-tool

把下载好的刷机工具文件夹解压到桌面,重命名为 Amlogic_Flash_Tool_v6.0.0

Tip

如果你是 macOS 系统,请到此处下载刷机工具和使用教程

然后运行 AMLLogic driver installer.exe 文件,按照提示安装 USB 驱动。

安装好驱动后,打开 /bin 目录,然后在空白处右键选择使用 Git Bash 打开当前目录。

Note

请确认你已经将小爱音箱用数据线连接到了 Windows 电脑,并且安装好了驱动程序。

然后,请按照说明在打开的终端里依次执行以下命令:

# 🚗 第 1 步:拔掉小爱音箱的电源线,重新插上电源后,立即在终端执行以下命令
./update.exe identify

# 如果显示类似下面的内容,说明小爱音箱已经成功连接到了电脑,可以继续进行下一步
# This firmware version is 0-7-0-16-0-0-0-0

# 否则继续快速重试几次该命令,或者重新拔掉电源上电后重试,直至显示出来版本号。

# ⏰ 第 2 步:设置启动分区和等待时长

# 设置 uboot 启动等待 15s
./update.exe bulkcmd "setenv bootdelay 15"
# 设置 boot0 作为启动分区
./update.exe bulkcmd "setenv boot_part boot0"
# 保存环境变量,使生效
./update.exe bulkcmd "saveenv"

# ⚡️ 第 3 步:刷入 system0
./update.exe partition system0 root_patched.squashfs
# 注意:需要把 root_patched.squashfs 替换成你下载的补丁固件实际路径

Tip

如果你卡在第一步,连接不上设备,可以按照此教程排查问题。

Note

提示刷机成功之后,拔掉数据线和电源,重新插电重启小爱音箱即可。 如果重启之后小爱音箱没有反应,可以拔掉电源等几分钟再重新上电开机。 如果还是没反应,可以重新刷机试试看,或者将启动分区设置成 boot1 恢复原系统启动。

SSH 连接到小爱音箱

刷机成功后,补丁固件默认开启 SSH 功能,默认密码 open-xiaoai

ssh -o HostKeyAlgorithms=+ssh-rsa root@你的小爱音箱局域网IP地址
# 比如:ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.227

Tip

如果刷机之后 SSH 连接不上去小爱音箱,请检查:

  • 你设置的启动分区(boot0)是否和你刷写的系统分区(system0)一致(修改启动分区之后,需要 saveenv 才会保存生效)
  • 你的电脑和小爱音箱是否处在同一网络环境下(可以更换路由器试试看)
  • 你的内网防火墙是否屏蔽了 22 端口(SSH 默认连接端口)
  • 如果你是自己构建的补丁固件,请检查 SSH 相关的 patch 是否生效

更新系统

小爱音箱有 2 套系统,上面我们只是将 system0 刷成了打补丁后的系统。

如果之后你想要更新系统,或者换回原来的系统,将启动分支设置成 boot1 重启即可。

# 连接到 SSH 后执行
fw_env -s boot_part boot1

# 或者使用和上面刷机相同的方式
./update.exe bulkcmd "setenv boot_part boot1"
./update.exe bulkcmd "saveenv"