[PYTHON] Android HCE Survey Memo (Teil 2)

Zweck

Überprüfen Sie die Verbindung vom PC (PC / SC) zu Android HSE.

Umgebung

Dieses Mal haben wir den Betrieb mit den folgenden Modellen bestätigt.

Android Seite

PC-Seite

--NFC-Leser

Android Seite

Bitte beachten Sie den vorherigen Artikel. Android HCE Survey Memo (Teil 1)

Die AID lautet "F222222222".

App zur Bestätigung der HSE-Kommunikation

Versuchen Sie für eine schnelle Überprüfung, Python zu verwenden.

Modulzusatz

Fügen Sie ein Modul hinzu, um PC / SC von Python aus zu betreiben. Für die Pyscard ist SWING erforderlich. Installieren Sie sie daher im Voraus. SWIG

Fügen Sie nach der Installation von SWIG weitere Module mit dem folgenden Befehl hinzu. pip install pyscard

Pyscard-Dokumentation

Die Pyscard-Dokumentation finden Sie unter folgender URL:

https://pyscard.sourceforge.io/#documentation

Erstellung eines HCE-Verbindungspythonskripts

Erstellen Sie ein Python-Skript.

HCE_connect.py


from smartcard.CardType import AnyCardType
from smartcard.CardConnection import CardConnection
from smartcard.CardRequest import CardRequest
from smartcard.util import toHexString

#Kartenverbindung
cardtype = AnyCardType()
cardrequest = CardRequest( timeout=1, cardType=cardtype )
cardservice = cardrequest.waitforcard()
cardservice.connection.connect( CardConnection.T1_protocol )
print ("ATR:", toHexString( cardservice.connection.getATR() ))

#Wählen Sie durch Angabe von AID
SELECT = [0x00, 0xA4, 0x04, 0x00]
CARD_AID = [0xF2, 0x22, 0x22, 0x22, 0x22 ]
LEN = [len(CARD_AID)]
#APDU zusammenbauen
apdu = SELECT + LEN + CARD_AID
print("send apdu:", toHexString(apdu))
#Senden und Empfangen
data, sw1, sw2 = cardservice.connection.transmit(apdu)
print("SW1SW2: %x %x" % (sw1, sw2))
print("received:", toHexString(data))

#Trennen
cardservice.connection.disconnect()
print("...disconnected.")

Ausführung des Python-Skripts

Starten Sie die Android-Card Emulation App auf Ihrem Android. Legen Sie Android auf den Kartenleser und lassen Sie es erkennen.

Führen Sie das Skript aus, nachdem Sie bestätigt haben, dass HCE es erkennt. python HCE_connect.py

Ergebnisausgabe


ATR: 3B 88 80 01 00 00 00 00 80 81 71 00 79
send apdu: 00 A4 04 00 05 F2 22 22 22 22
SW1SW2: 90 0
received: 30 30 30 30 30 30 30 30
...disconnected.

Ich konnte es normal lesen.

nächstes Mal

Stellen Sie sicher, dass Sie auch in C # darauf zugreifen können. Android HCE Survey Memo (Teil 3)

Recommended Posts

Android HCE Survey Memo (Teil 2)
[Für Memo] Linux Teil 2
Listen Sie das Schreiben von Memos Teil 2 auf
Python-Grundnotiz - Teil 2
FastAPI Tutorial Memo Teil 1
Python-Grundnotiz - Teil 1
Linux Standard Lehrbuch Memo 1 Teil 2
Python-Grammatik-Grundnotiz (1)
Linux Standard Lehrbuch Memo Teil 6
[Für Memo] Linux Part 1 vi Editor
FastAPI Tutorial Memo Teil 3 Abfrageparameter
FastAPI Tutorial Memo Teil 2 Pfadparameter