Dev Log · Vault Pure, Release, Verschlüsselung, Fehler
Vault Pure 1.0.8: neues Aussehen, und ein Fehler, den R8 eingebaut hatte
8. bis 10. Oktober 2026:
Sechs Fassungen in drei Tagen: versionCode 18 bis 23, der Name blieb 1.0.8. Seit heute läuft Version 23 in der Produktion bei Google Play. Zuerst der Fehler, der am längsten im Verborgenen lag, dann alles, was man sieht.
Der Fehler: R8 hat die Schlüsselparameter umbenannt
Jeder Tresor speichert neben dem Passwort-Schlüssel ein paar Parameter als JSON: Salz, Initialisierungsvektor, Verfahren, Rundenzahl. Gson schreibt dafür die Feldnamen der Klasse. Im Release-Build verkleinert R8 den Code, nennt die Felder a und b und wirft die heraus, deren Wert es als Konstante erkennt.
Das Ergebnis: Jeder Tresor, den ein Play-Build bis versionCode 18 angelegt hat, trägt nur {"a": Salz, "b": IV}. Verfahren und Rundenzahl standen nirgends im Tresor, nur im Code.
Aufgefallen ist es, sobald eine Änderung einen dieser Werte variabel machte. Das Feld war wieder da, im gespeicherten JSON stand nichts dafür, und das Entsperren scheiterte mit einer NullPointerException. Schlimmer noch: Die höhere Rundenzahl für neue Tresore hätte auch alte getroffen, die dann mit dem falschen Schlüssel geöffnet werden sollten.
Die Lösung hat drei Teile:
- Ein eigener Adapter schreibt die Parameter mit festen, echten Namen. Wie R8 den Code verschleiert, spielt für das gespeicherte Format keine Rolle mehr.
- Beim Lesen versteht er auch die alte
a/b-Form und ergänzt, was die alten Builds fest eingebaut hatten: 210.000 Runden. - Keep-Regeln halten R8 von diesen Klassen fern. Das gilt auch für Backups, die dieselben Parameter tragen.
Tests lesen genau das alte Format ein. Ein Tresor aus einer früheren Fassung geht nach dem Update wieder auf.
Ein stärkeres Passwort-Verfahren
Neue Tresore leiten den Schlüssel mit 600.000 statt 210.000 PBKDF2-Runden ab. Auf älteren Handys kann das Entsperren mit Passwort deshalb ein paar Sekunden dauern, die App sagt das jetzt vorher. Auch die Sperre nach Fehlversuchen ist strenger geworden.
Das Aussehen
- Version 18: Marineblau und Gold, vom App-Symbol abgeleitet. Im Hintergrund ein Schloss, in dem Fotos, Dokumente und Siegel treiben. Die App ist nur noch dunkel, die Einstellung für das Design ist weg.
- Version 19 und 20: Die Übersicht bekommt Abschnitte, dann kleine Kacheln und eine untere Leiste. Einstellungen sind aufgeteilt: Alltägliches vorn, Schutz und Sperre unter „App-Einstellungen“.
- Version 21: Goldene Kopfleisten mit App-Symbol, ein Orangenzweig als ruhiger Hintergrund und ein Augen-Knopf, der Vorschaubilder ausblendet.
- Version 22: Im Login wächst ein Baum statt der alten Tresor-Animation. Das Zahnrad für die Einstellungen sitzt in jeder Leiste, „Schutz“ heißt „Verwalten“, der Tarn-Tresor ist in Karten gegliedert.
- Version 23: Der Baum ist neu gezeichnet, mit einer Krone aus vielen kleinen Blättern und goldenen Früchten.
Für genau einen Build hieß die App übrigens „Tresor Pur“. Sie heißt wieder überall Vault Pure.
Wie die Store-Bilder entstehen sollen
Die Bilder im Store sollen aus der echten App kommen. Ein Test läuft dafür auf einem virtuellen Gerät bei Firebase Test Lab durch die Bildschirme und macht die Aufnahmen. Eine Hürde: Die App setzt FLAG_SECURE, normale Aufnahmen sind deshalb schwarz. Der Test schaltet vorher die App-eigene Einstellung „Bildschirmfotos erlauben“ ein.
Gemessen
- Versionen: 6 in 3 Tagen
- Rundenzahl neuer Tresore: 210.000 vorher, 600.000 jetzt
- Release-Notizen: in 24 Sprachen geschrieben
Ein Tresor, der sich nach einem Update nicht mehr öffnen lässt, ist kein Tresor.
Herzliche Grüße aus der WerkstattDigitale Manufaktur Rudolstadt