7c96bc8304
Am echten Update-Weg gemessen: die installierte Fassung lag mit CRLF auf der Platte, das Gitea-Archiv liefert LF. Drei .py-Dateien galten dadurch als geaendert, obwohl sie nach Entfernen der CR byteweise identisch waren - die Erkennung verlangte einen Neustart fuer einen rein kosmetischen Unterschied. Textdateien werden jetzt vor dem Hashen auf LF normalisiert. Binaerdateien (Schriften, Bilder, das OTA-Zip) bleiben roh, dort waere 0x0D0A echter Inhalt. Drei neue Testfaelle: reiner Zeilenenden-Unterschied, echte Aenderung trotz verschiedener Zeilenenden, Binaerdatei. 26 Tests der Suite gruen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>