ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

给小爱音箱刷上自己的固件:xiaoai-patch 完整构建与刷机指南

给小爱音箱刷上自己的固件:xiaoai-patch 完整构建与刷机指南

给小爱音箱刷上自己的固件:xiaoai-patch 完整构建与刷机指南

【免费下载链接】xiaoai-patchPatching for XiaoAi Speakers (小爱音箱), add custom binaries and open source software. Tested on LX06, LX01, LX05, L09A项目地址: https://gitcode.com/GitHub_Trending/xia/xiaoai-patch

开源项目 xiaoai-patch 会替换小爱音箱的 rootfs:把小米的闭源软件整个移除,装上一套 MPD、Snapcast、Shairport-Sync 等开源程序,让音箱变成一台由你自己管理的语音助手和媒体播放器。这篇文章面向愿意动手的普通用户,以 LX06 为例,按顺序把构建和刷写走一遍。

兼容性自查:哪些型号能刷,要备哪些工具

动手前对照这份清单,缺任何一项都不要继续:

  • 型号:LX06 / L06A 测试最充分,推荐首选;LX01、L09A、L09B(未实测)可用。LX05、L15A 的分区带加密校验,项目建议不要刷,刷坏风险自担。
  • 电脑:Linux amd64 系统,Ubuntu 20.04 及以上,24.04 实测通过。Windows、Apple M1 均不在支持范围。
  • 工具:squashfs-tools、make、rsync、shasum、Docker,另需预留一小时以上编译时间。
  • 音箱侧:micro USB 数据线;LX06 拧开底部 6 颗螺丝即可接触 USB 口,不用焊接,但强烈建议预留 TTL 串口线以备恢复。

WSL 用户注意:需开启setCaseSensitiveInfo,否则路径大小写会导致构建失败。

全程走通:四步构建并刷入自己的固件

1. 获取源码与 rootfs 镜像

git clone https://gitcode.com/GitHub_Trending/xia/xiaoai-patch

同时需要一份音箱自身的root.squashfs镜像:可以来自系统升级文件,也可以直接在音箱上dd导出。成功标准:用file查看,确认是 Squashfs 格式,大小与分区容量吻合(LX06 上限 40MB)。

2. 配置要安装哪些包

编辑 packages.sh,勾选需要交叉编译的服务:MPD、Snapcast、Shairport-Sync、UPnP 客户端等。这一步可选,但建议做,能避免编译用不到的东西。

3. 用 Docker 构建,打包新镜像

编译过程会对构建环境打补丁,项目明确要求在 Docker 里跑,否则会污染你自己的 Linux 系统:

docker build -t xiaoai-patch packages docker run -it -v $PWD:/xiaoai xiaoai-patch

进入容器后执行:

sudo make clean all FILE=root.squashfs MODEL=lx06

这一条命令串起解包、打补丁、重新打包三个环节。成功标准:release/lx06/下出现带时间戳的镜像文件和latest链接。每个目标的作用在 Makefile 里有 help 说明。

4. 刷入音箱

LX06 需拆下底盖、接上 micro USB,再用 aml-flash-tool 刷机工具。关键动作:上电后约 2 秒内连续执行update identify,终端里打出固件版本号,就进入了刷机窗口,随后把root.squashfs写进 system0 / system1 两个分区即可,完整命令见 research/lx06/install.md。成功标准:重新上电后音箱正常启动,能连上 Wi-Fi 拿到 IP,SSH 用 root / root 登录。

跑通之后的三个真实场景

客厅听歌:音乐放在 NAS 或本机磁盘上,MPD 负责播放。iPhone 可以用 AirPlay 直接推流,电脑上的 UPnP / LMS 客户端也能把歌丢给它。不用再打开某个专属 App,浏览器访问音箱 IP 就能打开内置的 Web 管理页,随时查看状态。

语音控灯:在 Web 页里填上 Home Assistant 的地址和令牌后,音箱用 Porcupine 识别唤醒词,录音送 Whisper 转成文字,再交给 HA 执行意图,结果用 TTS 念回来。对音箱说一声"开灯",HA 里对应的灯真的会亮。配置细节见 docs/voice-assistant.md。

多房间同步:装上 Snapcast 后,这台音箱成为同步播放的客户端。同一局域网里再挂几台输出设备,大家播放同一首歌、同一秒,组一套粗糙但够用的多房间音响。

想深入时的三个入手点

  • scripts/ 目录:开机后的 SSH、主机名、服务开关等改造全是独立 shell 脚本,按编号执行,加一段自己的逻辑最直接。
  • packages/目录:每个组件一个package.mk,写清下载、编译、安装规则。想加一个新软件,照抄一个目录改就行。
  • api/目录:设备端的 HTTP 管理接口,还在持续完善,适合读代码理解设备端结构。

风险与回退:备份怎么做,出问题怎么还原

  • 刷机前备份:先用刷机工具把 U-Boot 的bootdelay调大(update bulkcmd "setenv bootdelay 15"加saveenv),确保随时能进启动菜单;再用mread把 mtd0 到 mtd6 七个分区全部 dump 到电脑,并核对文件大小。
  • 保修与数据:刷入自定义固件后保修失效,小米账号及云端配置不再可用,这是一条单行道。
  • 还原动作:启动失败时,用 U-Boot 菜单(最坏情况靠 TTL 串口)把备份里的出厂 system 分区镜像写回去即可恢复,README 的 Unbricking 一节有完整步骤。
  • 加密型号别碰:如果binwalk分析镜像时看到 Certificate 条目,说明有签名校验,不要刷写,可能直接锁死。

常见问题

刷完之后米家 App 还能用吗?

不能。默认补丁移除了全部小米软件,米家找不到设备。管理方式变成 SSH、音箱 Web 页和 Home Assistant 三条路。

刷完怎么连 Wi-Fi?

按 Play 键 5 次,用手机上的 improv-wifi 应用靠近音箱配网;或者在终端直接执行/bin/wifi_connect 信号名 密码。蓝牙配对则是按 Play 键 3 次,进入约 45 秒的配对窗口。

刷机后开机循环还有救吗?

有,前提是做过分区备份。LX06 若刷入发布版boot.img后提示不认识 NAND 芯片,把备份的自己那台机器的mtd2.img写回 boot0 分区即可恢复,不需要重新编译任何东西。

xiaoai-patch 把一台闲置的小爱音箱从"App 控制的家电"变成"自己手里的 Linux 设备"。建议先把分区完整备份一份,再从测试最充分的 LX06 开始动手。

【免费下载链接】xiaoai-patchPatching for XiaoAi Speakers (小爱音箱), add custom binaries and open source software. Tested on LX06, LX01, LX05, L09A项目地址: https://gitcode.com/GitHub_Trending/xia/xiaoai-patch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进