逆向 Nokia 110 4G 固件,把计算器应用改成 AI 智能体
Show HN: I Put an AI Agent on a Nokia 110
作者逆向 Nokia 110 4G 固件,把内置计算器改造成 AI 智能体,通过 DeepSeek chat API 回复并调用手机原生功能,实现查询 SIM 数据、开关手电筒、拨号和设置闹钟等操作。该原型在 48MB 内存上精简了 agent 代码、压缩 payload 并复用缓冲,目前需通过计算机加载到 RAM 运行,重启后失效,源码因含敏感数据暂未公开。
把诺基亚 110 计算器改造成可调本机功能的 AI 智能体,给出了 48MB 内存下压缩 payload 与复用缓冲的端侧方法。
Nokia 110 4G 上的 AI
我对 Nokia 110 4G 的固件进行了逆向工程,并为它构建了一个原生 AI 聊天应用。你通过数字键盘输入,智能体可以使用手机自身的功能。
看它运行
点击图片在 YouTube 上观看演示。
它的功能
- 通过手机的 SIM 数据回答问题。
- 检查电池电量百分比。
- 打开或关闭手电筒。
- 发起电话呼叫。
- 设置闹钟。
工作原理
将计算器应用修改为自定义聊天应用。它将你的消息发送到 DeepSeek 聊天 API 并相应地使用工具调用。
我使用 OpenAI Codex 来帮助构建它,并在手机上测试了该应用。
当前进展
这是一个通过计算机加载到 RAM 中的工作原型。加载完成后,它可以使用移动数据在无电源连接的情况下运行。我们可以添加任意多的功能,并让 Nokia 110 中几乎所有操作自动化。重启或关机后,需要重新加载。
我的历程
第一阶段:从浏览器开始
我首先在 Opera Mini 中添加了 AI 搜索选项。这给了我一个起点,但它仍然只是一个浏览器变通方案,无法将智能体与之集成。下一个目标是让应用运行在手机上,使用其原生功能。
第二阶段:运行我自己的代码
没有办法安装原生应用。我研究了固件和启动过程,然后通过计算器入口点让自定义代码在 RAM 中运行。这样我就可以在不刷入修改固件的情况下进行测试。永久安装仍未解决。
第三阶段:通过 SIM 数据获得真正的答案
一个工作中的数据连接还不够:可以提交请求,但答案无法到达应用。我追踪了固件的响应回调和整体流程。我从一个固定问题开始,在 USB 拔出的情况下确认答案,然后添加了输入的问题。
第四阶段:让聊天可用
尝试用文本输入框替换计算器布局。原生计算器的绘制也造成了干扰。我更改了布局和按键处理。后来,颜色的更改导致了重启;追踪固件后发现我写错了样式字段。已修复。
第五阶段:将聊天转化为操作
下一个目标是让 AI 使用真正的手机功能。由于手机内存只有 48MB,普通智能体代码无法装入,因此创建了一个非常简单的自定义智能体,使用更小的构建,压缩了有效载荷并复用了缓冲区。然后依次测试了上述每个功能。
源代码
我还没有上传代码,因为敏感数据分散在整个项目中。
来源:Hacker News · github.com