在 Nokia 110 4G 上运行 AI
我逆向工程了 Nokia 110 4G 的固件,并为它构建了一个原生 AI 聊天应用。你在数字键盘上打字,智能体就能调用手机自身的功能。
观看它运行
点击图片在 YouTube 上观看演示。
它能做什么
- 通过手机的 SIM 数据流量回答问题。
- 检查电池电量百分比。
- 打开或关闭手电筒。
- 拨打电话。
- 设置闹钟。
工作原理
把计算器应用改造成了自定义聊天应用。它把你的消息发送到 DeepSeek chat API,并相应地使用工具调用。
我用 OpenAI Codex 协助构建它,并在手机上测试了这个应用。
目前的状态
这是一个可运行的原型,从电脑加载到 RAM 中。一旦加载完成,它就能拔掉线,使用移动数据运行。我们可以随意添加任意多的功能,让 Nokia 110 上几乎所有的操作都自动化。重启或关机后,需要重新加载。
我是如何走到这一步的
阶段 1:从浏览器开始
我首先给 Opera Mini 添加了一个 AI 搜索选项。这给了我一个起点,但它仍然只是浏览器层面的变通方案,无法把智能体集成进去。下一个目标是让一个应用运行在手机上,并能使用它的原生功能。
阶段 2:让我自己的代码跑起来
当时没有受支持的方式来安装原生应用。我研究了固件和启动过程,然后通过计算器入口点让自定义代码在 RAM 中运行。这样我就能在不刷入修改版固件的情况下进行测试。永久安装的问题仍未解决。
阶段 3:通过 SIM 数据流量得到真正的回答
仅有可用的数据连接还不够:请求可以提交,但回答无法到达应用。我追踪了固件的响应回调和整体流程。我从一个固定问题开始,在拔掉 USB 的情况下确认了回答,然后加入了可输入的问题。
阶段 4:让聊天变得可用
尝试用文本输入框替换计算器的布局。原版计算器的绘制逻辑也造成了干扰。我修改了布局和按键处理。后来,一次颜色改动导致了重启;追踪固件后发现,我写入了错误的样式字段。修复了它。
阶段 5:把聊天变成操作
下一个目标是让 AI 使用真实的手机功能。由于手机内存只有 48MB,常规的智能体代码放不下,所以创建了一个非常简单的自定义智能体,使用更小的构建版本,压缩了载荷并复用了缓冲区。然后依次测试了上面提到的每一项功能。
源代码
我没有上传代码,因为敏感数据散布在整个项目中。
