Implementing automatic eSIM installation on Android

Auto eSIM installs spark a brawl — QR code crowd vs “my phone, my rules”

TLDR: A dev shows how Android apps can trigger automatic eSIM setup via the phone’s built‑in system, no extra app permissions. Commenters split between convenience and control: QR-code purists say “hands off,” others fear carrier gatekeeping and surveillance—big stakes as eSIM replaces physical SIMs.

A developer just showed how Android apps (on Android 9 and up) can kick off automatic eSIM installs using the phone’s built‑in helper, the LPA—no extra app permissions. Translation: your “digital SIM” can be set up by an app with a code, and the system prompts you if needed. If you’ve never heard of eSIMs, they’re the digital replacement for the plastic SIM card; the Android eSIM overview explains the basics.

But the comments? Absolute cage match. One camp says “keep apps away from my phone plan,” with a fan-favorite line: “Just give me a QR to scan.” Another camp is raging about control: “Wasn’t this supposed to be a general purpose computer?” They’re furious that carriers (mobile operators) can decide which apps are allowed to touch your eSIM, calling it a lock on a device you supposedly own. Then the privacy alarms went nuclear, with one commenter dropping a flamethrower: “it’s the FRONT door now!”—as in, surveillance isn’t sneaking in; it’s walking right through.

Some try to calm the room, noting the OS still asks for your OK and the LPA acts like a gatekeeper. But the vibe is set: QR Code Gang vs Automation Nation, with memes about scanning your way to freedom and jokes that the only “activation code” anyone wants is “NO THANKS.”

Key Points

  • Android has supported eSIM operations since Android 9 (API level 28) without requiring extra manifest permissions.
  • RSP architecture involves LPA (backend and LUI), eUICC for profile storage, and SM‑DP+ for secure profile distribution.
  • AOSP does not ship a default LPA, so eSIM support varies by device; custom LPAs can be built using EuiccService and an Activity.
  • To download an eSIM profile, check EuiccManager.isEnabled, obtain an activationCode (SM‑DP+ address + token), and create a DownloadableSubscription.
  • Use a PendingIntent and BroadcastReceiver to receive asynchronous callbacks on the eSIM download result via the device’s LPA.

Hottest takes

"Just give me a QR to scan" — wolvoleo
"Wasn’t this supposed to be a general purpose computer?" — kuschku
"it’s the fucking FRONT door now!" — metalman
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.