V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qq135449773
V2EX  ›  分享发现

[eSIM 相关] 给想入坑的朋友再次提个醒, OpenEUICC 并不是所有手机都可以用

  •  
  •   qq135449773 · 327 天前 · 6209 次点击
    这是一个创建于 327 天前的主题,其中的信息可能已经有所发展或是发生改变。

    绝对不要理解成按官方 repo 里说的那样,只要是最新版本 AOSP 就能无脑运行。XDA 也有帖子。

    淘宝某店铺买的 euicc SIM ,手机刷了这个模块 https://github.com/AndroPlus-org/magisk-module-openeuicc 。 ROM 是 Lineage 21 ( Android 14 ),KernelSU 载入模块之后,能看到 app ,但是进去之后始终提示找不到 eSIM 卡。

    尝试了

    • 更换卡槽
    • 重新刷机( 13 、14 都试了)
    • 特地装了套 android toolchain 来自己编译最新版 apk

    都没有任何反应,看 logcat 也没看出来什么,于是只能作罢,年后回来只能考虑买读卡器了,虽然说倒也不贵,但是跟之前想的直接能在手机里管理 eSIM 的办法相比,心理落差还是有一点大。

    猜测可能还是和手机硬件或者驱动方面有关系,但因为不了解这方面体系,所以没法进一步深入分析。

    15 条回复    2024-09-13 01:23:10 +08:00
    softradio
        1
    softradio  
       327 天前
    淘宝某店铺买的 euicc SIM? 给个关键字,多少钱买的。
    如果是高通芯片的手机,需要对基带进行魔改, 因为基带里已经自己实现了一个 LPA
    Pixel 系列支持 esim,是把基带的这个 LPA 关掉了,然后用的 AP 里实现的 LPA
    按照 GSMA 的规范,LPA 实现在 AP 侧更正常。高通自己在 BP 里实现了一个,然后所有的 esim 写卡的操作,都是 BP 直接完成的,AP 只要告诉 BP,我要写卡就行了,所有认证,写卡,都是 BP 完成的。
    高通这个实现,可能是为了方便 5G 模块厂商。但手机上这样搞,就会跟 手机 OEM 厂家 和 谷歌的 LPA 冲突
    qq135449773
        2
    qq135449773  
    OP
       327 天前
    @softradio #1

    关于店: https://iecho.cc/2023/10/20/Convert-eSIM-to-physical-SIM/

    魔改基带这个事情请问自己可以做吗?有没有相关资料可以分享。
    softradio
        3
    softradio  
       327 天前   ❤️ 1
    @qq135449773 感谢提供购买信息。

    可以试试 直接修改基带 firmware 中的 AID.

    BP 启动后,会打开 esim 的 ISD-R, 按照 esim 标准,这个 ISD-R 是被独占的,如果有一个 client (比如基带 或者 读卡器) 打开后,其他 client 是不能同时打开的.

    ISD-R 的 aid 是 a0000005591010ffffffff8900000100.

    我在 手机的 /vendor/firmware/image 目录下找到 modem.b02 .. 这些文件, 搜索到 这个 AID, 将 这个 AID 修改一个字节,改成一个不存在的 AID. 从而让 BP 无法打开 ISD-R. 这样 Androiid LPA 就可以成功打开 ISD-R, app 上就能看到 esim 了。

    但是从某些资料中看到,modem 是存在校验的,如果魔改后, 没有信息后,说明校验失败,modem 的 firmware 被拒绝加载。 但是我修改后是有信号的,也许是我这部手机的厂家,关闭了校验。 总之,我修改基带 firmware 一个字节后,解决了这个问题。

    或者你找一下你这款手机的 ROM, 看厂家官方有没有支持 esim 的版本,在支持 esim 的版本中, 厂家可能会关闭基带中的 LPA, 只使用 Andoid 的 LPA. 这样的话,你提取对应 ROM 的 modem 固件,也许能 解决问题


    解决这个问题,还有其他思路。其中一个就是 某些 esim cos 的实现, 这个 ISD-R 是不独占的。也就是标准中 ISD-R
    不能被几个 client 同时打开。但是厂家自己的实现时 可以同时打开,比如 华为部分手表, 恒宝公司的可拆卸 eism,都是可以同时 被 多个 LPA 打开的。 这样即使 BP 的 LPA 打开了,Android 的 LPA 还是再次打开 ISD-D,来读写 esim 的。

    再一个思路就是, 就是直接使用高通的 LPA 方案, 让 BP 读写 esim 好了。这样的话, 你在上面链接的那篇文章中介绍的
    esim LPA, 就基本上都不能用了。
    softradio
        4
    softradio  
       327 天前   ❤️ 1
    刚才看了你上个回帖中 给的链接中 提到的 estk_me, 这个卡 就可以 设置 ISD-R 的访问模式:

    当前可供选择的 ISD-R 模式
    Shared:默认模式,ISD-R 域可被共享访问,所有访问请求均被允许。
    Exclusive:独占访问模式,必须等待当前操作主动让出才可接受其他访问请求。
    Disabled:禁用模式,在此状态下终端设备无法访问 ISD-R 域。

    这家 的卡,就高明多了, 可以解决高通基带的 LPA 兼容问题


    它还可以 自定义 ARA-M SHA-1, 直接用别人的 LPA 客户端,不用自己开发。 厂家算盘打得真好。
    qq135449773
        5
    qq135449773  
    OP
       327 天前
    @softradio #4

    十分感谢你的耐心回帖。

    estkme 确实是好东西,可惜现在因为合规问题好像不卖了😂。
    qq135449773
        6
    qq135449773  
    OP
       327 天前
    @softradio #3

    我有点好奇这个验证是属于 modem 子系统还是整个安卓的 avb ,按理说安卓解了 avb 的话应该校验就掉了。
    softradio
        7
    softradio  
       327 天前   ❤️ 1
    @qq135449773 可以看高通的文档: https://www.qualcomm.com/content/dam/qcomm-martech/dm-assets/documents/secure-boot-and-image-authentication-version_final.pdf AP 和 BP 侧都有安全启动,解了 bl 和 avb, 可以修改 AP 侧的文件。 但 BP 里也有安全启动,也会验证 modem firmware 的完整性。
    SenLief
        8
    SenLief  
       308 天前
    比较奇怪的是我的 realme gt5 pro 基带应该也是高通的,我测试使用 openeuicc 模块可以正常管理 esim 。
    Mythologyli
        9
    Mythologyli  
       308 天前
    @softradio 在 root 后的小米 9 上测试了一下,发现了一些怪现象

    我在 modem.b19 中找到了两处 A0000005591010FFFFFFFF8900000100 并都改成了 A1000005591010FFFFFFFF8900000100 ,更改后重启,此时手机无信号,wifi 和数据都不能用,猜测是 modem 校验未通过。openeuicc 也无法读卡。但神奇的是,把 modem.b19 再改回去,然后重启,就有信号了,并且 openeuicc 可以工作。然而,一旦在 openeuicc 里切卡,切卡可以成功,但之后 openeuicc 便无法读卡,重启也不行,除非重复一遍以上步骤
    softradio
        10
    softradio  
       308 天前
    @Mythologyli 不奇怪。 原始基带,是有可能来不及启动内部的 LPA 的。 只要基带的 LPA 没有 打开 ISD-R , Android 的 LPA (比如 OpenEuicc)是可以打开 ISD-R 的。 你把 modem 分区完整地刷为 官方原始版本,也可以看到同样的现象。

    至于 openeuicc 切卡成功后,无法再读, 那应该是 OpenEuicc 的 bug.


    @SenLief Google 的几个 Pixel 型号,也是高通的, 也可以用 OpenEuicc. 这主要是看 OEM 厂家是否启用了基带中的 LPA. 启用了就会有冲突。 早期版本的高通手机,因为 基带和 android 都没有 LPA, 反而能完美地用第 3 方 LPA
    SenLief
        11
    SenLief  
       308 天前
    @softradio 这个可能是 oem 厂商干的,我的 gt5pro 是今年新出的机子,8gen3 的处理器,我也有 pixel5 ,不过可以原生管理,我就没用 openeuicc 了。
    whqf
        12
    whqf  
       138 天前 via Android   ❤️ 2
    这种 modem 带 lpa 而不支持的,只要给 esim 卡发条命令就能短时间内支持了,用 openeuicc 之前发一条,也挺完美的
    qq135449773
        13
    qq135449773  
    OP
       137 天前
    @whqf #12 愿闻其详?
    yuewuliuying
        14
    yuewuliuying  
       108 天前
    @whqf 大佬带带?我被这个问题困扰太久啦
    yuewuliuying
        15
    yuewuliuying  
       106 天前
    @qq135449773 尿泡还是不知道怎么解决,但是我找到了上面大佬提出的帖子 issues
    https://gitea.angry.im/PeterCxy/OpenEUICC/issues/43
    太坏了,我对这种真的一窍不通,不然我也去测试测试了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   951 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:09 · PVG 06:09 · LAX 14:09 · JFK 17:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.