RESOURCES / ARTICLE · PLATFORM & ARCHITECTURE

What a Java Card applet can and can't do: an architect's honest tour of the SIM

TELKOA · JULY 2026

Every technical evaluation of SIM-native software reaches the same moment: an architect leans back and asks, "wait — the SIM is running code?" This article is for that architect. No marketing abstraction; here is what the environment actually is, what an applet can genuinely observe and do, and where the hard limits sit.

The SIM is a computer, and it always has been

A SIM (UICC) is a smart card: its own processor, memory, and OS, running in a tamper-resistant package. Since the late 1990s it has hosted applications on the Java Card platform — a stripped-down JVM designed for secure elements. The environment is governed by public standards: ETSI TS 102 221 (the physical/logical interface), ETSI TS 102 223 (the Card Application Toolkit), TS 102 226 (remote management), and the 3GPP TS 31.x series (USIM behaviour).

Three properties make this environment unlike anything else in the device:

It's universal. Every cellular device has one — smartphones, feature phones, modems, meters.

It's persistent. It survives OS updates, factory resets, and firmware changes. An eSIM applet travels within the profile.

It answers to the card issuer. Applets install and update under the SIM's own keys — the operator's or SIM vendor's domain, not the app store's, not the device OEM's.

THE READ PATHWhat an applet can observe

The Card Application Toolkit gives applets an event model. Registered events fire on: device boot, location change (cell change), call setup/connect/disconnect, timers, SMS arrival, and more. Through proactive commands the applet can query the device for serving cell and neighbour measurements (CGI, NMR, timing advance where available), IMEI, and network registration state.

That composes into a real observation surface: registration outcomes and rejection causes, signal quality per cell, roaming context (MCC/MNC changes), call outcomes with cause codes, device identity changes, service availability over time — and, with a measurement module, achieved data throughput. All OS-independent, because none of it touches the OS.

THE WRITE PATHWhat an applet can do

The write path is what surprises people. The SIM owns files the device obeys: preferred network lists, forbidden network lists (FPLMN), and — critically — the IMSI itself. An applet with the right privileges can:

Rewrite network priority files and issue a REFRESH, changing network selection without a reboot.

Switch between provisioned IMSIs — a different subscription identity, applied from inside the card.

Modify SIM files to drop or restore network registration (the basis of SIM-level policy lock).

Open data sessions to a server via BIP, or fall back to binary SMS, invisibly to the user.

Run local logic autonomously — rules that fire when the device is offline and no server can be reached.

That last one deserves emphasis: the applet is the only recovery agent that's already inside a device that has lost connectivity.

HONEST CONSTRAINTSWhat it can't do

Memory is small. Applets live in tens of kilobytes. A full multi-module suite fits in ~35 KB because it’s engineered to; you don’t port your microservice to a SIM.

Compute is modest. Java Card has no threads, no floats, minimal heap. Heavy processing belongs server-side; the applet observes, applies compact rules, and reports.

No application-layer visibility. The applet sees the radio and signalling world, not your app’s HTTP requests. It can measure achieved throughput; it cannot see inside TLS streams — by design, and you want it that way.

Device variability exists. BIP support and proactive-command handling vary across device populations. Mature platforms profile and adapt per device type; edge cases surface during piloting, not after rollout.

Compatibility isn't universal. Field installation depends on card memory, Java Card version, and OTA key access. Any honest deployment starts with a compatibility assessment against real card profiles.

Privileges are earned. Everything above happens under the card issuer's security domain and keys. This is a feature: it's why a SIM applet estate is governable in a way device software never is.

Why this matters now

For twenty years this environment ran quietly: roaming menus, SIM toolkits, operator utilities. What changed is the economics on top of it — roaming margins decided by steering quality, IoT fleets too large to truck-roll, QoE data becoming the raw material for network APIs and AI. The one universal, persistent, issuer-controlled computer in every device stopped being a curiosity and became a control plane.

The deeper walkthrough — transport, security model, lifecycle, deployment — is on our how it works page, written at the same level of honesty as this article.

RELATED READING

Discuss your SIM/eSIM environment.