转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]
如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
背景说明
•电脑:Windows
•音箱:Xiaomi 智能音箱 Pro
固件打补丁
1. 下载仓库:
# 克隆代码 git clone https://github.com/stevenjoezhang/xiaoai-agent.git # 进入当前项目根目录 cd xiaoai-agent cd deploy/client-patch2. 编辑文件:
vim .env3. 填入内容:
# 你的小米账号/密码 MI_USER=xxx MI_PASS=xxxx MI_TOKEN=xxxxx # 你的 Xiaomi 智能音箱 Pro 名称/DID MI_DID=Xiaomi 智能音箱 Pro # 你的 SSH 登录密码(默认为 open-xiaoai) SSH_PASSWORD=open-xiaoai4. 然后执行:
# 安装依赖 npm install # 打包固件 npm run build
• 打包成功后,原始固件和补丁固件会保存在 assets 目录下。
• 默认修改后的补丁固件,会将 /data/init.sh 文件作为启动脚本,开机时自动运行。如果你需要自定义开机启动脚本,可自行创建和修改该文件。
如果没有安装npm,使用 Docker 打包固件也可以:
# 构建当前仓库的打包镜像 docker build --platform linux/amd64 -t xiaoai-agent-client-patch . # 使用当前仓库镜像进行构建 docker run -it --rm \ --platform linux/amd64 \ --env-file $(pwd)/.env \ -v $(pwd)/assets:/app/assets \ -v $(pwd)/patches:/app/patches \ xiaoai-agent-client-patch # ✅ 打包完成,固件文件已复制到 assets 目录... # /app/assets/mico_all_92db90ed6_1.88.197/root-patched.squashfs
刷写固件(也是开启SSH)
1. 下载刷机工具:https://androidmtk.com/download-amlogic-flash-tool
或者直接:https://androiddatahost.com/6htbr
2. 运行
AMLLogic driver installer.exe文件,按照提示安装 USB 驱动。
3. 进到bin目录下,打开powershell,输入以下命令测试,如果没报错就说明可用:
4. 然后,在打开的终端里依次执行以下命令:
第 1 步:小爱音箱连接电脑,然后拔掉小爱音箱的电源线,重新插上电源后,立即在终端执行以下命令
一定要快!刚上电就反复输入命令,不然只会显示
can not find device
./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 替换成你重新打包得到的补丁固件实际路径PS: 如果提示刷写错误,可以多试几次,不一定是真的无法刷机
第 6 步:重启设备
提示刷机成功之后,拔掉数据线和电源,重新插电重启小爱音箱即可。 如果重启之后小爱音箱没有反应,可以拔掉电源等几分钟再重新上电开机。 如果还是没反应,可以重新刷机试试看,或者将启动分区设置成 boot1 恢复原系统启动。
SSH 连接
刷机成功后,补丁固件默认开启 SSH 功能,默认密码是open-xiaoai:
ssh -o HostKeyAlgorithms=+ssh-rsa root@你的小爱音箱局域网IP地址 # 比如:ssh -o HostKeyAlgorithms=+ssh-rsa root@192.168.31.227恢复系统
小爱音箱有 2 套系统,上面我们只是将 system0 刷成了打补丁后的系统。
如果之后你想要更新系统,或者换回原来的系统,将启动分支设置成 boot1 重启即可。
# 连接到 SSH 后执行 fw_env -s boot_part boot1 # 或者使用和上面刷机相同的方式 ./update.exe bulkcmd "setenv boot_part boot1" ./update.exe bulkcmd "saveenv"其他事项
1. 不要使用老的1.58.2的固件,学长试了,会导致小爱无法联网。一定要用制作固件的方法,这样才是最新的版本。