news 2026/11/5 4:25:29

小爱音箱自定义固件刷机指南:xiaoai-patch 四步把闲置音箱改造成开源媒体终端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小爱音箱自定义固件刷机指南: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、AirPlay、Snapcast 这类开源播放协议,也能用 Porcupine 唤醒词加 Whisper 语音识别接进 Home Assistant,变成局域网里真正可二次开发的语音终端。整个过程只涉及三个动作——提取、打补丁、重新打包,再加一次分区写入。

这套固件到底改了什么

音箱的 rootfs 是只读压缩格式,改不动单个文件,所以 xiaoai-patch 的思路是整块重做:把原厂 rootfs 解包出来,替换其中的专有软件、塞进一批开源包,再重新打包成新的 squashfs 镜像写回去。补丁和脚本都可以调,因此既可以彻底移除小米原生软件,也可以保留原有小爱功能、只在旁边加装新程序。

最终能力来自几组开源组件的组合:

  • 多媒体中心:MPD 做核心播放器,搭配 Snapcast 实现多房间同步,Shairport-Sync 接 AirPlay,Upmpdcli / Squeezelite 接 DLNA 与 LMS,一个音箱兼容多种推送协议。
  • 语音助手:Porcupine 负责本地唤醒词检测,语音送进 Home Assistant 的 Whisper 做识别,再把意图送回系统播报。
  • 全屋联动:作为 Home Assistant 的语音入口,控制家中设备。

支持哪些小爱音箱型号,怎么判断加密分区

已测试并兼容的型号及对应目标固件版本:

型号说明目标版本
LX06黑色 Pro 版,带红外1.74.10
L06A白色标准版,无红外1.74.10
LX01小米 AI 音箱 Mini1.32.6
L09A小爱音箱 Art(白)1.76.4
L09BArt 电池版(黑,未完全测试)1.69.54
LX05Play 版,分区加密但可支持—

加密分区要单独确认。LX05、L15A 这类机型在 rootfs 里附带一个 DER 证书来校验系统,未签名的 squashfs 可能被拒绝加载,官方不建议盲目刷写。判断方法是解包后跑binwalk,看输出里有没有Certificate in DER format这一行——有就说明带证书校验,风险更高。

刷机前备份与 Uboot 救砖准备

写任何分区之前,先做好这两件事,出问题时才有退路:

  1. 备份原始分区。通过 USB 刷机工具把 bootloader、boot0/boot1、system0/system1、data 等分区逐个 dump 到本地文件,核对文件大小。
  2. 确保能进 Uboot。检查环境分区里bootdelay=3(或更大)。若为bootdelay=0,Uboot 会直接续跑正常启动,你按任意键也停不下来。多数机型用fw_setenv或fw_env修改,数据存于第一分区。确认串口能看到Hit any key to stop autoboot提示后,再动手写镜像。

有条件的话,提前在板子上焊好 TTL 串口线——这是最后的恢复通道。

小爱音箱自定义固件编译四步:extract / patch / build

编译环境要求Linux amd64(Apple Silicon、Windows 均未测试),并安装squashfs-tools、make、rsync、shasum、Docker;S12 机型另需mtd-utils。WSL 用户记得开启大小写敏感。注意:包编译过程会向系统打补丁,务必在 Docker 里跑,别直接在宿主机执行。

先编辑 packages.sh 勾选要装的包,然后构建并进入容器:

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

容器内拿到从音箱 dump 出来的 rootfs 镜像(文件名如image-mtd4)后,一条命令跑完提取、打补丁、重新打包:

sudo make clean all FILE=image-mtd4 MODEL=lx06

包编译耗时通常超过一小时,属正常现象。完成后用file对比新旧镜像格式,确认无误再往下刷。

用 update 工具把新固件写进双系统分区

以 LX06 为例,刷写走 micro USB 口,无需焊接(但强烈建议焊 TTL 以备救砖):

  1. 进刷机态:开机约 2 秒内反复运行update identify,直到终端打印出固件版本,正常启动即被截停。
  2. 改 Uboot 延迟:update bulkcmd "setenv bootdelay 15"再saveenv,为后续恢复留窗口。
  3. 备份:用update mread store ...把各分区读到本地。
  4. 写分区:update partition system0 root.squashfs与system1,A/B 两块都写。

建议优先刷入当前不在用的那块 rootfs,开机切过去测试。一个常见坑:较新的 LX06 用了 Foresee/ESMTFSNS8A001GNAND,老内核不识别,刷boot.img后可能死循环重启。处理办法是把自己备份的mtd2.img(boot0)刷回去,而不是用发行版里那份内核。

刷机后的日常使用:Web 面板、SSH 与语音助手接入

  • 管理入口:浏览器访问音箱 IP 的 80 端口,即 Web 管理页;也可ssh登录,补丁会把默认密码改成root。
  • 连 Wi-Fi:连按播放键 5 次,用手机的 improv-wifi 配网;或在终端执行/bin/wifi_connect $SSID $PASSWORD。
  • 蓝牙配对:连按播放键 3 次,进入约 45 秒的配对模式;或执行/bin/bluetooth_pair。
  • 米家 APP:默认补丁会移除全部小米原生软件,改由 SSH / Web / Home Assistant 管理,米家 APP 不再适用。
  • 语音助手:把音箱接进 Home Assistant 后,Porcupine 听到唤醒词 → 录音送 HA 的 Whisper 识别 → 文本转意图 → 播报。需要配置/data/listener(HA 地址、Token、STT 提供方、语言、唤醒词)与/data/tts.conf。若一直报错,先核对系统时间(时间不对会导致 TLS 连接失败),可执行ntpd -q -p pool.ntp.org同步,转录日志在/tmp/stt.log。

刷坏了怎么办:TTL 串口进入 Uboot 恢复

只要步骤没走偏、没把镜像写错分区,失败启动都能通过 Uboot 安全回退:用 TTL 串口接上板子,进 Uboot 菜单,把启动分区指回那块完好的 rootfs 即可。前提是前面已确认 Uboot 可进入(bootdelay生效)。这也是刷机前焊 TTL、先备份、后动手的意义所在。

进一步学习:仓库文档与补丁入口

  • 常见问题(Wi-Fi、蓝牙、改蓝牙名、语音助手排错、改 root 密码):docs/faq.md
  • 语音助手完整配置与排错:docs/voice-assistant.md
  • LX06 分区、红外、按键、Uboot 环境等硬件细节:research/lx06/info.md
  • 按型号归类的补丁目录:patches/,编译脚本:scripts/,Home Assistant 组件:custom_components/xiaoai_assist/

需要源码时:git clone https://gitcode.com/GitHub_Trending/xia/xiaoai-patch。

本项目仅供学习研究,刷机导致保修失效、分区损坏等风险需自行评估,操作前务必备份原分区并确认能进 Uboot。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 4:25:28

Firefox 中手动安装猫抓 cat-catch,资源嗅探扩展装完即用

Firefox 中手动安装猫抓 cat-catch,资源嗅探扩展装完即用 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch&a…

作者头像 李华
网站建设 2026/11/4 1:15:11

Mineradio 完整升级指南:安全更新最新版并保护本地登录态

Mineradio 完整升级指南:安全更新最新版并保护本地登录态 【免费下载链接】Mineradio-paused 一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。 项目地址: https://gitcode.com/gh_mirrors/mi/Mineradio-paused Mineradio 是一款以电影镜头、粒…

作者头像 李华
网站建设 2026/11/4 1:12:31

Betaflight 飞控固件:十分钟连上飞控,免费跑满你的无人机

Betaflight 飞控固件:十分钟连上飞控,免费跑满你的无人机 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight Betaflight 是开源的飞控固件,GPLv3 协议&am…

作者头像 李华
网站建设 2026/11/4 1:10:23

优化Hermes Agent的日志处理:结构化数据与高效分析指南

优化Hermes Agent的日志处理:结构化数据与高效分析指南 Hermes Agent作为一款强大的AI代理框架,其日志系统是监控、调试和优化的关键组件。本文将详细介绍如何优化Hermes Agent的日志处理流程,实现结构化数据记录与高效分析工具的集成&#…

作者头像 李华
网站建设 2026/11/4 1:10:06

计网学习(三)——数据链路层

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/4 1:09:46

Excel画折线图做定积分

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华