Почему я не могу удалить неиспользуемые пакеты с моей карты JavaCard?
У меня есть Java-карта Gemalto Top DL v2. Когда я list
содержание, на карту загружено много пакетов:
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -list
AID: A000000018434D00 (|.....CM.|)
ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected, CVM (PIN) management
AID: A0000000620001 (|....b..|)
ExM LOADED: (none)
AID: A0000000620002 (|....b..|)
ExM LOADED: (none)
AID: A0000000620003 (|....b..|)
ExM LOADED: (none)
AID: A0000000620101 (|....b..|)
ExM LOADED: (none)
AID: A000000062010101 (|....b...|)
ExM LOADED: (none)
AID: A0000000620102 (|....b..|)
ExM LOADED: (none)
AID: A0000000620201 (|....b..|)
ExM LOADED: (none)
AID: A0000000030000 (|.......|)
ExM LOADED: (none)
AID: A000000018100201 (|........|)
ExM LOADED: (none)
AID: A000000018100101 (|........|)
ExM LOADED: (none)
A000000018534441 (|.....SDA|)
AID: A00000015100 (|....Q.|)
ExM LOADED: (none)
Теперь я хочу удалить неиспользуемые пакеты:
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000620001 -deletedeps
Could not delete AID: A0000000620001
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000620002 -deletedeps
Could not delete AID: A0000000620002
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000620003 -deletedeps
Could not delete AID: A0000000620003
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000620101 -deletedeps
Could not delete AID: A0000000620101
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A000000062010101 -deletedeps
Could not delete AID: A000000062010101
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000620102 -deletedeps
Could not delete AID: A0000000620102
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000620201 -deletedeps
Could not delete AID: A0000000620201
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A0000000030000 -deletedeps
Could not delete AID: A0000000030000
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A000000018100201 -deletedeps
Could not delete AID: A000000018100201
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A000000018100101 -deletedeps
Could not delete AID: A000000018100101
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -delete A00000015100 -deletedeps
Could not delete AID: A00000015100
TIP: Maybe try with --deletedeps
openkms.gp.GPException: Deletion failed SW: 6985
at openkms.gp.GlobalPlatform.check(GlobalPlatform.java:1039)
at openkms.gp.GlobalPlatform.deleteAID(GlobalPlatform.java:814)
at openkms.gp.GPTool.main(GPTool.java:367)
Вопрос в том, почему я не могу удалить их и освободить память моей карты?
1 ответ
Ответ
Как вы уверены, что эти пакеты не используются? Апплет мог быть разработан для использования отдельных библиотек и / или сервисов. Эти библиотеки / службы имеют свой собственный AID в GP, но сначала вам нужно удалить все экземпляры апплета и модули апплета - в указанном порядке - прежде чем вы сможете удалить их.
Многие карты содержат предустановленное программное обеспечение в ПЗУ. Пространство в маске ПЗУ не может использоваться повторно ни для чего другого. Удаление этих модулей не освободит много ресурсов. Если удаление удастся, вы в основном удалили AID из реестра. Это может быть полезно, если вы хотите загрузить новую версию той же библиотеки, но в противном случае это не будет иметь большого значения.
AID и RID объяснили
AID состоят из двух частей: 5-байтовый RID и расширение переменного размера - называемое PIX - для RID, идентифицирующего объект. Этот объект находится только в приложении DF, но для модулей Java Card также идентифицируется AID.
Теперь я приобрел список МПОГ так:
A000000018434D00
домен безопасности от Gemplus (сейчас Gemalto);A0000000620001
,A0000000620002
,A0000000620003
,A0000000620101
,A000000062010101
,A0000000620102
,A0000000620201
все модули Sun (теперь Oracle); они содержат расширения базовой среды выполнения Java Card;A0000000030000
является карт-менеджером по старому VISA RID;A000000018100201
,A000000018100101
являются модулями расширения или апплетами от Gemalto;A00000015100
является карт-менеджером по AID Глобальной платформы;
A0000000030000
AID постепенно сокращается - VISA была основателем Open Platform, теперь Global Platform. GP теперь должен использовать свой RID.
Заметки:
- Библиотеки - это просто код и константы, сервисы содержат состояние, которое можно использовать через механизмы совместного использования объектов;
- Вид очевиден: для конкретной карты вы можете обратиться к поставщику, чтобы узнать, как она настроена.