前两天我发一篇帖子 较低价格的 eSIM.me 平替 中提到可以用 60/70 元的价格购买到 eSIM.me 低价平替。但是,平替版本并没有 App 支持,需要用 PC/SC 读卡器管理或用 OpenEUICC 来管理 eSIM Profiles 。
其中 PC/SC 需要额外的硬件支持,使用上也不方便。OpenEUICC 需要 root 后才能使用,而且部分国产手机阉割相关 API ,导致不能正常使用。那么有没有办法自己实现一份 esim.me 应用呢,下面我将会根据现有源码提供实现思路(为啥是思路,因为我不会写 Android )。
通过阅读 实现 eSIM 卡 我们可以知道 Android 提供了 EuiccManager
一系列 API 来实现管理 eSIM Profiles ,但是此 API 需要系统权限才能调用,也就是自行实现 LPA App 在没有 root 权限的情况下几乎不可能了,而且很多国产 OS 是阉割了相关 API 的。经过阅读 LPADesktop的源码和查阅相关资料我们可以得知,管理 eSIM Profiles 是通过往卡片发送 APDU
命令实现切换、下载逻辑。在 Android 9 以后的设备有一个 Open Mobile API 可以实现直接和 UICC(eUICC) 通讯、发送 APDU 命令来实现不通过 Android API 管理 eSIM Profiles.
得益于开源项目的发展,和 eUICC 通讯已经有现成的库可以用 LPAd_SM-DPPlus_Connector,在开发自己的 Android 应用时我们只需要自己 OMAPI Channel 自行实现 ApduChannelImpl
即可完成和 eUICC 通讯,后续自行实现管理界面即可。
解包了 eSIM.me 的 APP , 他们也是用的 OMAPI 实现,所以才无需 root 权限和 API 阉割
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.