Patching von LibreLink mit Freestyle Libre 2 und xDrip+

Dieser Beitrag ist ein bisschen abseits von den Themen, über die ich sonst so schreibe. Da mich das Thema allerdings persönlich betrifft und mir einen ziemlich großen Vorteil bringt, hoffe ich das es dem ein oder anderen eine Hilfe ist und ihn ebenfalls persönlich weiterbringt.
Da ich seit einigen Jahren Diabetes Typ 1 habe und durch meinen Beruf einen ziemlich guten technischen Hintergrund habe, versuche ich hier den Menschen ohne dieses technische Hintergrundwissen zu helfen bzw. weiterzuhelfen.

Der nachfolgende Text beschreibt einige Hintergründe, wenn es euch nur um den technischen Teil geht, dann könnt ihr direkt dahin springen:

tl;dr: Zeig mir die Anleitung

Attention:
Wichtige Info vorab, damit wir drüber gesprochen haben: Ich spreche und beschreibe hier ausschließlich die Android App Variante. Kein iOS.

Worum geht es?

Damit ich einen aktuellen Blutzuckerwert erhalte, musste ich mich einige Jahre in den Finger stechen und in meinem Blut mit Hilfe von einem Blutzucker-Messgerät den aktuellen Wert herausfinden. Das hört sich nicht nur unschön an, das ist auf Dauer auch ziemlich nervig und macht die Finger kaputt. Besonders blöd, wenn man viel und häufig tippen muss oder dreckige Finger hat, die erst gewaschen werden sollten.

Vor ca. zwei Jahren ist dann ein neues Produkt in Deutschland erschienen, was die ganze Sache deutlich erleichtert: das Freestyle Libre. Man kann sich einen Sensor an den Arm kleben, der mit Hilfe von einer kleinen, flexiblen Nadel den Blutzuckerwert alle fünf Minuten misst. Diesen Wert kann man mit Hilfe von einem kleinen Lesegerät auslesen und bekommt so Kurven, Tendenzen und generell deutlich mehr Informationen über sich und seinen Körper als bei einem Wert alle x Stunden. Ich habe das Gerät innerhalb von Minuten in mein Herz geschlossen und möchte nicht mehr zurück auf Teststreifen und Werte nur alle paar Stunden. Der Sensor ist wasserdicht, hält 14 Tage und kann Werte bis zu acht Stunden speichern (sehr gut für Nachtverläufe usw.).

Geht da mehr?

Trotz meiner anfänglichen Begeisterung habe ich mich recht schnell gefragt, warum man zum auslesen der Werte (per NFC) immer das Lesegerät an den Sensor halten muss. Oder warum in dem Gerät kein Bluetooth-Chip verbaut ist, der die Werte direkt auf das Messgerät oder ein Handy schickt. Ich habe mich dann umgeschaut im Internetz und bin auf einen jungen Mann auf Youtube aufmerksam geworden, der über unterschiedliche Hardware zur Anzeige und zur Auslese-Automatisierung von Messwerten berichtet hat. Eins der Geräte, die er gezeigt hat, war ein Sensor von MiaoMiao. Bei dem Gerät handelt es sich um einen kleinen Sensor, der auf den Freestyle Libe-Sensor geklebt oder gebunden wird. Dieser MiaoMiao Sensor kann auf der einen Seite die Werte vom Freestyle-Sensor per NFC auslesen und zum anderen die Werte per Bluetooth auf ein Handy / Tablet schicken, welches dann z.B. mit der App xDrip+ betrieben wird.

Ich habe mir dann den Sensor direkt bestellt und getestet. MiaoMiao ist ebenfalls wasserdicht, wiederaufladbar und hält ebenfalls 14 Tage. Fortan bin ich nicht mit einem Sensor durch die Gegend gelaufen, sondern mit zwei. Dafür hatte ich allerdings meine aktuellen Werte konstant auf dem Handy(-Lockscreen). Weiterhin habe ich einen Upload der Daten in eine Datenbank konfiguriert, so dass ich mir meine Blutzucker-Werte auch in jedem Browser anzeigen lassen kann. Dies hat den Vorteil, dass ich nebenbei an der Arbeit ein weiteres Browser-Fenster öffnen kann, in dem ich immer den aktuellen Wert sehen kann. Sowohl Webseite als auch Handy-App können Alarme, d.h. mein Handy rappelt bei Werten unter oder über einem von mir festgelegten Grenzwert los und erinnert mich daran, Zucker zu mir zu nehmen oder eben Insulin zu spritzen.

Ich war mit dieser Lösung sehr glücklich und dies hat mich die letzten Monate auch sehr gut begleitet. Bis eine neue Generation erschien…

Freestyle Libre 2

Vor einigen Monaten erschienen Meldungen, dass der Hersteller eine neue Version auf den Markt bringen möchte, die ebenfalls ein kontaktloses Messen inkl. Alarmierung ermöglicht. Ich war ziemlich gespannt drauf und hatte gehofft, dass die Kopplung von zwei Sensoren danach nicht mehr notwendig ist und alles automatisch geschieht.

Die Umstellung auf das neue System

Schon vor der Umstellung auf die Generation 2 habe ich einige Berichte im Internetz gelesen, in denen das neue Gerät beschrieben und getestet wurde. Das Fazit in nahezu jedem Test war, dass es an vielen Stellen noch Verbesserungsbedarf gibt.

Nachdem ich eine neue Lieferung von Sensoren angefragt habe, kam im späten Frühjahr diesen Jahres die erste Sendung mit der Generation 2 der Sensoren. Das erste, was nicht mehr möglich war (was ich allerdings vorher schon wusste): Mein geliebter MiaoMiao geht nicht mehr. Das auslesen der Werte von Generation 2-Sensoren bringt nur einen “Fehler: unknown checksum”. Naja, vielleicht bringen mich die nativen Funktionen ja weiter. Dachte ich. Dem war leider nicht so. Nachdem ich das Gerät einige Wochen im Einsatz hatte, stellte ich ziemlich schnell eine deutliche Ernüchterung ein. Hier eine kleine Übersicht der Dinge, die einer Verbesserung bedürfen:

Akkulaufzeit

Das Messgerät der Generation hat zwischen vier und sechs Wochen gehalten, das neue Gerät kommt auf knapp eine Woche. Höchstens. Das ist, wenn man die langen Laufzeiten vorher gewöhnt ist, ziemlich mies. Ein größerer Akku dürfte nicht die Welt kosten. Und wenn doch, dann halt umlegen auf den Kunden, hätte ich persönlich auch kein Problem mit.

Messwerte

Ich habe die Messwerte am Anfang nach dem Wechsel mit den Werten des Generation 1-Sensors sowie mit Blutwerten verglichen, um zu schauen wie genau (oder eben nicht) das Gerät misst. Resultat: Die Werte sind zum Teil massiv falsch, ich habe teilweise Differenzen von 45 mg/dl gemessen. Diese hohen Unterschiede habe ich bei dem ersten nicht gehabt (zumindest habe ich sie nie messen können). Ich kann mittlerweile fühlen, dass die angeblich massiv zu tiefen Werte so nicht stimmen. Eine Messung im Blut hat das dann auch mehrfach bestätigt.

Alarme

Man kann ebenfalls Alarme einstellen, wenn man möchte. Richtig schlecht. Wenn das Gerät dann überhaupt mal anschlägt (was gefühlt nur bei der Hälfte der Grenzüberschreitungen passiert), dann macht er das nur einmal. Das heißt, überschreite ich den Grenzwert von 160, werde ich von dem Gerät erst wieder gewarnt, wenn ich einmalig unter 160 bin, und danach wieder drüber. Sinkt mein Wert aber nicht mehr unter 160, kann es sein dass ich die ganze Nacht über massiv zu hohe Werte habe, ohne was davon zu merken oder alarmiert zu werden.
xDrip+ kann sowas. Ist der Wert zu hoch, werde ich alarmiert. Ist er 30 oder 60 Minuten immer noch zu hoch, geht mir mein Handy erneut auf den Sack. Immer und immer wieder, bis ich das “Problem” löse. So möchte ich das auch haben, nicht eine einmalige Nachricht und dann nicht mehr.
Was mir ebenfalls aufgefallen ist: Ich bin einige Male morgens wach geworden, habe meinen Wert gemessen, dieser lag dann viel zu hoch, ich habe mich gefragt und geärgert, warum das Teil nicht alarmiert hat, und eine Minute später kam dann der Alarm. Danke. Für nichts!

Entweder oder…

Man kann einen Freestlye Libre Sensor entweder mit dem mitgelieferten Lesegerät oder mit einer Handy-App vom Hersteller starten. Nutze ich das Lesegerät, bekommt dieses auch Alarme (also manchmal, hatten wir ja gerade das Thema). Es gibt in diesem Fall keine Möglichkeit, einen Alarm auf mein Handy zu bekommen. Das Handy kann zwar per NFC auslesen, mehr aber nicht.
Starte ich den Sensor mit meinem Handy, ist das Lesegerät raus und kann dann für die Laufzeit des Sensors nicht genutzt werden. Einzige Möglichkeit ist in diesem Fall die Handy-App. Diese schmeißt dann auch die Alarme.

Die Handy-App

Nutze ich die Handy-App für meine Werte, so kann diese App alarmieren. Damit sie das kann, bekommt sie Werte von dem Sensor per Bluetooth. Möchte ich allerdings meinen Verlauf der Werte haben, muss ich das Handy wieder an den Sensor halten und die Werte (nochmal?!) per NFC auslesen. Macht irgenwie keinen Sinn, weil die Werte ja konstant am Handy ankommen.

Die Do-it-yourself Optimierung

Kommen wir nun zum technisch interessanten Teil dieses Beitrages. All die oben beschriebenen Probleme haben dazu geführt, dass ich überlegt habe, wieder mein MiaoMiao zu aktivieren bzw. die zweite Generation des Geräts zu kaufen. Beim lesen von diversen Forenbeiträgen habe ich dann allerdings mitbekommen, dass es eine bessere, günstigere und einfachere Alternative gibt.

Freestyle Libre 2 (patched)

Disclaimer

An dieser Stelle die übliche Warnung: Jeder ist für sich und sein Handeln selbst verantwortlich. Ich führe hier keine Beratung durch, sondern zeige lediglich auf, wie ich das für mich selbst gemacht habe. Ich stelle hier keine Dateien oder Apps zur Verfügung, auch nicht auf Anfrage!

Es gibt die Möglichkeit, dass man eine manipulierte Version der Freestyle Libre-App nutzt. Mit dieser manipulierten App ist es möglich, dass das Handy die Werte vom Sensor ausliest und xDrip+ diese dann abgreifen kann. Dies führt zu mehreren Vorteilen:

  • Anzeige der Messwerte in der xDrip+ App
  • Alarmierung über xDrip+
  • Kein zusätzliches Lesegerät (wie MiaoMiao oder NightRider)
  • Günstiger, da keine weitere Hardware angeschafft werden muss

Neben diesen Vorteilen gibt es natürlich auch ein paar Nachteile:

  • Die App muss selbst gepatcht und erzeugt werden
  • Man benötigt ein Linux-System (oder das WSL für Windows 10)
  • Man benötigt minimale Grundkenntnisse für dieses Linux

Hat allerdings alles geklappt, führt dies zu dem Ergebnis, dass man nur noch sein Handy mitnehmen muss, um aktuelle Werte zu bekommen. Alle Werte werden in der xDrip+ App angezeigt, die App kann alarmieren, Tendenzen und Statistiken aufzeigen usw.

Ich habe ein bisschen gebraucht, bis ich alles soweit hatte, bin aber MEGA begeistert vom Ergebnis. Kein zweiter Sensor mehr, kein Gebastel, immer aktuelle Werte auf dem Handy.

Patching der App – die manuellen Schritte

Wenn man die App selber patchen möchte, sind einige Schritte notwendig. Hier ein grober Überblick:

  • Linux installieren oder starten, falls vorhanden
  • Notwendige Pakete installieren (Java usw.)
  • Android-App herunterladen
  • App de-kompilieren
  • App patchen
  • App wieder kompilieren
  • Zertifikat erzeugen
  • App signieren
  • App installieren

Da diese Schritte, vor allem für nicht-Techniker, sehr anspruchsvoll sind, hat sich Tino Kossmann der Sache angenommen und hat ein kleines Paket an Skripten geschnürt, mit dem man alle Schritte machen lassen kann. Super einfach und sehr sehr hilfreich, vielen lieben Dank an dieser Stelle von mir 🙂

Patching der App – automatisiert per Skript

Alle benötigten Informationen finden sich auf der Github-Seite von Tino:

github.com: Anleitung zum Patchen der App “LibreLink” unter Windows

Neben der schriftlichen Anleitung hat er ebenfalls noch ein Video zur Erklärung gedreht, welches auf Youtube verfügbar ist:

youtube.com: LibreLink xDrip Patch

Ich habe die Erzeugung von der App, die ich nun seit zwei Wochen nutze, mit Hilfe von einem Ubuntu 18 durchgeführt. Ich habe eine neue VM unter Hyper-V erzeugt (würde halt auch jederzeit unter VMware, VirtualBox und anderen Lösungen funktionieren), eine Grundinstallation ohne GUI gemacht und die folgenden Befehle ausgeführt:

Info: Das alles steht auch nochmal sehr gut beschrieben auf der Github-Seite 🙂

Die Kompilierung läuft ein paar Minuten, alle Schritte werden visuell auf der Konsole ausgegeben und wenn alles klappt, liegt danach die fertige apk-Datei, gepatcht und einsatzbereit, im Unterordner APK.

Nun kann die Datei heruntergeladen und auf das Handy übertragen werden. Falls die original App noch auf dem Handy installiert ist, muss diese vorab deinstalliert werden, erst danach kann die von uns erzeugte App installiert werden. Die Installation muss explizit erlaubt werden, da eine Installation aus “unsicheren Quellen” erst einmal nicht erlaubt ist. Wird die Installation erlaubt, ist die App kurze Zeit später auf dem Handy.

Achtet unbedingt auf Google Play Protection! Dies ist eine Technik von Android, mit der Apps geprüft werden. Unsere selbst kompilierte App wird als unsicher eingestuft und es wird eine Deinstallation empfohlen. Hier muss man einmalig die App erlauben und keine Deinstallation durchführen, da sie ja sonst wieder weg wäre 🙂

Ein neuer Sensor muss her

Die Nutzung der neuen App und Übergabe der Daten funktioniert erst, wenn ihr einen neuen Freestlye Libre 2-Sensor mit der “neuen” App startet. Wie der Zufall es so wollte, muss ich ganze 12 Tage warten, bis ich die neue App installieren und ausprobieren konnte. Bereits laufende Sensoren werden nicht übernommen und können wohl nicht nachträglich aufgenommen werden. Ich habe das zwar nicht kontrolliert, kann mir das aber schon so vorstellen.

Übergabe der Daten nach xDrip+

Wird nun ein neuer Sensor angebracht und gestartet, muss dieser mit der neuen App gestartet werden. In der xDrip+ App muss als Datenquelle nun Freestlye Libre 2 (patched) ausgewählt werden. Ist diese Option bei euch nicht vorhanden, braucht ihr eine neuere Version der App. In der aktuellen stable-Version ist dies nicht enthalten, es wird eine aktuellere nightly build-Version benötigt.

Fazit

Mit Hilfe der gepatchten Libre-App bekomme ich nun konstant meinen Blutzucker-Wert angezeigt. Alle fünf Minuten wird der aktuelle Messwert angezeigt und gespeichert. Die Alarmierung funktioniert nun zuverlässig und ich habe dadurch viel besser und häufiger die Möglichkeit, aktiv einzugreifen. Dies sorgt dafür, dass ich mich häufiger im Zielkorridor aufhalte.
Das was ein Konzern leider nicht zuverlässig und gut hinbekommt, haben ein paar Menschen “mal eben” angepasst und optimiert.

Mein Dank geht raus an die fähigen Menschen, die die Software und Anleitungen bzw. Skripte kostenlos ins Internetz gestellt haben, damit alle davon profitieren können. Danke dafür!

Wie geht es weiter?

Obwohl die aktuelle Lösung in meinem Fall schon ganz cool ist, möchte ich noch mehr. Wenn mein Blutzucker-Wert sowieso alle fünf Minuten auf meinem Handy aufläuft, kann doch eigentlich das Handy auch direkt die (Omnipod-) Pumpe steuern und bei einem zu hohen Blutzucker automatisch nachregeln und Insulin abgeben.
Die Form der Automatisierung nennt man “Looping” und es gibt bereits einige Menschen im Internet, die diese Technik ausprobiert haben. Da der Freestyle Libre-Sensor allerdings nicht gut unterstützt wird, bin ich gerade dabei zu versuchen, auf den Dexcom 6-Sensor zu wechseln. Mit diesem Sensor, meiner Omnipod-Pumpe und einem Handy (was dann allerdings ein iPhone sein muss in der von mir geplanten Konfiguration) wäre dann somit ein geschlossener Kreislauf möglich. Mein primäres Ziel ist, dass bei zu hohen Werten nachts automatisch nachgeregelt wird und ich nicht mit massiv zu hohem Blutzucker wach werde und dies dann leider die halbe oder fast die ganze Nacht so war.

Sobald ich hier weiterkomme und alles, was ich dazu brauche, zusammen habe, werde ich vermutlich nochmal den ein oder anderen Artikel dazu hier schreiben. Ist, wie schon angesprochen, nicht das primäre Thema hier, aber hat schon einen ziemlich technischen Hintergrund.

Jan

Jan Kappen arbeitet sein 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Seit September 2018 ist Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.