2016-05-19 25 views
1

Ich möchte MIFARE Classic 1k Karten lesen nur nach dem Schreiben einiger Ausgangsdaten zu ihnen. Ich denke, ich muss die Schlüssel A und B in etwas Brauchbares ändern, nachdem ich Daten auf die neue Karte geschrieben habe. Aber wie mache ich das? Diese Schlüssel werden in dem gleichen Block wie die Zugriffs Bits befindet, so kann ich nicht MifareClassic Verfahren zum Schreiben eines kompletten Block verwenden:Machen MIFARE Classic 1K nur über eine Android-App lesen

public void writeBlock(int blockIndex, byte[] data) throws IOException 

, weil es auch die Zugriffs Bits neu schreiben.

Antwort

1

Sicher müssen Sie die Methode MifareClassic.writeBlock() verwenden. Da MIFARE Classic nur das Schreiben kompletter Blöcke unterstützt, müssen Sie den gesamten Sektor-Trailer-Block aktualisieren.

Da MIFARE Classic nicht über einen freien Lesemodus verfügt (dh ohne vorherige Authentifizierung gelesen wird), müssen Sie sowohl einen Leseschlüssel (normalerweise den Schlüssel A) als auch die Zugriffsbits (den Schlüssel A als schreibgeschützter Schlüssel).

Sie weitere Informationen über mögliche Zugriffszustandswerte und das Blockformat finden Sie hier: