Run an AI agent on a Nokia 110 feature phone

I reverse-engineered the firmware of a Nokia 110 4G and built a native AI chat app for it. Task: I reverse-engineered the firmware of a Nokia 110 4G and built a native AI chat app for it. You type on the number pad, and the agent can use the phone's own functions. Watch it work Click the image to watch the demo on YouTube. What it does Answers questions over the phone's SIM data. Checks the battery percentage. Turns the torch on or off. Starts a phone call. Sets an alarm. How it works Modified the Calculator app into custom chat app. It sends your message to DeepSeek chat API and use tool calls accordingly. I used OpenAI Codex to help build it and tested the app on the handset. Where it stands It's a working prototype loaded into RAM from a computer. Once loaded, it can run unplugged using mobile data. We can add as many feature as we want and make almost all the operation in nokia 110 automated. After a restart or power-off, it needs to be loaded again. How I got here Phase 1: Start with the browser I first added an AI search option to Opera Mini. That gave me a starting point, but it was still a browser workaround and can't integrate agent with this. The next goal was an app running on the phone that could use its native functions. Phase 2: Get my own code running There was no supported way to install a native app. I studied the firmware and boot process, then got custom code running in RAM through the Calculator entry point. That let me test without flashing modified firmware. Permanent installation is still unresolved. Phase 3: Get a real answer over SIM data A working data connection wasn't enough: requests could be submitted without an answer reaching the app. I traced the firmware's response callbacks and overall flow. I started with one fixed question, confirmed the answer with USB unplugged, then added typed questions. Phase 4: Make the chat usable Tried to replace calculator layout with text input box. Stock Calculator drawing also got in the way. I changed the layout and key handling. Later, a colour change caused restarts; tracing the firmware showed I had written to the wrong style field. Fixed it. Phase 5: Turn chat into actions The next goal was to let the AI use real phone functions. As the phone memory is only 48MB, normal agent code wont fit, so created a very simple custom agent, used smaller builds, compressed the payload and reused buffers. Then tested each feature mentioned above one after other. Source code I haven't uploaded the code because sensitive data is scattered across the project. LinkedIn: https://www.linkedin.com/in/anup-ray-dev/ Twitter: https://x.com/asubidha7; tools: custom-built or unnamed agent. Human role: The original post does not say how a person stayed involved.; limitations: The device has only 48MB of memory, necessitating a highly compressed custom agent and buffer reuse. The solution relies on an unsupported method of injecting code into RAM via the Calculator entry point, posing stability risks. Source code is not public due to scattered sensitive data. Integration with standard app stores is impossible, and the workflow requires technical expertise in firmware reverse-engineering..

Tools

custom-built or unnamed agent

Published on Agent Work Atlas:

Overview

I reverse-engineered the firmware of a Nokia 110 4G and built a native AI chat app for it.

Workflow

I reverse-engineered the firmware of a Nokia 110 4G and built a native AI chat app for it. You type on the number pad, and the agent can use the phone's own functions. Watch it work Click the image to watch the demo on YouTube. What it does Answers questions over the phone's SIM data. Checks the battery percentage. Turns the torch on or off. Starts a phone call. Sets an alarm. How it works Modified the Calculator app into custom chat app. It sends your message to DeepSeek chat API and use tool calls accordingly. I used OpenAI Codex to help build it and tested the app on the handset. Where it stands It's a working prototype loaded into RAM from a computer. Once loaded, it can run unplugged using mobile data. We can add as many feature as we want and make almost all the operation in nokia 110 automated. After a restart or power-off, it needs to be loaded again. How I got here Phase 1: Start with the browser I first added an AI search option to Opera Mini. That gave me a starting point, but it was still a browser workaround and can't integrate agent with this. The next goal was an app running on the phone that could use its native functions. Phase 2: Get my own code running There was no supported way to install a native app. I studied the firmware and boot process, then got custom code running in RAM through the Calculator entry point. That let me test without flashing modified firmware. Permanent installation is still unresolved. Phase 3: Get a real answer over SIM data A working data connection wasn't enough: requests could be submitted without an answer reaching the app. I traced the firmware's response callbacks and overall flow. I started with one fixed question, confirmed the answer with USB unplugged, then added typed questions. Phase 4: Make the chat usable Tried to replace calculator layout with text input box. Stock Calculator drawing also got in the way. I changed the layout and key handling. Later, a colour change caused restarts; tracing the firmware showed I had written to the wrong style field. Fixed it. Phase 5: Turn chat into actions The next goal was to let the AI use real phone functions. As the phone memory is only 48MB, normal agent code wont fit, so created a very simple custom agent, used smaller builds, compressed the payload and reused buffers. Then tested each feature mentioned above one after other. Source code I haven't uploaded the code because sensitive data is scattered across the project. LinkedIn: https://www.linkedin.com/in/anup-ray-dev/ Twitter: https://x.com/asubidha7

Reported result

The project achieved a functional prototype capable of executing specific phone commands via AI over SIM data. However, permanent installation remains unresolved, and the app must be reloaded into RAM after power cycles. No quantitative performance metrics or user adoption rates were reported. A measurable acceptance check would be verifying that all five listed functions execute correctly without crashing after a fresh RAM load.

Human role

The original post does not say how a person stayed involved.

Limitations

The device has only 48MB of memory, necessitating a highly compressed custom agent and buffer reuse. The solution relies on an unsupported method of injecting code into RAM via the Calculator entry point, posing stability risks. Source code is not public due to scattered sensitive data. Integration with standard app stores is impossible, and the workflow requires technical expertise in firmware reverse-engineering.

Try it

Act as a firmware engineer and AI developer. I want to replicate the AI chat agent on a Nokia 110 4G. [replaceable inputs: source firmware dump, DeepSeek API key, target phone model]. First, analyze the Calculator app structure to identify injection points for custom code. Develop a lightweight agent that sends text input to the DeepSeek API and parses tool calls for battery, torch, call, and alarm functions. Ensure the payload fits within 48MB RAM constraints by compressing assets and reusing buffers. Create a script to load the modified app into RAM via USB. Before finalizing, perform a dry run: load the app, send a test query for battery status, and verify the response. Confirm with me that the torch and call functions trigger correctly without causing restarts. Do not attempt permanent flashing until the RAM prototype is stable. Output the build instructions and a test log.

Original source

Source reports are not independently verified. Publication date is the catalog publication date, not the original article date.

More cases · Security & operations