Theta Sentinel is a local AI security engine. It reads the events the system produces, decides which ones matter, and explains them in plain language. It runs entirely on the device. No log, prompt, or verdict is sent to ThetaSecurity or anyone else.
How it runs
- ModelA small language model, a quantized GGUF build of SmolLM2-360M, chosen to fit the job and the hardware.
- RuntimeNative C++ inference through llama.cpp, bound to the system with the Android NDK and JNI. No interpreter and no cloud SDK.
- FootprintAbout 300 to 500 MB of RAM while it is working. Analysis happens in memory with no network round-trip, so a warning appears as soon as the event does.
- NetworkZero cloud API calls. Sentinel works the same in airplane mode, in a Faraday bag, or behind a jammer.
What it watches
Sentinel receives events from the detection layer: radio state changes, tunnel health, AppOps permission attempts, DNS sinkhole blocks, canary file access, and sensor sampling requests. It turns cryptic hex logs and raw system events into a short explanation and a clear next step. Each one arrives as a high-priority notification in the shade.
Human error
Most leaks from a careful device are operator mistakes. Sentinel watches for the common ones and speaks up before they land:
- Unknown networksA warning before joining an open or never-seen Wi-Fi network.
- SideloadingA warning when installs from outside the shipped set are enabled.
- New pairingsA warning when a Bluetooth device is paired, because pairing is an identifier.
- Tunnel offA warning when traffic would leave without Tor or the VPN.
- Location in filesA warning when a photo or document about to be shared still carries coordinates.
- Account promptsA warning when an app asks to sign in with an account that ties the phone to a name.
The limit
Sentinel advises and alerts. The hard enforcement comes from the layers below it: memory tagging, verified boot, AppOps, and the sinkhole. A small model can misread an unusual event, so its alerts state what was observed as well as what it concludes. You can always check the raw event.