Command not allowed - 安装小程序时不满足使用条件
Posted
技术标签:
【中文标题】Command not allowed - 安装小程序时不满足使用条件【英文标题】:Command not allowed - Conditions of use not satisfied when installing applet 【发布时间】:2016-04-07 14:14:27 【问题描述】:我正在尝试在 Java 卡上安装一个简单的小程序,但出现错误:
load return 0x80206985
代码似乎在 Eclipse 的模拟器上运行,但是当我想转换它并将 CAP 文件发送到卡时,我得到了上述错误。我使用 GPShell 来安装小程序。下面列出了安装程序脚本
mode_201
gemXpressoPro
enable_trace
enable_timer
establish_context
card_connect
select -AID A000000018434D00
open_sc -security 3 -keyind 0 -keyver 0 -key 47454d5850524553534f53414d504c45
install -file sid.cap
card_disconnect
release_context
Java Card 的 SDK 版本是 2.2.2,我使用 Eclipse-JCDE0.2 进行转换。当我尝试安装任何其他小程序时,我遇到了同样的错误。我还尝试将 Java Card SDK 降级到 2.1.1 版,但这并没有解决我的问题。我在下面附上了问题的屏幕截图。
【问题讨论】:
您确定您的智能卡是金雅拓卡吗?此错误意味着您的身份验证密钥不正确(您的卡不是金雅拓卡,或者身份验证密钥已被更改)或您的卡被锁定(通过 10 次错误的身份验证尝试)。反正GPSShell是个老工具了,建议你改用GlobalPlatformPro。 是的,我确定。实际上我成功在卡上安装了一个helloworld.cap。看来我生成.cap的方式似乎是错误的 啊,也许吧!我对状态字的理解是错误的。0x69 82
用于错误的身份验证。你的是0x6985
。你确定你的卡支持CAP
文件的版本吗?
卡上可能安装了具有相同 AID 的另一个包/实例。您可以使用get_status 命令进行检查。
您是否安装为默认选择并且卡上已经有默认选择的小程序?
【参考方案1】:
我设法通过从 Java Card 2.2.2 降级到 Java Card 2.2.1 来解决这个问题。看来是Java Card SDK和我使用的GpShell版本的兼容性问题。
【讨论】:
【参考方案2】:您在上传小程序代码(LOAD 命令)时收到的错误表明卡上验证过程在您的小程序代码库中发现了一些它不接受的内容(例如,使用了不存在的框架类,使用不存在的方法、无效指令等)
这也符合您从 Java Card SDK 2.2.2 降级到 Java Card SDK 2.2.1 的经验。顺便提一句。 GPSShell 不关心 Java Card 版本,它是产生该错误的卡。
【讨论】:
以上是关于Command not allowed - 安装小程序时不满足使用条件的主要内容,如果未能解决你的问题,请参考以下文章