5

我正在开发小程序,我想使用 SIM/UICC 小程序更新 USIM 下的 FIle(例如 LOCI 文件:0x6f7e)。

第一个问题是:我可以使用 SIM JAVA API(使用 STK 小程序)在 ADF 下读取/更新 EF 吗?

根据我的阅读(3GPP TS 43.019),显而易见的答案是否定的,我错了我错过了可以让我使用 SIM 小程序读取/更新 ADF 下的文件的东西吗?

因此,我开始基于(ETSI TS 102 241)和垫脚石(此处链接)开发 UICC 小程序(第 6 版),只能通过使用 AID 获取 ADF 参考(getTheFileView)来读取/更新 ADF。但由于未知原因,我在更新命令中遇到了 UICC 异常(0003:SECURITY_STATUS_NOT_SATISFIED)(选择顺利)。Applet 安装时具有完全访问权限和管理员完全访问权限(使用 GEMATO 工具)。

你可以在这里找到我正在使用的代码(在小程序初始化中):

    AID adf_aid = new AID (uicc_aid, (short) 0x00, (byte) uicc_aid.length);
    ADFView = UICCSystem.getTheFileView( adf_aid,
             JCSystem.CLEAR_ON_RESET);

在这部分,我还使用 AID 作为缓冲区而不创建 AID 对象。

STK 菜单访问更新

    ADFView.select(FID_EF_LOCI);
        ADFView.updateBinary((short) 0, eraseLoci, (short) 0,
                (short) eraseLoci.length);

我尝试了几乎所有我想到的东西:

  • 在选择 AFD 之前选择 MF。

  • 直接选择7FFF

    我仍然有同样的异常,你能告诉我应该检查什么吗?我必须更改代码,使用另一个版本(Jar 文件)吗?使用特定的安装参数?是否有任何其他解决方案来更新 ADF 下的文件?

我检查了 AID 值,并将其放入 EF_DIR (2F00) 的第一条记录中。

提前致谢。

4

1 回答 1

1

你可能想试试 simalliance cat loader。它具有 FileView 和 AdminFileView 的权限修改。

于 2017-08-14T11:37:04.887 回答