Herunterladen

Kein Store. Keine Anmeldung.

tessera kommt von hier — als Datei, mit veröffentlichter Prüfsumme und nachrechenbarer Signatur. Was ein Store dir abnimmt, nimmst du hier selbst in die Hand: prüfen, ob die Datei die ist, die wir gebaut haben.

Drei Pakete: der Client für Windows, der Client für Android und der Sync-Server für deinen eigenen Rechner. Die ersten beiden brauchst du, den Server nur, wenn du mehrere Geräte abgleichen willst.

Das hier ist ein Prototyp. Er tut, was er soll, aber er ist noch nicht lange im Alltag gewesen. Verlass dich nicht als einziges Werkzeug darauf, schreib Wiederherstellungscode und Kontokennung auf, und rechne damit, dass ein Update etwas verändert.

Nachrechnen, nicht vertrauen

Zu jedem Paket steht eine SHA-256-Summe. Sie zu prüfen dauert zehn Sekunden und beantwortet die Frage, ob unterwegs jemand etwas ausgetauscht hat.

Windows · PowerShell
Get-FileHash .\tessera-windows-x64.zip -Algorithm SHA256
Android · von einem Rechner aus
sha256sum tessera.apk
apksigner verify --print-certs tessera.apk

Bei Android zählt am Ende nicht die Prüfsumme, sondern der Fingerabdruck des Signaturschlüssels: Android lässt ein Update nur zu, wenn es mit demselben Schlüssel unterschrieben ist. Stimmt der Fingerabdruck mit dem hier veröffentlichten überein, kommt das Paket von uns — egal, über welchen Umweg du es bekommen hast.

Die Signatur ist mehr wert als die Prüfsumme

Eine Prüfsumme beantwortet nur, ob die Datei unterwegs kaputtgegangen ist. Sie beantwortet nicht, ob jemand Datei und Prüfsumme zusammen ausgetauscht hat — beide liegen schließlich auf demselben Server und kommen über dieselbe Leitung.

Die Signatur beantwortet genau das. Ihr privater Schlüssel liegt nicht auf diesem Webserver und wird nie dorthin übertragen; wer den Server übernimmt, kann Dateien ersetzen, aber keine gültige Signatur darüberlegen.

Einmal einrichten, dann je Release
# öffentlichen Schlüssel von oben übernehmen
minisign -Vm SHA256SUMS -P RW…

# und dann die Prüfsummen gegen die Dateien
sha256sum -c SHA256SUMS

Erst beides zusammen ergibt eine Aussage: Die Signatur sagt, dass die Prüfsummenliste von uns stammt, und die Liste sagt, dass die Dateien zu ihr passen.

Windows: was beim ersten Start passiert

Das Paket ist nicht mit einem Zertifikat signiert. Also meldet sich der SmartScreen-Filter: „Der Computer wurde durch Windows geschützt.“ Das ist kein Befund über die Datei — es ist die Aussage, dass Microsoft den Herausgeber nicht kennt.

  1. ZIP herunterladen, Prüfsumme vergleichen.
  2. Rechtsklick auf die ZIP-Datei → Eigenschaften → unten Zulassen ankreuzen → OK. Das erspart die Meldung für jede Datei darin.
  3. Auspacken, wohin du willst — es gibt keinen Installer und keine Registry-Einträge.
  4. tessera.exe starten.

Deinstallieren heißt: den Ordner löschen. Was die App gespeichert hat, liegt in deinem Benutzerprofil und im Windows-Anmeldeinformations­speicher — der Weg dorthin steht in der Installationsanleitung.

Ein Zertifikat ist eingeplant, aber es löst weniger, als man denkt: Ein frisch gekauftes Zertifikat hat bei SmartScreen zunächst auch keine Reputation. Solange es nicht da ist, ist die Prüfsumme die ehrlichere Antwort — sie sagt etwas über die Datei aus und nicht über den Bekanntheitsgrad des Herausgebers.

Android: einmal erlauben, dann läuft es

  1. APK auf dem Telefon herunterladen.
  2. Beim Öffnen fragt Android, ob dieser Browser Apps installieren darf. Die Erlaubnis gilt je Quell-App — du erlaubst also nicht „alles“, sondern „aus diesem Browser“.
  3. Installieren. Google Play Protect meldet unter Umständen eine unbekannte App; das ist derselbe Sachverhalt wie bei SmartScreen.
  4. Die Erlaubnis danach wieder entziehen, wenn du magst — Updates holt tessera ab dann selbst.

Es gibt ein universelles Paket, das auf jedem Gerät läuft. Das ist ein paar Megabyte größer als ein auf die Prozessorart zugeschnittenes — dafür entfällt die Frage, welche Datei die richtige ist.

Der Sync-Server

Ein Archiv mit dem Node-Quelltext, den Deploy-Skripten und der Betriebsdokumentation. Kein Docker, kein Installationsprogramm, keine Registrierung — auspacken und ein Skript aufrufen:

Auf einem Ubuntu
tar xzf tessera-server-*.tar.gz
cd tessera-server-*
sudo ./deploy/install.sh

Vorausgesetzt sind Node 22 oder neuer und eine MariaDB. Das Skript ist idempotent: Derselbe Aufruf richtet ein und aktualisiert. Was er im Einzelnen tut, steht in der Installationsanleitung.

node_modules liegt bewusst nicht bei. Sie entsteht auf dem Zielrechner mit npm ci aus dem Lockfile — ein mitgeliefertes Verzeichnis wäre für die falsche Node-Fassung übersetzt und brächte Binärteile mit, die niemand geprüft hat.

Du brauchst den Server nicht, um tessera zu benutzen. Als reiner SSH- und SFTP-Client läuft der Client vollständig ohne ihn. Der Server ist nur für den Abgleich zwischen mehreren Geräten da — und er sieht dabei ausschließlich Ciphertext.

Updates ohne Store

Ein Store hat genau eine Eigenschaft, die wirklich fehlt: Er sagt dir, dass es etwas Neues gibt. Das übernimmt tessera selbst — ohne Konto und ohne Dienst dazwischen.

  1. Beim Start und danach höchstens einmal am Tag ruft die App /downloads/latest.json ab. Eine gewöhnliche Anfrage, wie sie auch diese Seite stellt: keine Kennung, keine Angaben zum Gerät, keine Zählung.
  2. Gibt es eine neuere Fassung, erscheint oben ein Hinweis. Installiert wird erst, wenn du Jetzt aktualisieren drückst — die App wird dabei beendet, offene Sitzungen auch.
  3. Vor dem Laden prüft tessera die minisign-Signatur über SHA256SUMS mit dem Schlüssel, der in der App steht, und nicht mit dem aus dem Manifest. Danach muss das geladene Paket genau die signierte Prüfsumme haben. Stimmt eins davon nicht, wird nichts eingesetzt.

Windows

Das Paket wird in den Ordner kopiert, aus dem tessera läuft, danach startet die neue Fassung. Dafür muss der Ordner beschreibbar sein — unter Programme ist er das nicht, dann bleibt es beim Hinweis mit dem Weg hierher. Ohne gültige Signatur installiert tessera unter Windows nichts selbst; solange ein Release unsigniert ist, führt der Hinweis auf diese Seite.

Android

Die App übergibt das Paket an den Paketinstaller des Systems. Beim ersten Mal fragt Android, ob tessera Apps installieren darf, danach bestätigst du jede Installation einzeln. Android nimmt ein Update nur mit demselben Signaturschlüssel an — ein untergeschobenes Paket scheitert dort, egal woher es kommt.

Abschalten lässt sich das in den Einstellungen unter Aktualisierung. Von Hand nachsehen geht jederzeit unter Einstellungen → Über tessera → Version und Updates — dort steht auch, welche Fassung gerade läuft. Selbst gebaute Fassungen kennen keine Versionsnummer und suchen nie nach Updates. Wer lieber von außen beobachtet: /downloads/latest.json ist maschinenlesbar, und Obtainium kann unter Android diese Seite als Quelle nehmen.

Lieber selbst bauen?

Geht auch, und für ein Werkzeug dieser Art ist es der ehrlichste Weg: Wer selbst baut, muss niemandem glauben. Die Installationsanleitung beschreibt beide Wege — Client aus dem Quelltext und Sync-Server auf dem eigenen Rechner.

← InstallationServer und Client aufsetzen Auf dem TelefonWas mobil anders ist