eSIM 转 SIM 实体卡
2023-11-16 14:28:44

1. 背景

eSIM (embedded-SIM, eUICC) 是一种嵌入式可编程的 SIM 卡,集成在设备主板或模块上,可以通过 LPA (Local Profile Assistants) 进行管理。eSIM 与 SoftSIM 不是同一个东西,但都是虚拟 SIM 卡的实现,两者都可以通过 OTA (Over-The-Air) 进行更新。

几天前 Apple 发布了国行 iPad(第 10 代)无线局域网 + 蜂窝网络机型(A3162),支持 eSIM,但是反向锁区,只能在境内激活中国大陆运营商(中国联通)的 eSIM Profile,在境外需要开启定位才能激活境外运营商的 eSIM Profile。借此机会也了解到一个新东西:eSIM 转物理 USIM。

早期这项技术被用来提取智能手表、廉价 4G Wi-Fi dongle 的内置物联网卡的 eUICC 芯片,将其改变为 USIM 的形态,安装到 CPE 或者手机里。这似乎是中国大陆运营商取消手表 eSIM 业务的主要原因。

对于另一场景,我们可以使用 eUICC 测试白卡写入境外运营商的 eSIM Profile,可以在境内使用 QR Code 写入境外 eSIM Profile,使用境外运营商的语音、短信和数据业务。

支持 eSIM 的运营商列表:查找提供 eSIM 服务的无线运营商和全球服务提供商 - Apple

香港运营商 3 HKtruphoneCSL1010 均提供 QR Code 供用户导入 eSIM Profile。

2. 获取 eUICC 卡片

5ber(¥180) 和 eSIM.me(€70)都提供 eSIM 实体卡片,用户可以使用它们的 App 将 eSIM Profile 下载至实体卡中,然后插入手机、CPE 等设备使用。但这两家均软件限制了 Profile 的写入次数,并以此收费,因此有必要获取一张“自主可控”的 eUICC 卡。

淘宝店“速易卡科技提供的 eUICC 成品卡片价格 ¥80,仅为 5ber 的一半,购买暗号“安卓esim”。

@Aodzip 发起的 eTSK.me 与之类似,但通过 USIM 卡的 Applet 实现在 iOS 内自助切换、重命名、删除 Profile。当前产品处于公测阶段:¥140,包含 卡片本体 + Full License激活码 + 一次固件更新服务。购买链接:海鲜市场

注意:速易卡科技销售的 eUICC 白卡不能在国行 iPhone 中使用。国行 iPhone 可能从系统软件层面做了限制。

注意:5ber、eSIM.me 和速易卡科技等 eUICC 卡片均不能写入中国大陆运营商的 eSIM Profile原因如下

消费 eSIM 遵循的 SGP 2.2 标准,证书是 GSMA Root 颁发的。
国内的 eSIM 部分遵循 SGP 2.2 证书是自签的。

5ber 那个是消费证书肯定可以写消费 eSIM。(国内运营商除外, 美国如果是 EID/IMEI 白名单也不能写)

– Telegram 用户 @damonto

注意:不要购买 M2M eUICC。M2M eUICC 与 Consumer eUICC(消费者 eSIM)都属于标准的 GSMA eSIM 实现,但 M2M eUICC 不能写入 Consumer eSIM Profile,只能通过原厂的 OTA 平台进行云管理,仅用于 IoT 场景

3. 获取支持 eSIM 的 WWAN 模块或 PC/SC 读卡器

根据 Telegram 用户 @v0nNeumann 的信息,Quectel EM05-CE 4G 模块搭配 eUICC 可以使用 Windows 10/11 原生的 LPA 进行管理。该模块闲鱼二手 ThinkPad 拆机价格约为 ¥50。

对于使用 7 代 Intel CPU 以上且主板集成了 USIM 插槽的 ThinkPad 用户,也可以购买 Fibocom L850-GL (联想 FRU 01AX792) (参考 1, 2, 3, Datasheet) 和 L860-GL (联想 FRU 01AX796) (参考 1, 2, 3, Datasheet)。这两款模块均支持 eSIM,只是没集成 eUICC 而已。L850-GL 闲鱼二手拆机价格约为 ¥45(卖家:名字只是个代号),L860-GL 闲鱼二手拆机价格约为 ¥160。

注意:

  1. ThinkPad BIOS 包含网卡白名单,只能使用带有联想 FRU 的网卡,否则无法启动系统。
  2. ThinkPad 用户需要从联想官网下载对应的 WWAN 模块驱动。
  3. 出厂未预置 WWAN 模块的机器可能同时也没有预置 WWAN 红蓝天线。闲鱼或淘宝购买模块时一般会附赠天线,如果没有,可以自行购买。天线最好安装在屏幕两侧,可以付费找联想服务站安装,不建议自己动手。

读卡器:淘宝店“速易卡科技”PC/SC 读卡器、eUICC 转接板、植锡等工具。也可以自行淘宝和闲鱼购买。

4. 获取 eSIM Profile

  • 对比全球 eSIM 套餐资费:eSIMDB

  • 免费试用 eSIM:eSIM QR

1
LPA:1$rsp-eu.redteamobile.com$451F9802E6854E3E85FB985235EDB4E5

这是一个 eSIM Activation Code(激活码),格式定义如下:

1
LPA:1${SM-DP+_ADDRESS}${MATCHING_ID}

SM-DP+_ADDRESS 即 Subscription Manager Data Preparation Address,是运营商侧的 eSIM 配置服务器地址。MATCHING_ID 则用于匹配对应的 eSIM Profile,可以理解为传递至 SM-DP+ 的 Bearer Token。为了方便用户,运营商一般会将 eSIM Activation Code 转换为 QR Code。终端扫描 QR Code 后,会自动将字符串写入到 eUICC 中。

如图是 Remote eSIM Provisioning (RSP) 的过程图,来源自 Android 文档

MATCHING_ID 字段不是必须的。例如 T-Mobile 绑定 eSIM 卡的 EID,所以在下载时无需提供 MATCHING_ID

部分运营商例如英国 Giffgaff 不直接提供 QR Code 和 eSIM Activation Code,只能使用运营商自有的 App 写入到手机中,不能加载至外部 eUICC。但是根据这个帖子,Giffgaff 用户可以在手机上进行 MITM 抓包,查看 URL 为 https://publicapi.giffgaff.com/gateway/graphql 的请求 body,其中的 lpaString 字段即 Giffgaff 的 eSIM Activation Code。

此外,Telegram 用户 @kkkwatt 提供了一份 Frida 的脚本:点 Giffgaff App 的“安装 eSIM 按钮”时 Frida 会在终端输出激活码。

注意:几乎所有美国运营商使用了 EID 白名单,无法直接写入 eSIM Profile 至外部 eUICC。你需要联系客服,提供自己的 IMEI 和 EID,让他们绑定。

5. 写入 eSIM Profile 至 eUICC

对于 Android 设备,需要 root 后搭配相关项目使用

PC/SC 读卡器需要搭配 Truphone/LPAdesktopsparkcyf/LPAdesktop(支持 ARM 设备)使用,参考这篇文章:通过 PC/SC 智能卡读卡器配置 esim.me 的 SIM 卡 - Sparktour’s。亲测速易卡科技的读卡器可以在 macOS Sonoma 和 Windows 10 下免驱使用。

执行如下命令运行 LPAdesktop:

1
java -jar LPA-1.0.0.0-jar-with-dependencies.jar

如果你的 macOS Sonoma 无法识别第三方读卡器,可以尝试安装 ACSCCID 驱动。

出厂预置了 SIM 插槽且已经安装了对应 WWAN 模块(例如 L850-GL, L860-GL 等)的 ThinkPad/HP/Dell 笔记本用户,可以使用 Windows 10/11 系统自带的 LPA 管理 eSIM:Use an eSIM to get a cellular data connection on your Windows PC

淘宝店“网特讯”、“恒成和”和“物联无线通信模组”销售 M.2 (NGFF) 转 USB 的 WWAN 转接卡,集成了 SIM 卡插槽。可以搭配 eUICC 卡和支持 eSIM 的 Fibocom(广和通)或 Quectel(移远)的 4G/5G WWAN 模块使用。部分转接卡存在兼容性问题

Q&A

国行 Android 能否支持 eSIM?

  • 华为和荣耀可以识别并使用 eSIM,但由于 ROM 阉割了 eUICCManager,无法使用内置 LPA 管理 eSIM 配置。
  • 如果你的 ROM 没有阉割掉 eUICCManager,可能可以使用 Android 原生的 LPA 管理 eSIM。已知国行小米 13 刷入 MIUI 国际版,可以使用系统内置 LPA 管理 5ber 的 eUICC(ST33 白卡同理)。
  • 如果你 root 了,可以尝试上文提到的 OpenEUICC 项目。

eSIM.me 和 5ber 如何实现在没有 eUICCManager 的 Android 设备上管理 eSIM?

根据这篇博客这篇博客,eSIM.me 的 App(即 LPA)使用 Open Mobile API (OMAPI) 与 UICC 进行通信,而非标准的 eUICC API。5ber 应该也是如此。这也正是它们产品的使用场景:在不支持原生 eSIM 管理(LPA)的设备上使用 eSIM。

扩展阅读

技术演进

标准与规范

eSTK.me

WWAN 开发板

动手魔改 eSIM

参考

Prev
2023-11-16 14:28:44