破解一切:Toniebox
17. Jun 2025
预计阅读时间:7分钟
继续我的“破解一切”系列,今天我要做些稍微不同的事情。之前我破解了PS Vita和任天堂3DS,但这次我想聊聊我的Toniebox。
或者更准确地说……是我孩子的Toniebox。
如果你不熟悉这个东西,它是一个带有内置扬声器的小音乐盒,有两个小“耳朵”可以调节音量,顶部有一个NFC读取器。你不需要插入磁带或CD(是的,我老了!),而是把小雕像(即NFC标签)放在盒子顶部。通过倾斜盒子可以快进或快退(我们从未使用过这个功能),通过左右拍打可以跳过整首曲目。
这些东西有多种颜色。
如果你对NFC有点熟悉,可能会想知道所有音乐是从哪里来的。我不知道NFC标签到底能存储多少信息,但肯定远远少于3小时的音频剧。而且他们也没有使用什么疯狂的新压缩算法。他们使用的是——鼓声——云端!
无处不在的云端也是我长期以来反对购买Toniebox的原因之一。你需要一个Tonies账户,否则这个盒子就没用。这些雕像是专有的,不能与其他硬件一起使用。据我所知,没有第三方“Tonies”。
Toniebox需要活跃的互联网连接,这也意味着背后的公司——Tonies SE——理论上可以追踪我的孩子用这个盒子做的一切。
当然,这不仅仅是理论。任何交互,放上雕像、拍打盒子、使用耳朵,甚至播放进度,都会被记录并通过唯一的Toniebox ID发送出去——这当然没有匿名化,直接与你的Tonies账户关联。
然而,Toniebox连接到两个URL:
- prod.de.tbs.toys
- rtnl.bxcl.de
第一个URL用于与Tonies服务器认证并下载音乐文件到内部SD卡。第二个仅用于追踪。因此,你可以使用网络范围的广告拦截器(例如Pi-Hole)将rtnl.bxcl.de加入黑名单,以保护孩子的隐私。
他们把URL分得这么清楚是很整洁,但糟糕的是,他们为一个针对小孩子的玩具发送了大量的追踪信息。作为开发者,我理解拥有大量追踪信息有助于找出那些讨厌的bug……但我更愿意保护小孩子的隐私不受损害。
云端的另一个问题是,东西不再真正属于你。游戏、电影、电视节目、音频剧……现在一切都只是“授权”给你。
这可能是一次盲目的尝试,可能永远不会发生,但……我注意到我和妻子经常会回忆起我们小时候拥有的磁带和CD(有时甚至是黑胶唱片)以及我们长大的音频剧。现在我们的孩子到了适合的年龄,我们想与他们分享这些。
如今想找到一个能用的磁带播放器可不容易。我们的都坏了。但这不成问题,因为我们几乎所有的收藏都没了,被时间的不可避免的腐朽(以及过于热心的父母清理掉了,因为“谁还听磁带!?”)所吞噬。
我们设法从YouTube上找回了一些我们喜爱的东西,但有些东西只存在于我们的记忆中。
如果二十多年后我的孩子来找我,说“爸爸,你还记得那个关于小海盗和他的船员的音频剧吗”,并想与他们的孩子分享这些故事,我希望能够直接指给他们说“你在找这个!”
当我有了孙子时,很可能不会有Tonieboxes了,更不可能找到兼容的硬件,最重要的是,文件几乎不可能还在Tonies云端可访问!
幸运的是,你只需拧下三个螺丝,拆开这个东西,取出SD卡进行一些甜蜜的备份。
我做了一些在线研究,最终了解到音频文件是用OPUS压缩的。它们没有加密,所以如果你安装了编解码器,你应该能够用像VLC这样的东西打开SD卡上的“较大”文件并立即播放。
有一些较小的文件包含元数据,例如单个曲目的长度。在我自己天真的脚本中忽略了它们,因为我无法弄清楚元数据格式。
然而,几个月后,有人在Mastodon¹上提到了这个来自37C3²的视频(只有德语)。我发现这个演讲非常有趣和信息丰富。从那里我还了解到了https://tonies-wiki.revvox.de/ 和teddyBench。
teddyBench尤其是一个令人惊叹的小工具。你可以指向一个包含Tonies SD卡文件的目录,它会显示一个带有雕像图片的网格,并可以导出内容。对我来说,最关键的是他们成功读取了元数据并自动将音频文件分割成单独的曲目。GitHub上只有一个Windows二进制文件可下载,但通过WINE在Linux上运行得非常好。
我承认这就是我自己破解的终点。如果我们说实话,我并没有真正破解任何东西,因为我只是拧下三个螺丝取出了SD卡。
但是!!!!这并不意味着你不能做很多破解!
我读到过一些惊人的项目。不过你需要摆弄电路板上的硬件芯片,这远远超出了我的能力范围。但如果你知道自己在做什么,你可以做一些有趣的事情。
刷写自定义固件,这样你就可以读取自定义NFC芯片。我读到有人用这些来进行备份,或者用硬币大小的NFC标签替换笨重的雕像,占用更少的空间——如果你去度假的话很方便。
你还可以提取和替换芯片上的TLS证书。这允许你对你的盒子进行中间人攻击。这与teddyCloud——一个作为你的盒子和Tonies云端中间件的项目——结合得很好。你可以添加自己的音频文件,定义自定义ID,甚至播放Spotify流。同时,你可以继续使用原始的Tonies,因为缺失的ID会被代理到官方的Tonies云端并从那里下载。
我还看到一些很酷的硬件破解。一位家长用适当的按钮替换了侧面的拍打传感器来切换曲目,使盒子对他们的孩子更易用。另一个人拆下了SD卡座,放入一些电线,在盒子顶部钻了一个洞,把SD卡座放在那里,这样更容易取出卡进行备份。
这是一个非常酷的社区,我对人们如此彻底地逆向工程这个东西感到印象深刻和高兴。
至于我……我之前提到过我最初因为多个原因反对购买Toniebox。但当我看到我当时一岁的孩子玩它——把雕像放在顶部并挤压小耳朵时——我终于看到了它的吸引力。
在几天内,他发现了切换雕像会重置播放过程。所以整个下午他站在那里,使用这个新发现的技术一遍又一遍地重放他喜欢的介绍歌曲。我静静地看着他,感到敬畏和微笑。
- 我很抱歉。有人回复了我的一条评论,我不再记得名字了。我后来搬到了自己的实例,失去了查找的能力。↩︎
- 第37届混沌通信大会。↩︎
你喜欢你读到的内容吗?让我听听你的想法。
- 给我发邮件
- 在Fediverse上回复
Hack all the things - Toniebox 由 Robert Lützner 创作,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 © 2025 Robert Lützner Mastodon | Codeberg | 联系我 | RSS订阅 | 印记