我有一个javacard,它安装了2个applet。现在我想从两者中选择一个。目前我的工作方式是,我提供applet的cap文件,我从中得到它的AID。但我发现这种方法并不令人满意。所以
答案 0 :(得分:6)
对于您提出的问题,
答案 1 :(得分:4)
安迪的答案很好,但我觉得它错过了问题的一个重要部分:
Javacard通过Java代码获取已安装applet 的applet AID
如果问题涉及从一个Java卡小程序本身的代码中找到installedf小程序,则可能适用此答案:
首先,可以通过JCSystem.getAID()
获取applet本身的AID
其次,无法从已安装的小程序中“检测”其他小程序
虽然如果你知道其他applet的AID,你可以使用JCSystem
和GPSystem
获取有关它的有用信息。
因此,除了JavaCard代码之外,卡管理器还能够列出已安装的小程序及其所有权限等。您可以使用您选择的工具。如果您正在使用JCOP,我推荐JCOP Shell。如果你使用免费软件,我推荐来自Martin Paljak的Global Platform Pro。
除了选择AID和默认选择之外,没有直接的方法来选择applet。通过使用JavaCard中的SharedObjectInterface机制,可以通过间接方式将控制流更改为不同的applet。