如何从这个蓝牙音箱板上提取固件?

逆向工程 固件 硬件 标签
2021-06-28 07:12:46

我有一个蓝牙音箱。无限引信100

这是一个很好的扬声器。

但是它在启动和关闭时有烦人的消息。以及其他界面事件。我想要么完全摆脱它们,要么用简单的哔哔声代替它们,而不是冗长的信息。

我有信心如果我可以获得固件二进制文件,我应该能够按照我想要的方式修补它。我确实有成功逆向软件的经验。

然而,这是我第一次尝试硬件黑客,我有点卡住了。

到目前为止我尝试过的:

1 - 如果此扬声器具有服务模式,则在网上查找。所以我可以通过 USB 连接它,将它设置为服务模式并读/写固件。有些扬声器确实有这个。根据它的手册,这个扬声器似乎没有。

2 - 我尝试按住各种按钮组合,希望某些组合可以将其置于手册中可能未记录的服务模式。不工作。

3 - 在线阅读也许我需要使用称为 JTAG 的东西手动获取固件,所以我打开扬声器并取出电路板进行检查。这是它的正面和背面:

在此处输入图片说明 在此处输入图片说明

4 - 我看不到明显的 JTAG 接口。于是查了一下主芯片的数据表:ATS2815,好像是全集成的蓝牙音频芯片。

在此处输入图片说明

即使我查看了它的引脚布局,我也无法确定 JTAG 是否存在?

5 - 我还查了芯片XT25F08B,这似乎是一个NOR闪存。这是数据表

我想知道的是:

  • JTAG接口在哪里?我错过了一些明显的东西吗?
  • 我的猜测是固件必须驻留在 XT25F08B 闪存上。这个对吗?
  • 如果是真的,那么是否有一种简单直接的方法来读/写这个内存而不用打扰 JTAG(如果它不存在或无法弄清楚)?

也许这一切都是错误的方法,还有另一种获取固件的方法吗?

2个回答

根据 Internet ( http://www.lanzhi-tech.com/filedownload/99240 )上的数据表,ATS2815 似乎是一种具有管理蓝牙扬声器的所有功能的芯片,并且可能包含在许多不同的扬声器,都具有相同的接口。

根据数据表,它具有“用于程序和数据的内部 ROM 和内部 RAM”。所以,我想,实现蓝牙协议和主要芯片功能的核心固件在 ATS2815 芯片内部。

在大小为 1Mbyte (8 Mbit) 的外部 NOR 闪存 EEPROM XT25F08B 上,可能有配置数据(例如关于他的蓝牙名称、配对设备等的信息),并且可能,但不确定,一些“应用程序” " 可以加载到 RAM 中并执行。

在Datasheet上,有多个引脚标记为UART_TX或UART_RX,但也说明该芯片只有一个UART接口;无论如何,我会尝试查看在其中一些引脚上是否在启动周期中打印了一些东西。

您还可以尝试使用像这样的 8 针适配器读取 NOR 闪存:https : //amzn.to/39A9JFd,一个 EEPROM 闪存编程器,如“TL866II Plus”(或更便宜的克隆)和相关的 Xgpro EEPROM 读取器/程序员软件。

根据datasheet,似乎ATS1815芯片没有JTag接口,所以这里好像没有这个接口。

固件存储在 xt25f08b 芯片上可能是对的。将固件存储在这样的闪存芯片上的情况并不少见,而且我没有看到任何其他存储。

一种相当简单的方法是在设备断电时将 8 引脚 SOIC 夹连接到芯片上,然后通过 SPI 读取它。这可以通过 5 美元的 Raspberry Pi 和开源flashrom软件来完成。如果您的芯片在那里不受支持,如果已经有类似的芯片,添加它可能很容易。有时,如果连接导致 CPU 开启,您可能会遇到问题,这可能需要暂时移除某个引脚或拉上/拉下其他某个引脚。