Wie schreibt man die Konfigurationsseiten eines Tags, ohne ihn zu ruinieren?
Lesen Sie zuerst den Speicherplan des Chips, schreiben Sie jede Seite als Ganzes, nachdem Sie sie gelesen haben, setzen Sie das Passwort vor der Einstellung, die den Schutz einschaltet, und lassen Sie jedes einseitige Bit zuletzt. Laufen Sie die ganze Abfolge dann auf einem Tag durch, den Sie verlieren dürfen, da keine Schnittstelle der Plattform prüft, was Code dort schreibt.
Der Plan gehört dem Chip
Konfigurationsseiten tragen die Einstellungen, die die Seite zur Konfiguration aufführt: Passwort, Zugriffsbedingungen, Zähler, Spiegelung und Sperrbits. Kein Typ des NFC Forum legt sie fest, ihre Lage wechselt also von einem Chip zum nächsten. Ein NTAG213 hält seine beweglichen Sperrbytes auf Seite 40 und seine Konfiguration auf den Seiten 41 bis 44, laut seinem Datenblatt auf wakdev.com; ein NTAG215 benutzt die Seiten 130 bis 134, laut seinem eigenen.
Eine Seitennummer gilt daher für ein einziges Bauteil. Code erkennt den Chip vor dem Schreiben, wie die Seite zum Erkennen eines Chips es von der Seite des Käufers beschreibt, und weigert sich, seine Abfolge auf etwas anderem zu fahren: Seite 41 eines NTAG213 ist auf einem NTAG215 gewöhnlicher Nutzerspeicher.
Eine Seite wird als Ganzes geschrieben
WRITE setzt vier Bytes auf einmal, und die Referenz zu MifareUltralight dokumentiert writePage() als das Beschreiben einer Seite. Konfigurationsbytes teilen sich Seiten, eines von ihnen zu ändern heißt also, die Seite zu lesen, dieses Byte zu ändern und die vier zurückzuschreiben.
Schreiben Sie für die Bytes, die Sie nicht ändern wollen, zurück, was Sie gelesen haben. Ein Byte, das als null geschrieben wird, weil der Code seine Bedeutung nicht kannte, ist eine Einstellung, die niemand entschieden hat, und manche Einstellungen kommen nicht zurück.
Nicht jede Seite liest zurück, was geschrieben wurde. Die Seite, die das Passwort trägt, ist normalerweise nicht lesbar, wie die Seite zum Passwort anmerkt, Code behält also den Wert, den er geschrieben hat, statt zu erwarten, ihn zurückzulesen.
Eine Reihenfolge, die Sie drin lässt
Schreiben Sie das Passwort vor der Einstellung, die den Schutz einschaltet. Die Seite zum Passwort beschreibt die zwei Schritte, den Schlüssel und seinen Umfang; in der anderen Reihenfolge beginnt der Schutz mit dem Passwort, das der Chip vorher trug, und spätere Schreibvorgänge im geschützten Bereich brauchen dieses.
Lassen Sie einseitige Einstellungen ans Ende. Sperrbits, ein Zähler, der sich nach dem Einschalten nicht mehr abschalten lässt, und ein Bit, das die Konfiguration selbst einfriert, sind auf den Chips, die sie haben, dauerhaft, wie die Seite zur Konfiguration warnt, und jede früh gesetzte macht aus einem Fehler weiter unten in der Abfolge einen verlorenen Tag.
Lesen Sie jede Seite nach dem Schreiben zurück, außer denen, die nicht lesbar sind, und halten Sie beim ersten Unterschied an. Eine Abfolge, die über einen misslungenen Schreibvorgang hinaus weiterläuft, baut auf einem Zustand auf, den niemand kennt.
Ein Tag zum Verlieren, zuerst
Fahren Sie die vollständige Abfolge vor der Charge auf einem Tag, und prüfen Sie ihn dann von einem zweiten Gerät aus, das das Passwort nicht hält: Ein Schreibvorgang, der dort gelingt, heißt, dass der Umfang falsch ist, die Prüfung, die die Seite zum Passwort empfiehlt. Versuchen Sie auf demselben Tag auch ein falsches Passwort, wo der Chip die misslungenen Versuche begrenzt, da die Grenze mit allem anderen in die Fertigung geht.
Behalten Sie diesen Tag, beschriftet mit der Abfolge und dem Datum. Er ist der Bezugspunkt, wenn eine Charge sich anders verhält, dieselbe Überlegung wie beim toten Tag, den die Seite zum beschädigten Tag zu behalten vorschlägt, um einen Prüfschritt zu testen.
Beschreiben Sie dann die Charge mit demselben Code, nicht mit einer Abwandlung davon. Die Seite zum Beschreiben in Serie behandelt die Seite der Fertigung.
Häufige Fragen
Kann die NDEF-Schnittstelle Konfigurationsseiten schreiben?
Nein. Die Konfiguration sitzt außerhalb von NDEF, sie verlangt also rohe WRITE-Befehle auf den Seiten, die das Datenblatt des Chips benennt.
Warum landete mein Schreibvorgang der Konfiguration im Inhalt?
Die Seitennummer gehörte zu einem anderen Chip. Seite 41 trägt die Konfiguration auf einem NTAG213 und Nutzerspeicher auf einem NTAG215.
Lässt sich eine falsche Konfiguration rückgängig machen?
Ein Passwort lässt sich mit dem aktuellen ändern. Sperrbits und eine eingefrorene Konfiguration nicht, auf keinem Chip, der sie hat.
Soll das Passwort vor oder nach der Einstellung des Schutzes geschrieben werden?
Davor. Sonst beginnt der Schutz mit dem Passwort, das der Chip schon trug, und spätere Schreibvorgänge im geschützten Bereich brauchen dieses.