Written by AIAI wrote this one end to end from my notes. The words are the model's, not mine. Whether I touched it afterward is spelled out in the post's footer.

iMessage and WhatsApp, and the iOS wall

iosvoice-assistantmessagingarchitecture

I wanted my voice assistant to do the obvious thing. Read the text my wife just sent. Reply that I am ten minutes out. On the phone, that takes one tap for me. An app I write gets a flat NO.

This is not a missing feature. It is a wall built on purpose. It has several layers. I checked what those layers are, whether the newest iOS moves them, and what gets around the wall.

The wall starts under everything

iOS gives every app its own sealed box. It is not a folder with permissions I can change. The kernel enforces the boundary. Every app runs as the same user, so file ownership does not help. The kernel refuses to open a file outside the app’s box. My app cannot read the Messages box. It cannot read yours either.

The only thing that widens the box is a private entitlement. Apple signs entitlements into an app. It gives the restricted ones to its own apps. An app that claims one gets killed when it launches. There is no API, setting, or toggle I missed. The way through is to jailbreak the phone, which turns this protection off.

iMessage has its own locks

On top of that, iMessage has two more locks. The messages live in a database OUTSIDE every app. A system service owns it, not the Messages app. Apple’s private framework is the only code that reads it. It requires an entitlement I cannot get. Someone linked that framework on a Mac to test it. The message list still came back empty.

The most my app can do is open the compose sheet with text filled in. The person still has to tap send. It cannot read. It cannot send on my behalf.

WhatsApp locks it differently

WhatsApp does not keep a readable copy of your messages on a server. The messages are end to end encrypted. Only the phones in the conversation hold the real text. On the phone, that text sits inside WhatsApp’s sealed box. Its keys are in WhatsApp’s keychain. The same wall applies. There is no API for a personal account. There is nothing to call, official or not.

But surely the new iOS changed this

That was my next hope, so I checked the current release. It added one new thing. It does not solve my case.

what the latest iOS actually opened
The new API
EU onlyand only if my app is set as the default messaging app
What it carries
SMS, MMS, RCSiMessage is left out on purpose
WhatsApp
untouchednothing here applies to it

The one opening is carrier texts in Europe, for an app set as the default messaging app. It does not cover my iMessage or my WhatsApp. It does not apply where I live. The wall did not move for me.

The move is to stop fighting the phone

Once I stopped trying to knock the wall down, the design got simple. The phone is a thin client. Apple intends it to stay one. So I let it. The phone is the microphone, speaker, and screen. The work lives on a computer I own, reached over my private network.

The phone cannot cross the wall. A computer that already holds the session can.

The phone asks the computer. The computer is allowed to hold the session, so it reads and sends the messages. That is the whole trick.

What actually works, and what it costs

Works iMessage is the straightforward one. A Mac can read its own message database and send from it. A small service on the Mac does that, and the phone talks to the service. It is the same pattern BlueBubbles and AirMessage have used for years. The Mac has to stay awake. If it sleeps, the bridge is gone.

Risk WhatsApp can be built the same way. A companion client on the always-on computer links as a device, like WhatsApp Web. It can read and send my messages. But it breaks WhatsApp’s terms. Meta bans numbers that look automated. Keeping it small and personal lowers the risk. It does not remove it. A ban has no appeal.

Clean If I only want the assistant to message people, Telegram has an official API. Signal has a supported command line client. WhatsApp is the one without a clean door. I plan around that.

Where I landed

The wall stopped being a blocker once I treated it as a design constraint. iOS wants the phone thin. I keep it thin and put the rest on machines I trust. My messages come from a Mac that owns them. My files and tools live on the same box. The phone only asks for what it needs.

The wall is part of the design. It moved the message work off the phone and onto the computers I already run.