Montag, 28. März 2022

Off-Topic: Anleitung für die aufgebohrte Variante der Corona-Warn-App

Ich weiß, das hier ist eigentlich mein Geocaching-Blog, aber weil dieses Thema immer wieder aufploppte und ich auf Twitter einfach nicht genug Platz für eine schöne Anleitung habe, nutze ich diesen Blogeintrag, um euch zu erklären, wie man die Funktionalität der Corona-Warn-App "aufbohren" kann, um mehr Informationen zu erhalten.

Die Corona-Warn-App selbst ist ein nützliches und wirklich sehr gut durchdachtes Open-Source-Werkzeug, um uns allen mitzuteilen, an welchem Tag wir eine Risikobegegnung hatten. Ich nutze sie seit Pandemiebeginn und bin absoluter Unterstützer dieser App. Und wer mich kennt, sollte wissen, dass ich bei diesem Thema nicht ganz ahnungslos bin. Also, falls jemand von euch noch keine Corona-Warn-App haben sollte: Auch jetzt ist sie noch nützlich und wenn der Herbst kommt, wird sie auf jeden Fall wieder sehr wertvoll sein. Aber in diesem Beitrag soll es nun darum gehen, dass man aus dem Back-End, das hinter der Corona-Warn-App, kurz CWA, steckt, noch mehr Informationen erhalten kann.
Schließlich teilt die CWA zwar mit, an welchem Datum man einen als rot oder grün klassifizierten Risikokontakt hatte, aber nicht die genaue Uhrzeit. Dies kann man aber über zusätzliche Apps auslesen, denn die CWA nutzt (analog zu allen europäischen Contact-Tracing-Apps) die "Exposure Notification API", um zu berechnen, ob eine Risikobegegnung stattgefunden hat. Wie allgemein bekannt sein sollte, funktioniert die CWA komplett anonym, denn nahe beieinander befindliche Smartphones tauschen über Bluetooth-Verbindung miteinander anonymisierte Schlüssel aus und speichern diese lokal in einer Liste. Sollte sich jemand infiziert haben, wird dessen "Schlüssel-Liste", also eine anonyme Liste der begegneten Smartphone-Schlüssel, hochgeladen und alle Schlüssel-Inhaber werden sofort über eine Risikobegegnung informiert. Es werden keinerlei Informationen über euch, euren Standort oder sonst irgendwas ausgetauscht - eine wirklich gute Sache!

Soweit funktioniert das alles wunderbar, aber für technikaffine Menschen wie mich ist natürlich noch Luft nach oben. Und so habe ich vor einiger Zeit von einer Möglichkeit erfahren, auch die Uhrzeit von Begegnungen über die "Exposure Notification API" auszulesen. Natürlich musste ich das sofort ausprobieren und habe mir die dafür notwendigen Apps installiert. Mittlerweile läuft das alles bei mir wunderbar, sodass ich aufgrund vermehrter Nachfragen beschlossen habe, euch eine Anleitung zu schreiben, wie man als Android-Nutzer ohne Root-Zugriff folgende Funktionen erhält (auf iOS / Apple-Smartphones ist das leider nicht möglich):

Zuerst einmal möchte ich euch mit ein paar Smartphone-Screenshots zeigen, was mit dieser Anleitung erreicht wird:



Auf dem linken Screenshot seht ihr die App "Corona Contact Tracing Germany", die fast genau so aussieht wie die CWA. Weil die CWA ihren Quelltext offen zur Verfügung stellt, kann man diesen herunterladen und die App selbst "bauen". Das ist hier geschehen und zusätzlich wurden ein paar nette Features eingebaut. Man kann im linken Bild sehen, dass ich zwei Risikobegegnungen, zuletzt am 23.3., gehabt habe. Das sieht genau so aus wie die CWA, aber zusätzlich sieht man darunter ein Balkendiagramm mit den Gesamt-Smartphone-Begegnungen pro Tag. Da ich am Samstag unterwegs war, ist der Balken dementsprechend außergewöhnlich hoch im Vergleich zu HomeOffice-Tagen.

Ich habe die "Corona Contact Tracing Germany"-App (CCTG) installiert und lasse sie genau wie die CWA den ganzen Tag laufen. Beide Apps funktionieren tadellos parallel und sammeln so beide Listen mit anderen Smartphones, die in meiner Nähe waren. Theoretisch könnte ich die CWA auch deinstallieren, da die CCTG App installiert habe und sie grundsätzlich dasselbe tut, aber da die CWA immer auf dem neuesten Stand ist und die CCTG App simpel ausgedrückt bei Ändernugen manuell nachgebaut werden muss, lasse ich die CWA lieber drauf. Außerdem ist interessant, zu verfolgen, wie die Apps Begegnungen melden. Bei der offiziellen CWA werden manche Begegnungen nämlich rausgefiltert (ich komme später noch dazu), aber die CCTG-App speichert und analysiert einfach alle.

Das mittlere Screenshot zeigt eine weitere App, "Warn-App-Companion". Diese App nutzt die Daten, die die CCTG-App sammelt und erstellt wunderbare Diagramme und übersichten. So kann man sehen, dass ich in den vergangenen 2 Wochen insgesamt 27 Risiko-Begegnungen hatte. Sprich: Mein Handy war mit 27 Smartphones in Kontakt, die mittlerweile einen positiven Corona-Test gespeichert haben. Aber, auch wenn die Farbe so schön knallrot ist, ist das noch kein Grund zur Panik.

Das rechte Screenshot zeigt euch die "Warn-App-Companion"-Details zu meiner letzten Risikobegegnung am 23.3., die ja auch in der CCTG-App angezeigt worden ist. Ich kann nun sehen, dass mein Smartphone von 12:58 Uhr bis 13:28 Uhr in der Nähe eines "positiven" Smartphones war. Genauer gesagt waren es drei Kontakte (also 3x hat mein Smartphone Kontakt zum anderen gehabt), einmal um 12:58 Uhr und dann noch zweimal um ca. 13:23 Uhr und 13:28 Uhr. Da ich weiß, dass ich an besagtem Tag zu besagter Zeit hier im Park bei Sonnenschein spazierengegangen bin und keine nahe Begegnung zu anderen Personen hatte, bin ich relativ beruhigt. Das zeigt auch die Farbe der Punkte an: Grün. Je weiter unten im Diagramm die Punkte eingezeichnet sind, umso mehr Abstand hatten beide Smartphones, denn umso größer ist auch die Dämpfung in Dezibel (dB). Aus Erfahrung kann ich euch sagen, dass 80 bis 85 dB schon das untere Ende sind, sprich wir waren schon weit weg. Die Angaben für die mögliche Übertragungsdistanz von Bluetooth sind ja immer unterschiedlich. Draußen könnten es wohl schon 20 Meter sein, wenn nichts stört.

An den Bildern sieht man auch, dass hier alle gesammelten Schlüssel ausgewertet werden, auch wenn sie sehr wahrscheinlich kein Risiko darstellen. Ich habe sehr oft nur einen einzigen Kontakt mit sehr hoher Dämpfung, aber auch diese Begegnungen, die wahrscheinlich im Vorbeigehen oder -fahren in sicherem Abstand geschehen sind, zählen im Risiko-Begegnungs-Diagramm im mittleren Screenshot. Man kann daraus allerdings trotzdem lesen, dass viele Menschen die CWA nutzen und ihre positiven Ergebnisse mitteilen. Übrigens: Die Begegnungen aus CWA und CCTG App sind alle zusammen ein einziges Netzwerk. Sprich: Die CCTG-App sammelt alle Kontakte und der einzige Grund, aus dem sie parallel zur CWA installiert sein muss, ist, dass man als normaler Android-Nutzer nicht an die Liste aus der CWA kommt. Mit gerootetem Smartphone sieht es anders aus, aber dazu kann ich keine Aussage treffen. Hier geht es nur um die Funktionalität für ganz normale Android-Smartphones.

Um obige Diagramme zu erhalten, benötigt man insgesamt drei Android-Apps. Das liegt daran, dass die CCTG-App nicht im Google Play-Store verfügbar ist. Daher benötigt man einen alternativen App-Store, in diesem Falle F-Droid, um darüber dann die CCTG App zu installieren. Die "Warn App Companion" ist dafür im Play-Store verfügbar, aber ohne CCTG-App bzw. dessen Daten, hat sie bei nicht-gerooteten Smartphones keine sinnvolle Funktion.

Nun zur Schritt-für-Schritt-Anleitung für Android-Nutzer (kein Root erforderlich):

WICHTIG: Ich übernehme keinerlei Haftung oder Garantie, falls irgendetwas schiefläuft. Ich bin für die Inhalte der Apps nicht verantwortlich, sondern erkläre nur, wie sie installiert werden.

1. Besuche mit dem Smartphone im Browser F-Droid und klicke auf "Download F-Droid".


2. Eventuell wird eine Meldung angezeigt, dass die Datei schädlich sein könnte (weil die Installations-Datei nicht aus dem Play-Store ist). Ein Klick auf "Trotzdem installieren" sollte die Android-Einstellungen öffnen. Dort dann den "Chrome - Aus dieser Quelle zulassen" Schieberegler aktivieren und danach oben links auf den Pfeil / Zurück-Taste drücken, um zur Installation zurückzukehren. Dann bei "Möchtest du diese App installieren?" auf "Installieren" klicken.


3. Sobald F-Droid installiert ist, kannst du es öffnen. Dort werden dann erstmal für ein par Sekunden Pakete geladen, um die Startseite anzuzeigen. Sobald das fertig ist, suche nach "CCTG" oder "Corona Contact Tracing Germany" und klicke im Ergebnis auf den Pfeil-Runter- / Herunterladen-Button rechts. Sobald die App heruntergeladen wurde, taucht ein "Installation"-Button auf, den du anklickst.


4. Es folgt eventuell dieselbe Meldung wie beim Installieren von F-Droid (und wir gehen analog vor): Es erscheint eine Meldung, dass die Datei schädlich sein könnte. Klicke auch hier auf "Trotzdem installieren", setze den "F-Droid - Aus dieser Quelle zulassen" Schieberegler auf aktiv und gehe zurück zur Installation. Klicke dann auf "Installieren".


5. Sobald die CCTG-App installiert ist, kannst du sie öffnen. Es gibt dieselbe Intro wie bei der originalen Corona-Warn-App, die man einfach durchklicken und die Verfolgung aktivieren kann. Dann sieht die App wie gewohnt aus, zeigt aber im unteren Bereich ggf. bereits erste ID-Begegnungen an.


6. Nun brauchen wir noch die "Warn-App-Companion", die man wie gesagt direkt im Google Play-Store herunterladen kann. Fragt mich nicht, wieso sie als App-Icon einen Hund hat. Ich tippe darauf, dass ein Hund ja auch ein "Companion" ist. Nachdem du sie wie gewohnt aus dem Play-Store installiert hast, kannst du sie öffnen. Sie wird zunächst ein paar Sekunden bis Minuten lang Schlüssel herunterladen. Lass dich von der Fehlermeldung nicht beunruhigen, das ist ganz normal.


7. Jetzt sind alle notwendigen Apps installiert und du kannst den Ablauf für die Analyse der Begegnungen einmal durchspielen, auch wenn noch nicht viel zu sehen sein wird, da du die CCTG-App gerade erst installiert hast und sie erst ab jetzt Begegnungen speichert, die du dann via Warn-App-Companion analysieren lassen kannst.

Öffne die CCTG-App und klicke auf die bisherigen Begegnungen in der unteren Hälfte des Startbildschirms. Im folgenden Screen kannst du eine Matrix mit Begegnungen pro Stunde sehen. Klicke darunter auf "Exportieren". Das übliche Sharing-Fenster öffnet sich, wähle dort die "Warn-App-Companion" mit dem Hunde-Icon aus. Die App wird sich öffnen und einige Zeit laden. Bei mir dauert es inzwischen einige Minuten, bis sowohl die Schlüssel, als auch die Risikobegegnungen analysiert worden sind. In deinem ersten Versuch sollte alles schnell gehen und am Ende wie folgt aussehen:



Fertig!

In den kommenden Tagen wird sich nun die CCTG analog zur CWA mit Leben füllen und im Hintergrund fleißig Kontakte, sogenannte "Exposure-Daten" sammeln. Ich persönlich schaue alle 2-3 Tage in meine CCTG-App hinein und exportiere meine Kontakte an die Warn-App-Companion-App, um zu schauen, ob ich Risiko-Begegnungen hatte und wo sie wohl stattgefunden haben.

Jetzt mache ich erstmal Pause und teile diese Anleitung mit euch. In Kürze folgt hier dann noch eine ausführlichere Erklärung zu den angezeigten Statistiken in der Warn-App-Companion. Schon jetzt ein paar Worte dazu:

Risiko-Begegnungen in der Warn-App-Companion können wie folgt aussehen:


Wie oben schon erwähnt, sind grüne Datenpunkte Kontakte mit höherer Distanz. Je weiter unten ein Punkt eingezeichnet ist, umso weiter war das Smartphone entfernt. Zusammen mit der Uhrzeit kann man so recht gut ausmachen, wo man sich gerade befand und ob die Begegnung ein Risiko darstellen könnte. Im Screenshot seht ihr auch meine bisher einzige "nicht-grüne" Begegnung: Ich war fast 2 Stunden in der Nähe einer positiven Person. Dank Uhrzeit weiß ich, dass ich durchgehend eine FFP2-Maske getragen habe, aber mir war trotzdem unwohl und ich habe mich täglich selbst getestet. Scheint alles gut gegangen zu sein, aber so gab mir die zusätzliche Information doch etwas Sicherheit.

Außerdem sind euch bestimmt oben rechts schon die Informationen "Report-Typ", "Übertragungsrisiko" und "Tage seit Beginn der Symptome" aufgefallen. Zu diesen Punkten komme ich demnächst, aber eins schon vorweg: Der "Report-Typ" hat nichts mehr zu sagen! Seit einem Update der "Exposure Notification API" letzten Herbst, wird dieser Wert für etwas vollkommen anderes verwendet, heißt aber in der "Warn-App-Companion" leider noch "Report-Typ" und wird entsprechend angezeigt. Bitte ignoriert diesen Wert einfach, er sagt NICHT aus, wie sich jemand getestet hat! Für die technisch Versierten: Der dahinter stehende Enum wird anders befüllt und verwendet. Für alle anderen: Bitte nicht beachten!

Das Übertragungsrisiko ist ein Wert zwischen 1 und 8, wobei die 8 das maximale Risiko darstellt. Dies ist einer von mehreren Werten, die alle zusammen das Gesamtrisiko einer Begegnung berechnen. Weitere wichtige Faktoren sind die Zeit und die Distanz. Die Rechnung ist nicht ganz trivial, ich werde sie hier aber in Kürze nochmal für euch auseinandernehmen.

Die "Tage seit Beginn der Symptome" sind ebenfalls ein rechnerischer Wert, der nicht ganz einfach ist. Dazu muss ich mir die Doku nochmal durchlesen. Folgt dann auch hier in Kürze.

Bis dahin hoffe ich, meine Anleitung für die Installation ist verständlich und ihr erfreut euch bald genau so wie ich an Begegnungs-Matrix und Risikobegegnungs-Diagrammen.

2 Kommentare:

  1. Moin. Ich hab auch beides parallel laufen, muss aber feststellen dass die "aufgebohrte" Version immer wieder hakt. Ich weiß noch nicht so genau woran es liegt. Gestern z.B. kamen bis Mittags keine IDs dazu, dann hab ich gesehen dass FDroid nicht in der Ausnahmeregelung des Akku eingetragen war. Kaum hab ich das geändert schossen die IDs nur so auf mich ein. Klar, bei meinem Job sammelt der alles was hinter mir in Reichweite sitzt ein und wenn ich in einen Bahnhof einfahre tickert alles vom Bahnsteig aus dazu.
    Aber seit gestern Abend 23 Uhr: Funkstille. Ich hab keine Ahnung woran es liegt

    AntwortenLöschen
  2. Nachtrag:
    Wenn man einmal kurz die Risiko-Ermittlung deaktiviert und wieder aktiviert geht das Sammeln weiter. Um mich herum sitzen offenbar gerade 16 Personen mit App

    AntwortenLöschen