【问题标题】:Why all applets of a package are not installed? And why I can't delete them?为什么一个包的所有小程序都没有安装?为什么我不能删除它们?
【发布时间】:2015-02-07 18:15:24
【问题描述】:

这是我的 JavaCard 的内容:

GP::: gp -list
AID: A000000151000000 (|....Q...|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected,
 CVM (PIN) management

AID: A0000001515350 (|....QSP|)
     ExM LOADED: (none)
     A000000151535041 (|....QSPA|)

Eclipse 中,我将 3 个小程序添加到一个包中,如下所示:

  • 包装 AID = 01020304050607080900

    • App1 AID = 0102030405060708090000
    • App2 AID = 0102030405060708090001
    • App3 AID = 0102030405060708090002

第一步:

我将此包转换为 .cap 文件,并使用 JCManager 将其成功安装在我的卡上。

当我使用 gp 列出小程序时,它返回:

GP::: gp -list
AID: A000000151000000 (|....Q...|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected,
 CVM (PIN) management

AID: 0102030405060708090002 (|...........|)
     App SELECTABLE: (none)

AID: A0000001515350 (|....QSP|)
     ExM LOADED: (none)
     A000000151535041 (|....QSPA|)

AID: 01020304050607080900 (|..........|)
     ExM LOADED: (none)
     0102030405060708090002 (|...........|)
     0102030405060708090001 (|...........|)
     0102030405060708090000 (|...........|)

第二步:

我想删除 App1 和 App2 :

GP::: gp -delete 0102030405060708090000
Could not delete AID (not present on card): 0102030405060708090000

GP::: gp -delete 0102030405060708090000 -deletedeps
Could not delete AID (not present on card): 0102030405060708090000

GP::: gp -delete 0102030405060708090001
Could not delete AID (not present on card): 0102030405060708090001

GP::: gp -delete 0102030405060708090001 -deletedeps
Could not delete AID (not present on card): 0102030405060708090001

但对于 App3,我有不同的输出:

GP::: gp -delete 0102030405060708090002 -deletedeps
Could not delete AID: 0102030405060708090002
openkms.gp.GPException: Deletion failed SW: 6A88
        at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:924)
        at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:739)
        at openkms.gp.GPTool.main(GPTool.java:291)

注意我可以不带参数-deletedeps成功删除App3:

GP::: gp -delete 0102030405060708090002   

GP::: 

而当我想删除包时,我必须添加deletedeps

GP::: gp -delete 01020304050607080900
Could not delete AID: 01020304050607080900
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
        at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:924)
        at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:739)
        at openkms.gp.GPTool.main(GPTool.java:291)

GP::: gp -delete 01020304050607080900 -deletedeps

GP:::

Step1的问题:

Q1:为什么输出中没有APP1和APP2的AID作为像APP3这样的小程序? (换句话说,为什么我在 Package 的子集中看到 APP1 和 APP2 AID,但我可以作为 Applet 安装在卡上?)它们是否安装?

第二步的问题:

Q2:为什么我不能删除 App1 和 App2?

Q3:删除带参数-deletedeps的App3报错[6A88]是什么意思?为什么我会收到它?

Q4:什么时候必须使用deletedeps,什么时候不需要?

【问题讨论】:

    标签: smartcard javacard


    【解决方案1】:

    您已经安装了一个小程序

    AID: 0102030405060708090002 (|...........|) App SELECTABLE: (none)

    你有一个包含 3 个小程序的包已加载

    AID: 01020304050607080900 (|..........|) ExM LOADED: (none) 0102030405060708090002 (|...........|) 0102030405060708090001 (|...........|) 0102030405060708090000 (|...........|)

    您只能删除一个现有的小程序 0102030405060708090002,如果不先删除活动实例 0102030405060708090002 或使用-deletedeps,则无法删除包 01020304050607080900,这也会删除已安装的小程序。

    【讨论】:

    • 谢谢。但是我可以请你解释得更完整吗?如何安装另外两个小程序?我为 gp 中的同一个 .cap 文件尝试了-install 参数,但没有任何改变!它只安装了 APP3,就像 JCManager 一样。我还尝试了-instance 参数,AID 为 APP1/APP2,但没有任何改变!这个instance 参数是干什么用的?
    • gp -create <instance aid> -package <packageaid> -applet <appletaid>。您选择的实例 AID、包 AID 和小程序 AID 来自ExM-instance 是一个未使用的参数,现在已从代码中删除。
    • 为什么不像app3那样自动安装?为什么要安装 app3?是什么让 gp 更喜欢 App3 进行安装?最后一个问题:是否可以从包中删除小程序?比如我想删除App1,可以吗?
    • 您需要从 Git 更新 gp。并且:仅当软件包具有单个小程序时,自动安装才有效。否则需要使用 --create 。而且你不能从加载的包中删除一个小程序(可执行辅助)。
    • 谢谢。我会更新它。请问,Installing 和create instaces 是一样的吗?或者它是不同的,我们有 3 个步骤来使小程序可用。 (我的意思是上传-安装-创建实例)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多