安装后将 Javacard 小程序标记为隐式可选(默认小程序)

Posted

技术标签:

【中文标题】安装后将 Javacard 小程序标记为隐式可选(默认小程序)【英文标题】:Mark Javacard applet as implicit selectable (default applet) after install 【发布时间】:2014-04-08 10:44:14 【问题描述】:

我正在寻找一种方法来将一个小程序标记为隐式可选/“默认选择”小程序,因为它已经上传并安装在 Global Platform/JCOP 2.4.2 R1 系统上(适用于 NXP JCOP 中的初学者工具 Java 卡模拟)。

已在 JCOP shell 中安装了没有 -d 参数的小程序:

cm> install -i a000100201100001  -q C9#() a000100201100000 a000100201100001
 => 80 E6 [...]
 90 00

之后状态是

Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY

    Application:  SELECTABLE (--------) A000100201100001
    Load File  :      LOADED (--------) A0000000035350   (Security Domain)
     Module    :                        A000000003535041
    Load File  :      LOADED (--------) A000100201100000
     Module    :                        A000100201100001

想要的结果是

Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY

    Application:  SELECTABLE (-----D--) A000100201100001
    Load File  :      LOADED (--------) A0000000035350
    [...]

这是使用-d|--default 参数安装小程序时的输出。 我怀疑更改此属性是通过卡管理器小程序中的 STORE-DATA 命令以某种方式完成的,但无法找到准确、详细的命令(结构)——甚至找不到需要修改的标签。

【问题讨论】:

我已经解决了一个临时的解决方法,它拦截 jcop shell 输出,查找安装命令并将它们保存在单独的列表中,以便在按钮被点击。 Patchy,Buggy&Ugly 可以,但目前就足够了.... 我不明白我猜的问题。您可以简单地指示 JCOP 发出 -d。转到运行配置,然后包上传,双击小程序并更改权限。哈,拼写为“特权,-d 也是如此:P. 【参考方案1】:

这取决于卡 - 并非所有卡似乎都支持在安装后将小程序设为默认值。但是您可以使用具有--make-default <AID> 选项的Java 开源GlobalPlatform 工具:

java -jar gp.jar --make-default A000100201100001

IIRC JCOP 是实际支持它的卡之一。

【讨论】:

嗯?哇。我站得更正了。请注意,Applet 的编程方式应使文件系统(如果有)在设置为默认值(之后)时处于正确状态。

以上是关于安装后将 Javacard 小程序标记为隐式可选(默认小程序)的主要内容,如果未能解决你的问题,请参考以下文章

当用户从另一个应用程序(如文件管理器应用程序)单击 pdf 文件时,如何将我的 pdf 阅读器应用程序添加为隐式意图?

为隐式 Runge-Kutta 方法编写函数(四阶)

JavaCard,启用/禁用安装没有变砖的风险?

Visual Studio 2012 JavaScript Intellisense 参考组恢复为隐式 (Windows)

使 JavaCard 小程序可更新的正确方法是啥?

主机应用程序如何在 Netbeans 中的模拟智能卡上查询 javacard 小程序?