La norme ISO 7816-4 APDU de commande, Sélectionnez le Fichier et Écrire Record
Je suis en train d'essayer de communiquer entre PN532 et HCE sur Android avec la norme ISO 7816-4 commande, je suis avec succès sélectionnez l'AIDE (DF), mais lorsque je sélectionne l'EF en vertu de cette DF (EF n'existe pas, donc je suppose que la commande Select permet de créer ce EF), puis écrire les enregistrements pour que EF mais il affiche comme ceci:
inList passive target
write: 4A 1 0
read: 4B 1 1 0 4 60 4 8 23 5A 4D 5 75 80 70 2
write: 40 1 0 A4 4 0 7 F0 1 2 3 4 5 6 0
read: 41 0 48 65 6C 6C 6F 20 44 65 73 6B 74 6F 70 21
Successfully hehe
48 65 6C 6C 6F 20 44 65 73 6B 74 6F 70 21 Hello Desktop!
write: 40 1 0 A4 2 C 1 1 0
read: 41 0 48 65 6C 6C 6F 20 44 65 73 6B 74 6F 70 21
Not enough space
write: 40 1 0 D2 0 0 7 42 41 4F 47 49 41 40 0
read: 41 0 4D 65 73 73 61 67 65 20 66 72 6F 6D 20 61 6E 64 72 6F 69 64 3A 20 30
Not enough space
write: 40 1 0 D2 0 2 4 44 4F 41 4E 0
read: 41 0 4D 65 73 73 61 67 65 20 66 72 6F 6D 20 61 6E 64 72 6F 69 64 3A 20 31
Not enough space
write: 40 1 0 B2 0 0 7 42 41 4F 47 49
read: 41 0 4D 65 73 73 61 67 65 20 66 72 6F 6D 20 61 6E 64 72 6F 69 64 3A 20 32
Not enough space
write: 40 1 0 B2 0 2 4 44 4F 41 4E 0
read: 41 0 4D 65 73 73 61 67 65 20 66 72 6F 6D 20 61 6E 64 72 6F 69 64 3A 20 33
Not enough space
Je ne sais pas ce que je fais de mal ici?
Sur Android, le journal est :
04-15 09:36:54.024: D/HostEmulationManager(929): notifyHostEmulationData
04-15 09:36:54.024: W/System.err(17710): [B@41ed5970
04-15 09:36:54.024: I/HCEDEMO(17710): Received: ???????BAOGI
04-15 09:36:54.024: D/HostEmulationManager(929): Sending data
04-15 09:36:54.164: D/BrcmNfcJni(929): RoutingManager::stackCallback: event=0x17
04-15 09:36:54.164: D/BrcmNfcJni(929): RoutingManager::stackCallback: NFA_CE_DATA_EVT; h=0x302; data len=10
04-15 09:36:54.164: D/HostEmulationManager(929): notifyHostEmulationData
04-15 09:36:54.164: W/System.err(17710): [B@41ed5e20
04-15 09:36:54.164: I/HCEDEMO(17710): Received: ?????DOAN??
04-15 09:36:54.174: D/HostEmulationManager(929): Sending data
04-15 09:36:54.885: D/BrcmNfcJni(929): RoutingManager::stackCallback: event=0x19
04-15 09:36:54.885: D/HostEmulationManager(929): notifyHostEmulationDeactivated
04-15 09:36:54.885: I/HCEDEMO(17710): Deactivated: 0
04-15 09:36:54.885: D/HostEmulationManager(929): Unbinding from service ComponentInfo{de.grundid.hcedemo/de.grundid.hcedemo.MyHostApduService}
04-15 09:36:54.895: E/BrcmNfcNfa(929): UICC[0x0] is not activated
Il affiche qu'il peut recevoir des données, mais il manque quelques éléments que je veux transmettre, mais, à partir de PN532, lorsque j'utilise lire des enregistrements, il n'affiche pas ces données?
Vous ne devez PAS supposer que si un EF n'existe pas, la commande Select permet de créer ce EF. Vous devez créer l'EF à l'aide de CRÉER un FICHIER de commande.
Désolé, mais je ne pouvais pas trouver de CRÉER le FICHIER de commande, SÉLECTIONNEZ simplement le FICHIER de commande?
Le lien pour la commande que j'utilise est ici: cardwerk.com/smartcards/...
Vous devez vous référer à la norme ISO 7816-9 pour CRÉER le FICHIER de commande
La partie système de fichiers est complètement hors de propos, que -- en regardant la R-unités apdu -- il n'y a évidemment pas de système de fichier de la mise en œuvre derrière le Android HCE service Bao Doan est en communication avec.
Désolé, mais je ne pouvais pas trouver de CRÉER le FICHIER de commande, SÉLECTIONNEZ simplement le FICHIER de commande?
Le lien pour la commande que j'utilise est ici: cardwerk.com/smartcards/...
Vous devez vous référer à la norme ISO 7816-9 pour CRÉER le FICHIER de commande
La partie système de fichiers est complètement hors de propos, que -- en regardant la R-unités apdu -- il n'y a évidemment pas de système de fichier de la mise en œuvre derrière le Android HCE service Bao Doan est en communication avec.
OriginalL'auteur Bao Doan | 2014-04-14
Vous devez vous connecter pour publier un commentaire.
Les commandes de votre Android HCE émulé carte à puce application comprend et les processus sont complètement à vous (tant qu'ils sont formatés comme valide la norme ISO 7816-4 unités apdu).
Dans votre cas, votre Android HCE service de toute évidence les processus de la SÉLECTIONNER (par DF nom) APDU,
et donne à ce qu'une réponse:
(À noter que cette réponse n'est pas une réponse valide APDU selon la norme ISO 7816-4 qu'il manque un mot d'état.)
La prochaine commande que vous avez envoyé n'est pas valide SÉLECTIONNEZ (EF) commande:
Pour cette commande, Lc doit être de 2 et de l'EF identificateur doit être composé de deux octets si à l'issue de la norme ISO 7816-4. En réponse à cela, votre Android HCE service d'envoie de nouveau
(À noter que cette réponse n'est pas une réponse valide APDU selon la norme ISO 7816-4 qu'il manque un mot d'état.)
Donc, je suppose, que votre Android HCE service effectue une vérification comme ceci:
La prochaine commande que vous envoyez est incorrect d'ÉCRIRE ENREGISTREMENT de la commande qui tente d'écrire "BAOGIA@" dans le premier enregistrement de la cuirrently fichier sélectionné (mal formé, car une ÉCRITURE à l'ENREGISTREMENT de la commande n'a normalement pas un Le terrain):
Comme une réponse de votre Android HCE service envoie:
(À noter que cette réponse n'est pas une réponse valide APDU selon la norme ISO 7816-4 qu'il manque un mot d'état.)
Vous répétez ensuite l'ÉCRIRE ENREGISTREMENT de la commande avec un autre enregistrement de la charge utile et après que vous envoyez des deux malformé ENREGISTREMENT de LECTURE commandes:
Comme une réponse de votre Android HCE service envoie:
Où xx semble être un ASCII chiffres X est incrémenté pour chaque commande reçue.
Donc, je suppose, que votre Android HCE service ressemble à ceci:
Donc, pour résumer, votre Android HCE service permettra de comprendre et traiter les seulement ces commandes qui vous (ou celui qui le développe) mettre en œuvre. Donc, il est à vous ce que les commandes que vous pouvez envoyer pour le HCE appareil. Il est pas système de fichiers derrière elle. La norme ISO 7816-4 seulement suggère un système de fichiers de mise en page pour les applications de carte à puce.
Le Android HCE émulé carte à puce application n' pas fichier existant de la structure. Si le vous voulez votre HCE application pour accepter certaines commandes, vous à mettre en œuvre sur le côté Android. Ces commandes peuvent, bien sûr, les commandes qui imitent une structure de système de fichiers.
OriginalL'auteur Michael Roland