跳转至

潜在的力量:AI时代黑客技术的趋同与独立思考的反思

文章背景与核心概要

本文记录了一次将廉价CarPlay硬件转变为运行自定义代码平台的逆向工程实践。作者通过与多个大语言模型(如Kimi K3、Sol等)协作,成功克服了硬件型号变动带来的阻碍,基于Rust编写的 CatPlay 协议重新刷写并编译了设备固件。这段技术探索不仅展示了AI在硬件破解和嵌入式开发中的强大辅助能力,也引发了更深层次的哲学思考。

文章的核心议题在于探讨“技术独立性”的边界:当开发者们频繁借助相同的现代大模型进行头脑风暴和代码编写时,我们自以为独特的项目灵感和技术路径,究竟有多少是源于个人的创造力,又是多少被模型底层的潜在能力和共同建议所隐蔽地塑造和引导?这种现象揭示了AI在普及知识和激发创造力的同时,也在无形中推动着不同个体走向平行且趋同的技术探索之路。


The Genesis of a Hack

黑客行动的起源

A few weeks ago, I felt like it would be fun to see if I can make one of those cheap Chinese CarPlay dongles run something other than the stock firmware. The idea was that rather than just forwarding CarPlay, why not do something more interesting with them? They all work quite similarly: they act as bridges between your car and the phone. From there they deal with video and audio streams and pass some other data through. Most of them also bring up a custom UI for pairing and have a web interface that your phone can reach for updates.

几周前,我突然觉得如果能让那些便宜的国产CarPlay车载无线连接盒运行非官方固件,应该会挺好玩的。我的想法是,与其仅仅用来转发CarPlay信号,为什么不利用它们做点更有趣的事情呢?这些设备的工作原理大同小异:它们充当汽车与手机之间的桥梁,负责处理视频和音频流,并透传其他一些数据。它们大多数还会弹出一个用于配对的自定义用户界面,并提供一个让手机能够访问并进行更新的网页端。

Long story short: I had a conversation with Fable and Sol via Pi about what could be done with such a dongle or whether I should use a Raspberry Pi instead if I wanted to do my own thing there. I figured it might be quite fun to run my own code while still allowing regular CarPlay to pass through.

长话短说:我通过Pi与Fable和Sol进行了一次对话,探讨了这种适配器能做些什么,或者如果我想搞点自己的东西,是不是应该改用树莓派(Raspberry Pi)。我觉得,既能运行我自己的代码,又能同时让常规的CarPlay正常通过,这应该会相当有趣。

Unanticipated Hardware Hurdles

意料之外的硬件障碍

Through working with the LLM I learned about CatPlay, which is a Rust reimplementation of the CarPlay protocol that can run on Carlinkit devices. In particular, it can run on the Carlinkit Mini Ultra, which I figured would be easy enough to buy. I do have a few CarPlay adapters around, but I did not have that particular model, so I bought one on Amazon. Twenty-four hours later, I had a device in my hand that was branded as a Carlinkit Mini Ultra, but instead of being the Ingenic device that the original author used, it turned out to be something else.

通过与LLM的合作,我了解到了 CatPlay,它是CarPlay协议的Rust语言重新实现版本,能够在Carlinkit(车linkit)设备上运行。特别是它能够在Carlinkit Mini Ultra上运行,我想这东西应该很容易买到。我手头虽然有几个CarPlay适配器,但恰好没有那个特定型号,于是我在亚马逊上买了一个。二十四小时后,我拿到了一台标有Carlinkit Mini Ultra品牌的设备,但它并不是原作者所使用的君正(Ingenic)芯片设备,而变成了别的型号。

This is normally where the story would stop. However, it’s 2026. Armed with a bit of knowledge about how these systems work, I managed to have some fruitful discussions with Kimi K3 and Sol and figure out how flash the device and in turn, how to make CatPlay compile for that SoC.

故事通常到这里就该结束了。然而,现在是2026年。凭借对这些系统工作原理的一点了解,我和Kimi K3以及Sol进行了富有成效的讨论,弄清楚了如何 刷写设备固件,进而解决了如何让CatPlay在该SoC上成功编译的问题。

The Tenacity of the "Clanker"

“机器人伙伴”的执着

I guess that hacking these USB devices is not necessarily hard, but it’s laborious and you can easily end up bricking your devices. It also just sucks because sometimes you need to work with someone else’s code that does not itself run on your machine. In the past, I would abandon many such projects for lack of tenacity. But my clanker is tenacious.

我想,破解这些USB设备不一定有多难,但它非常费时费力,稍有不慎就会把设备变成“砖头”。而且这种事真的很折磨人,因为有时你不得不去处理别人写、却无法直接在你机器上运行的代码。在过去,由于缺乏足够的毅力,我会放弃很多这样的项目。但是,我的机器人伙伴(clanker)有着极强的执着。

But so are all of our clankers. Some of our projects are happening because of conversations we have with them. In this case I did not find or decide on CatPlay, the model did. It was not the only suggestion, but it became the best starting point after discarding others.

然而,我们所有的机器人伙伴也都是如此。我们现在尝试的一些项目,正是源于我们与它们的对话。在这个案例中,并不是我发现了或者决定使用CatPlay,而是模型决定的。它并不是唯一的建议,但在排除了其他选项后,它成了最好的起点。

And I discover this more and more. Particularly when we have solitary interactions with these models, some of us “independently” decide to work on similar projects. When I talked with an acquaintance about CarPlay he also mentioned recently that he decided to try something similar because he too wanted to see if he can get his own agent be hooked up with the car. And guess what: he too learned about the CarPlay hacking community, and that it’s an option, from the models and roughly around the same time.

这样的情况我发现得越来越多。特别是当我们与这些模型进行独立的交互时,我们中的一些人会“独立地”决定去开发类似的项目。当我跟一位熟人聊起CarPlay时,他也提到最近决定尝试类似的东西,因为他也想看看能否让自己的AI Agent接入汽车。你猜怎么着:他也是从模型那里了解到CarPlay破解社区以及这种可行性的,而且时间大致和我差不多。

Shared Minds and Parallel Paths

共享的思维与平行的路径

It really got me thinking about how this could create situations in which completely independent people end up building things they believe are their own ideas. Yet they were inspired or pushed towards doing something by a conversation with an LLM — a conversation that someone else also had. What if we took paths, because those were the paths that were more likely with current generation models? There is a running joke in the AI builder community right now that we’re all working on the same things, and in many ways it feels like we are. That might be because those things are obvious, or it might be partly because we all use the same models with the same capabilities.

这真的让我开始深思:这种情况是否会导致这样一种局面——完全独立的人们最终构建出了他们坚信是自己原创想法的东西,然而他们实际上是被与LLM的一次对话所启发或推动去完成的——而这段对话别人也可能经历过。如果我们选择某些路径,仅仅是因为这些路径在当前一代模型下更容易实现呢?AI开发者社区现在有一个流行的笑话:我们所有人都在开发同样的东西,而且在很多方面确实感觉如此。这可能是因为这些事情显而易见,但也部分是因为我们都在使用具备相同能力、来自同源的模型。

A few months ago, I first saw Lucas Meijer share the idea to make a model in Pi produce HTML reports rather than Markdown. I thought that was pretty unique. Except, well turns out the models are probably trained more and more for that (e.g. Claude Artifacts), and now it has become for many the default choice for sharing reports.

几个月前,我第一次看到 Lucas Meijer 分享了一个想法:让Pi中的模型生成HTML报告而不是Markdown。我当时觉得这非常独特。不过,事实证明,模型可能越来越多地为此类任务接受过训练(例如Claude Artifacts),现在它已经成为许多人分享报告的默认选择。

Conclusion

结论

How much of what we build comes from eliciting the same latent capabilities from the same models? Did the models make us prompt them that way? Was it because we shared ideas on Twitter and other communities that inspired us? Or is it all unrelated?

我们所构建的东西,究竟有多少是源于从相同的模型中激发出了相同的潜在能力?是模型诱导我们写出那样的提示词吗?是因为我们在Twitter和其他社区分享了想法从而互相启发吗?还是说这一切根本毫无关联?

There is something powerful and strange about how LLMs diffuse knowledge and capabilities, while perhaps also nudging us all simultaniously and independently toward building the same things.

大语言模型传播知识和能力的方式有一种强大而奇异的力量,它可能在不知不觉中同时又独立地引导着我们所有人去构建相同的东西。