用SEEK在android中使用java卡而不是SIM卡

MFA*_*MFA 5 javacard sim-card

我用SEEK为Galaxy S3修补了android,经过一番努力,我现在能够将APDU发送到SIM卡并得到适当的响应.

我想将自己的applet放在SIM卡中,但由于我们无法获得访问权限,因此我开始怀疑是否有可能发出一张像SIM卡一样工作的Java卡.我只需要一张手机无法与SIM卡区分的Java卡,不需要网络覆盖,我知道创建一个可以与运营商合作并提供网络覆盖的SIM几乎是不可能的.

所有这一切的原因是我需要发送APDU并使用我的applet,但如果我在GS3中插入一张Java卡而不是SIM卡,它根本无法访问.

所以我的问题是:是否可以发行一张Java卡,使其看起来像手机上的SIM卡(而不是运营商)?

或者是否有可能更改android以便在其中有Java卡时提供所需的访问权限,即RIL像往常一样工作?


编辑

好的,我想我会尝试发布一个具有以下属性的Java Card:

首先,它将有一个自动选择的applet(默认applet),从现在开始将调用fake-UICC.
其次,在假UICC中,我们将模拟UICC的文件系统(根据http://www.in2eps.com/fo-uicc/tk-fo-uicc-mf.html).
第三,由于不同的类用于SIM APDU(0xA0)所以从RIL发送的所有APDU将被JCRE定向到伪UICC,因为普通Java卡无法识别class +指令.例如0xA0A4,选择SIM,但是0x00A4选择Java Card命令.
在最后一步中,我们将尝试发送真实SIM将发送到每个APDU的完全相同的响应.

也许它不起作用,但我认为值得一试.

Abr*_*ham 1

好吧,实际上我不确定这个解决方案是否有效,正如亲爱的@Vojta 在他的答案下的评论中提到的那样,我想阻止人们进行以下尝试。这将是困难的、耗时的,而且可能不会有任何有用的结果。他在这个领域比我懂得多得多。

不管怎样,正如你所希望的,我发布了我的建议:

SIM/USIM卡系统文件中的每个文件都链接有一个十六进制数字作为其地址(AID)。这些 AID 在 GSM 和 ETSI 标准(例如 GSM 11.11)中定义。您可以编写一些 Javacard 小程序来模拟该系统文件。

由于 SIM/USIM 卡的 AID 比 JavaCard AID 短,因此您可能需要选择支持部分 AID 选择的 Java 卡,并使用此功能将传入命令引用到其关联的小程序。

我认为您也可以在单个小程序中模拟所有系统文件,然后使该小程序默认选择小程序。

如果您使用此解决方案取得了成功,请通知我们。:)