一、前言
eSIM 早就不是一门很新的技术了,当林檎公司在大洋彼岸「优雅」地消灭了实体卡槽的同时,在电子产品的缅北世界中心华强北,维修工人们却在通过各种科技与狠活,从这些漂洋过海而来的手机身上,挖出 SIM 卡槽来——这多少是有些魔幻现实主义了。
拜某些不可言说的事物所赐,我们现在有了「外置 eUICC」这种曲线救国的解决方案,或者说是「外置 eSIM 卡」?这看起来的确很滑稽,但至少让我们用上了 eSIM 的绝大多数功能(尽管它并不 Embedded)。
观前提醒,禁止将本文内容用作非法用途,这番折腾的起因,也只不过是需要一张可以用来接短信验证码的电话卡,用于注册某些本地电话号码无法注册的社交媒体平台而已。
二、购买攻略
9eSIM 购买渠道
官方渠道
目前仅以下为官方购买渠道,仅在官方购买的用户可享受官方售后服务,请仔细甄别。
9eSIM 天猫旗舰店「9esim旗舰店」
9eSIM 淘宝店铺「9esim」
第三方渠道
以下第三方渠道提供比较优惠的价格,但可能不提供售后,请自行斟酌。
关于「9eSIM V0 同款」白卡
首先介绍一下东信和平这家公司(下文简称为「ECP」,即该公司英文名称「Eastcompeace」的缩写),这是一家总部位于广东珠海,专业进行智能卡相关技术研发的公司,5ber、PlanB、9eSIM 等产品均全部或部分采用了其芯片方案。
部分其他经销商从 ECP 处获取到了写有 9eSIM V0 固件的白卡,以「9eSIM V0 同款」的名称进行销售,该卡片由于出自同一家供应商,采取同样的固件,仅从物质的角度,可以视作和 9eSIM V0 完全相同的,但并不是 9eSIM。
此类卡片多采用 V0 早期批次的固件,因此存在着相同的 Bug,详情见下文常见问题部分。
对于此类卡片,如果售价在 ¥50 以内,可以考虑购入,超过了不如直接去买 V0。
三、写卡及切卡
常用软件
Android 平台
EasyEUICC M:由社区用户 Ultra 编译,内置了四枚 ARA-M 密钥,SHA-1 值如下:
d1c0f48b370e74d4ea4770ed4c3cd70a3198d31f (来源:9eSIM 官方)
65d0571854afec519a90f92d7c5d8cf8148da373 (来源:Sakura SIM 官方)
c47350c7ba682b34a3e584a0d58463ea42b1ad73 (来源:ShiinaSekiu 社区)
8f23ee7868bdb19f94ca3ee295e240d71efa33dc (来源:蚊子玩卡 社区)
NekokoLPA:由 ieb 开发,M 版本内置了五枚 ARA-M 密钥,其中四枚与 EasyEUICC M 相同,多出的一枚在该软件源代码中,密钥文件名为「nekokobeef」,推测来自于 Nekoko LPA 官方。SHA-1 值如下:
114514191909BEEF280CA91DE875403B03999682
iOS 平台
NekokoLPA on the App Store:软件使用同 Android 版本,但由于 iOS 并不提供 OMAPI 的类似接口,该软件并不能直接读取插入手机中的卡片,而是需要通过 OTG 功能外接读卡器进行操作。
PC 平台
MiniLPA:使用 Kotlin 编写的具有现代化界面的 LPA 软件,支持 Windows、Linux、Mac 平台。
管理方式
通过 OMAPI 使用 LPA 软件管理
适用平台:Android
这是目前最常用的方式,不需要 Root 权限,即可完成 eUICC 的管理操作。需要使用 EasyEUICC 或 NekokoLPA 软件,均推荐使用 M 版本。
OMAPI 自 Android 9.0 版本开始提供,因此需要手机系统至少为该版本。
使用 OMAPI 对 eUICC 进行操作,需要 eUICC 固件与 LPA 软件中,内置相匹配的 ARA-M 密钥,才能够获得操作权限。
目前官方渠道、大部分第三方渠道贩售的 9eSIM V0(以及 ECP 「同款」白卡)内置的 ARA-M 密钥共有两枚,SHA-1 值如下:
d1c0f48b370e74d4ea4770ed4c3cd70a3198d31f (来源:9eSIM 官方)
c47350c7ba682b34a3e584a0d58463ea42b1ad73 (来源:ShiinaSekiu 社区)
根据商品详情页描述,蚊子玩卡渠道购买的 9eSIM V0 内置的密钥略有不同,具体如下:
d1c0f48b370e74d4ea4770ed4c3cd70a3198d31f (来源:9eSIM 官方)
8f23ee7868bdb19f94ca3ee295e240d71efa33dc (来源:蚊子玩卡 社区)
通过读卡器使用 LPA 软件管理
适用平台:Android、iOS、PC
该方法通过外接读卡器,对 eUICC 进行管理操作,不需要 OMAPI 支持,只需要手机支持 USB-OTG 功能。
对于 Android 平台,与使用 OMAPI 的操作方法基本一致。对于 iOS 平台也是,但仅可以使用 Nekoko LPA 的 iOS 版本。对于 PC 平台,请参考 MiniLPA 官方 Repo。
通过 OpenEUICC 管理
适用平台:Android
该方法属于极客功能,需要使用 Root 权限,并对系统进行更改,若有需要建议前往 OpenEUICC官方 Repo 自行研究。
通过系统原生 eSIM 管理组件管理
适用平台:Android、Windows
对于 Android 平台,该方法同上,需要手机具有原生 eSIM 支持,或对应的外行版具有原生支持,需要使用 Root 权限及 LSPosed 模块,如有需要自行研究。
对于 Windows 平台,需要电脑配备了支持 eSIM 功能的网络模块,如有需要自行研究。
通过 STK 管理
适用平台:Android、iOS
通过系统设置中的「SIM卡应用程序」或「USIM卡应用程序」等入口,可使用 STK 菜单,切换当前的 eSIM 配置文件。
注意:该功能仅适用于切换,无法用于写入。
读卡器
关于读卡器本身,在 PC 平台上使用的情况下,普通的营业执照读卡器就足够了。如果需要在手机平台上使用,考虑到便捷程度,以及可能存在的兼容性问题,建议购买三体电子的麻将读卡器。
四、常见问题
9eSIM EUICC Products version:这里记录了 9eSIM 不同版本、批次对应的固件版本,可用作下文的参考。
1、STK 通道占用
问题表现
当使用 Android 设备打开 STK 菜单后,使用 EasyEUICC 或 NekokoLPA 等软件,通过 OMAPI 操作 eSIM 卡时,会出现「Card Unavailable」(卡片不可用)等错误提示。
影响范围
该问题仅存在于最早批次的 9eSIM V0 中,后续使用「new cos」版本固件的 9eSIM 已修复该问题。
需要注意,ECP 同款白卡由于大多使用该版本的固件,通常存在相同问题。
解决方法
以下方法二选一即可:
重启手机
拔掉 SIM 卡,并重新装回
2、禁用卡槽导致无法读取 SIM 卡
问题表现
在 Android 系统设置里关闭 SIM 卡后,会导致该 eSIM,连带 eUICC 本身都无法被系统读取,只能通过使用读卡器切换至其他配置文件,才可以恢复正常。但如果再次切换回之前禁用时使用的配置文件,又会陷入同样的状态。
该问题由 Android 操作系统本身的 Bug 导致,当模式为「eUICC」的卡槽在系统设置中被禁用时,系统会错误地认为该卡片出现了故障,从而将此时 eSIM 配置文件的 ICCID 拉黑,即拒绝启动该 SIM 卡。
影响范围
绝大部分搭载 Android 操作系统(版本 11 以上)的手机 + 外置 eUICC 的卡片。
特殊情况:笔者目前同时拥有两种版本的卡片,经测试为未能复现该问题,目前确定自己的两款手机(品牌分别为Realme、小米)不受此 BUG 影响。但仍有其他用户反馈遭遇此问题,品牌包括但不限于小米、一加、Google等。详情可参考[GUIDE][ROOT][FIX]未检测到 eSIM.me 卡时重新启用已禁用的 SIM 卡。(可能适用于所有 SIM 卡)|XDA 论坛。
出于保险考虑,不建议任何使用 Android 操作系统的 eUICC 用户禁用该卡槽!
解决方法
通过 ADB 命令清除 com.android.providers.telephony
的应用数据。
adb shell pm clear com.android.providers.telephony
3、存储空间不连续
问题表现
LPA 软件中显示 eUICC 仍然具有足够的剩余空间,但无法写入新的 eSIM 配置文件。
该问题的原因是 eUICC 芯片仅支持顺序读写配置文件。假设在一张存储空间为 128 KB 的 eUICC 芯片中,先后写入了 Profile A(32 KB)、Profile B(16 KB)、Profile C(64 KB),此时存储空间剩余 16 KB。
当需要再写入 Profile D(32 KB)时,如果删除 Profile B(16 KB),尽管剩余可用空间为 32 KB,但仍会提示可用空间不足。
原因是这 32 KB 的剩余空间被 Profile C 截断为两个 16 KB 的部分,此时如果需要写入新的 eSIM,仅可以写入小于 16 KB的配置文件。
初始空eUICC芯片(128 KB):
[________________________________] (全空,剩余 128 KB)
写入 Profile A(32 KB):
[AAAAAAAA________________________] (A=32 KB, 剩余 96 KB)
写入 Profile B(16 KB):
[AAAAAAAABBBB____________________] (A=32 KB, B=16 KB, 剩余 80 KB)
写入 Profile C(64 KB):
[AAAAAAAABBBBCCCCCCCCCCCCCCCC____] (A=32 KB, B=16 KB, C=64 KB, 剩余 16 KB)
删除 Profile B(16 KB)后:
[AAAAAAAA____CCCCCCCCCCCCCCCC____] (A=32 KB, C=64 KB, 剩余 32 KB)
↑ 前半段 16 KB 碎片 ↑ 后半段 16 KB 碎片
以上每个字符代表 4 KB 存储空间。
尝试写入 Profile D(32 KB):
需求:连续 8 字符(32 KB)
实际:最大可用块 = 4 字符(16 KB,被 C 隔断)
结果:写入失败(空间不足)!
影响范围
根据测试,9eSIM V0(ECP 方案)、9eSIM V3(Kigen 方案)、iPhone 拆机件(G+D 方案)均受此问题影响,由于 ESTK 目前同样采取 G+D 方案,推测同样会受到影响。
解决方法
暂无解决方法。优先从队列末尾删除配置文件,避免频繁写入和删除配置文件,可以缓解该问题的影响。
当然,没有什么是更大的空间解决不了的,购买更大容量的 eSIM 卡可有效缓解。(得加钱?)
4、eSIM 配置文件体积膨胀
问题表现
对于相同的 eSIM 配置文件,下载到采用 ECP 芯片方案的 eUICC (如 9eSIM V0)时,占用的存储空间通常会大于采用其他方案的eUICC(如 9eSIM V3),极端情况下甚至会占用两倍的空间大小。
影响范围
该问题成因暂不明确,目前推测与 EID 数字的大小有关(ECP 的 EID 前六位均为「890860」,Kigen 方案则为「890440」),具体可参考 NekokoLPA's Profile Stats 的统计数据,可见配置文件大小与 EID 数字大小存在正相关。
然而,此处的 86 和 44 是国家代码,这是否意味着所有生产地为中国的 eUICC 芯片全部躺枪了。
解决方法
买进口的,比如 V3。(还是得加钱!)。