为什么没有安装包的所有applet?为什么我不能删除它们?

时间:2015-02-07 08:58:57

标签: smartcard javacard

这是我的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个applet添加到单个包中,如下所示:

  • 打包AID = 01020304050607080900

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

步骤1:

我将此软件包转换为 .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 (|...........|)

步骤2:

我想删除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:::

第1步的问题:

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

第2步的问题:

Q2:为什么我无法删除App1和App2?

问题3:使用参数6A88删除App3时错误[-deletedeps]的含义是什么?为什么我收到它?

问题4:当我必须使用deletedeps时,我什么时候不用?

1 个答案:

答案 0 :(得分:1)

您安装了一个小程序

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

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

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

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