前言:为什么我们要折腾这个?
对于国内的 Android 极客来说,eSIM 一直是个痛点。出国旅游需要买昂贵的漫游包,或者为了接收一个海外验证码(OpenAI/Google/Twitter)还得专门买台 Pixel 或者 iPhone。
虽然市面上已经有了像 5ber、eSTK.me 这样的成品“物理 eSIM 卡”,但作为一名开发者,我有两个不爽的点:
- 贵:一张卡动辄 25 美刀(约 180 RMB),溢价严重。
- 封闭:必须使用厂商指定的 App,且底层逻辑不透明。
既然是技术人,为什么要交这个智商税?
今天分享一个低成本、开源、纯硬核的方案:利用 Open Source 的 EasyEUICC 配合一张几十块钱的 通用 eUICC GSMA 空白卡,让我的 OnePlus 9RT 成功拥有了原生般的 eSIM 体验。
🛠 准备工作
1. 硬件设备
-
手机:OnePlus 9RT(理论上支持 OMAPI 的 Android 手机均可,Pixel/三星/小米/一加 等)。
-
载体:一张 eUICC GSMA 标准的空白卡。
- 避坑指南:不要买那种绑定死 App 的品牌卡,去某宝或者海鲜市场找通用的“测试白卡”或 DIY JCOP 卡,成本只有品牌卡的零头。
2. 软件环境
-
App:EasyEUICC (原 OpenEUICC)。
- 这是一个开源项目,允许 Android 系统直接通过 OMAPI 调用 SIM 卡底层,进行 Profile 的下载和管理。
- GitHub/F-Droid 可下载。
3. eSIM 资源
- 你需要一个已经申请好的 eSIM 二维码(Profile)。
💻 核心原理
传统的 eSIM 是固化在主板上的芯片。而我们使用的方案是将 eUICC (Embedded Universal Integrated Circuit Card) 的文件系统跑在一张标准的 SIM 卡单片机上。
Android 系统提供了 OMAPI (Open Mobile API) 接口,允许应用层与 SE (Secure Element) 进行通信。EasyEUICC 正是利用这个接口,充当了 LPA (Local Profile Assistant) 的角色,直接向卡片写入运营商下发的配置文件(Profile)。
🚀 实操步骤
第一步:物理连接
将空白 eUICC 卡插入手机的 SIM 1 卡槽。
注意:建议优先插卡槽 1,部分国产 ROM 对卡槽 2 的 OMAPI 权限支持可能不完整。
第二步:环境配置与权限
打开 EasyEUICC。如果你的卡片预置了 ARA-M (Access Rule Application-Master) 证书,App 应该能直接识别到卡片的 EID。
- 如果手机已 Root:可以直接授权 App 最高权限,这是最稳的。
- 如果未 Root:依赖卡片自带的证书规则,确保 EasyEUICC 在白名单内。
第三步:写入 eSIM (Download Profile)
- 点击右下角
+号。 - 选择 "Scan QR Code" 。
- 扫描你的 eSIM 运营商提供的二维码。
- App 会自动连接 SM-DP+ 服务器进行鉴权和下载。
第四步:启用与 APN 设置 (关键!)
下载完成后,你会看到 Profile 处于 Disabled 状态。
- 点击条目,选择 Enable。
- 稍等片刻,信号栏应该会出现信号。
- 避坑点:如果只有信号无法上网,请进入
设置 -> 移动网络 -> 接入点名称 (APN),手动添加运营商指定的 APN。
📊 方案对比:开源 DIY vs 商业成品卡
| 维度 | 商业成品卡 (5ber等) | 本文 DIY 方案 (EasyEUICC + 白卡) |
|---|---|---|
| 成本 | 约 ¥150 - ¥200 | ¥30 - ¥50 (甚至更低) |
| 软件 | 厂商闭源 App | 开源 (Open Source) |
| 隐私 | 需注册厂商账号 | 本地离线,无云端交互 |
| 可玩性 | 低,仅限写入 | 高,可折腾 ARA-M/JCOP |
💡 总结与排雷
通过这个方案,我的一加 9RT 现在可以随意切换 eSIM 号码,无论是出国上网还是接收海外短信,体验和原生 eSIM 手机没有任何区别。
几个常见报错的排雷:
- OMAPI Error:通常是 ROM 限制或卡槽问题,尝试互换卡槽或授予 Root 权限。
- Download Failed:eSIM 二维码通常是一次性的,如果之前扫废了,需要找运营商重置。
技术改变生活,拒绝溢价。 希望这篇教程能帮到同样喜欢折腾的 Android 开发者们。
## 🍎 进阶玩法:跨平台“移植”
这个方案最妙的地方在于,eUICC 的 Profile 是存储在卡片芯片(SE)里的,而非手机存储。
这意味着,一旦你利用 Android 手机(通过 EasyEUICC)将号码写入卡片并 Enable 之后,这张卡就变成了一张具有标准 SIM 卡功能的卡片。
你完全可以将它拔出来,插入不支持 eSIM 的设备中(例如国行 iPhone、老人机、或者 MiFi 设备)。 设备会把它当做一张普通的物理 SIM 卡识别并联网。这对于手持国行 iPhone 但有出国 eSIM 需求的用户来说,是一个极佳的“曲线救国”方案——安卓机仅作为“写卡器”存在。