Free Three - Ein XPosed/LSPosed Modul für Libre 3 (Aktueller Wert am Sperrbildschirm, in Widgets und mehr).

  • Beitrag für die neueste Version (1.14, 08.12.2022) - Verbesserte Oberfläche, Gadgetbridge Verbesserungen, Dexcom G7


    Beitrag für 1.13, 18.07.2022 - WakeLock, Gadgetbridge Fixes

    Beitrag für 1.12, 22.06.2022 - Charts Aussehen, Gadgetbridge

    Beitrag für 1.11, 28.04.2022 - Android 11/12 Einstellungen, Generic Broadcast, kleinere Korrekturen

    Beitrag für 1.9, 08.04.2022 - Android 11 Fix

    Beitrag für 1.8, 01.04.2022 - MicroG Support, experimentelle xDrip Anbindung, bessere Tasker/Kustom Anbindung

    Beitrag für 1.2, 26.02.2022

    Was ist es?

    "Free Three" ist ein XPosed/LSPosed Modul für die Libre 3 App:

    1. Es setzt den aktuellen Zuckerwert in die permanente Benachrichtung von Libre 3. Damit sieht man den aktuellen Wert auch am Sperrbildschirm.
    2. Es erlaubt das exportieren des aktuellen Wertes an die Kustom Apps KWGT (Widgets) und KWLP (Live Wallper), an Tasker und xDrip. Damit kann man den Wert in eigene Widgets einfügen und viel viel mehr.
    3. Es sorgt dafür dass die Libre 3 App auch auf Smartphones mit MicroG startet.

    Unterstützte App Versionen- Libre 3

    • 3.3.1 (Alle Sprachen)

    Eine Unterstützung von 3.4.0 und späteren Versionen ist derzeit nicht möglich. Die Libre 3 App erkennt das geladene LSPosed Modul und bricht den Start ab. Dies betrifft nicht nur Free Three, sondern alle XPosed/LSPosed Module. Diese Prüfung findet im nativen Teil der App statt. Bitte die 3.3.1 herunterladen (von Drittseiten) und diese verwenden bis dies nicht mehr möglich ist.

    Eventuell wird es soweit kommen dass die 3.3.1 nicht mehr verwendet werden kann. Dies kann entweder durch die LibreView Anbindung passieren, dass die Daten von LibreView nicht mehr akzeptiert werden, oder durch die Sensoren selbst, dass diese nur noch mit einer aktuellen Libre 3 App Version aktiviert werden können.

    Unterstützte App Versionen - Dexcom G7

    • 1.3.3 (Alle Sprachen)

    Was brauche ich?

    Ein gerootetes Smartphone mit Magisk und LSPosed (oder einer anderen XPosed Implementierung). Siehe mein vorheriges Thema wie man Libre 3 auf einem gerooteten Smartphones zum laufen bekommt.

    Wie installiert man es?

    Man lädt das aktuelleste APK herunter und installiert dieses. Bei der Installation wird man eventuell darauf hingewiesen dass der Autor der Software, beziehungsweise die Software selbst, unbekannt sind, das ist zu erwarten. Nach der Installation muss man in XPosed/LSPosed das Modul aktivieren, auch für die Libre 3 App selbst. In den Einstellungen des Moduls/der App muss man dann nur noch die Features einschalten welche man will. Ein erzwungener Neustart der Libre 3 App ist erforderlich damit dass neu installierte Modul geladen wird.


    Bis der aktuelle Wert angezeigt bzw. exportiert wird nach dem Neustart der App, kann bis zu einer Minute dauern, da dies nur geschieht wenn ein neuer Wert vom Sensor empfangen wird. Ebenfalls wird im Moment nur der "mg/dL" Wert exportiert.


    In Magisk darf der Modus "Enforce DenyList" nicht aktiviert sein, weil in diesem Fall alle Root-Änderungen, inklusive XPosed/LSPosed, blockiert werden.

    Notizen zur Anbindung für Kustom Apps und Tasker.

    In den Kustom Apps kann man den aktuellen Wert mit dem Code $br(libre3, glucose_in_mgdl)$ erhalten. Ebenfalls wird er Zeitstempel von diesem Wert zur Verfügung gestellt $br(libre3, local_date)$.


    In Tasker muss man einen "Intent Receiver" einrichten mit dem Wert "net.dinglisch.android.taskerm.libre3", darin kann man dann die Variablen %libre3_glucose_in_mgdl und %libre3_local_date verwenden, zum Beispiel diese dann in globale Variablen weitersetzen.

    MicroG Support

    Beim starten prüft Libre 3 ob der Play Store installiert ist, und wenn nicht beendet sich die App mit der Meldung "Bitte installieren Sie Libre 3 aus dem Google Play Store". Das Ergebnis der Play Store Prüfung wird nun überschrieben wodurch Libre 3 auch auf Systemen mit MicroG laufen sollte.

    Experimentelle xDrip Anbindung

    Es gibt nun die Möglichkeit die minutengenauen Werte direkt an xDrip zu senden. Auf xDrip Seite wird hierfür die Schnittstelle für die "gepatchte" Libre 2 App verwendet. Die Anbindung ist als experimentel zu betrachten. Ebenfalls gibt es die Möglichkeit verpasste Werte nachzusenden, "Backfilling", dies wird aber von xDrip noch nicht vollständig unterstützt. Ein Mitglied der Loopercommunity hat ein praktisches Paket geschnürt mit allem was man braucht inklusive Anleitung.


    An dieser Stelle muss ich sagen das ich mit xDrip (Projekt oder Software) nichts zu tun habe, und daher nicht für die Funktionalität die sich daraus ergibt sprechen kann. Das Modul sendet lediglich die Werte, was dann in xDrip damit passiert weiß ich nicht, ich habe nur das Senden geschrieben und ich verwende kein xDrip.

    mmol/L als Einheit

    Variablen sind alle auch mit mmol/L als Einheit verfügbar. ACHTUNG: Libre 3 arbeitet intern nur mit mg/dL, die mmol/L Werte werden vom Modul ausgerechnet und werden nicht von der Libre 3 App bereitgestellt! Diese werden anhand eines einstellbaren Faktors aus den mg/dL ausgerechnet!

    Entfernt dies den LibreView Kontenzwang?

    Nein, denn es gibt keinen Zwang. Beim einrichten der App wird man nach einem LibreView Konto gefragt, und in diesem Dialog hat man die Möglichkeit die Einrichtung zu überspringen, also Libre 3 nur Offline zu verwenden.


    Falls jemand die LibreView Anbindung entfernt (eventuell auch basierend auf meinem Modul) so muss ich klarstellen das ich damit NICHTS zu tun habe! Ich bin entschieden gegen die Enternung der LibreView Anbindung in jeglicher Hinsicht aus mehreren, unterschiedlichen Gründen!

    Gibt es eine gehackte App Variante (für nicht gerootete Smartphones)?

    Nein, und es wird so schnell auch keine geben. Beim starten wird die App/das APK überprüft ob dieses verändert wurde, diese Prüfung ist unumgänglich.

    Wie funktioniert es?

    XPosed/LSPosed ist ein Framework welches er erlaubt zusätzlichen Code in eine App dazuzuladen. Damit hat man dann von diesem Modul aus kompletten Zugriff auf die laufende App, kann dort alles verändern oder beeinflussen. Ich habe einen "recht guten Aufhänger" in der Libre 3 App gefunden um den aktuellen Wert abzugreifen. Natürlich sind große Teile der App unkenntlich und unleserlich gemacht, also es ist nicht einfach irgendetwas darin zu finden.


    Der Quellcode selbst wird im Moment aus Bequemlichkeitsgründen nicht veröffentlicht. Dieser ist aber diversen Mitgliedern der Community zugänglich, der Quellcode kann also nicht verloren gehen. Desweiteren ist das APK nicht obfusziert, was es immer erlauben sollte einen neuen Stand aufzubauen.

  • Version 1.2

    Was ist neu?

    Mehr Werte! Es werden nun mehr Werte ausgelesen und bereitgestellt. In der App selbst gibt es nun einen netten Hilfe-Text welche Werte verfügbar sind. Unter anderem sind das der Trend und der geschichtliche und der vorrausgesagte Zuckerwert. Besonders praktisch: Der Trend als Emoji-Pfeil. Diese Werte werden natürlich auch an Kustom und Tasker exportiert, wenn die Exportfunktion aktiviert ist.


    Es gibt nun die Möglichkeit den Text welcher in der permanten Notification angezeigt wird zu bearbeiten. Hierbei kann man auch jeden beliebigen Wert einsetzen lassen.


    Eine Debug-Funktion ist hinzu gekommen für alle jene die sich die Wert-Änderungen roh im Logcat ansehen wollen. Es gibt dort noch viele interessanter Felder (Temperatur?!), diese muss man sich aber mal ansehen und auswerten was sie wirklich sind bevor sie im Modul bereitgestellt werden können.

    Wo bekommt man es?

    Wie immer gibt es das APK zum herunterladen.


    Wer den Quellcode will kann diesen natürlich auch wieder haben.

    Wann gibt es mmol/l?

    Sobald ich herausgefunden habe wo die App die Umrechnung macht, denn ich würde diese gerne durch die App machen lassen um Fehler zu vermeiden.

  • Für alle die es interessiert. In dem Modul kann man auch auf die gesamte Datenbank der App zugreifen. Der Quellcode dafür findet sich in einem Pastebin zur Ansicht, dies ist allerdings leicht zerbrechlich und wird vermutlich ein Update der App nicht überstehen wenn man es so einbaut. Auch stellt sich mir noch die Frage was man dann mit diesen Daten macht. Ich kann diese hinausschreiben und auch auf Stand halten (also neue Werte ebenfalls nach schreiben), aber ich habe keinen Anwendungsfall dafür.

  • Wäre es nich sinnvoll die Entwicklung in einem Gitlab oder einem Github oder so zu zeigen für andere Entwickler zum einfacheren Zugriff oder riskiert man damit wieder dass eine der nächsten Libre App Versionen es noch schwieriger macht?

  • Wäre es nich sinnvoll die Entwicklung in einem Gitlab oder einem Github oder so zu zeigen für andere Entwickler zum einfacheren Zugriff oder riskiert man damit wieder dass eine der nächsten Libre App Versionen es noch schwieriger macht?

    Ja, vielleicht, aber macht es Sinn?


    Ja, es ist natürlich einfacher wenn ich diese Entwicklung in einem Repository zentral ablegen würde.


    Vielleicht macht man damit das Modul besser sichtbar, aber ich glaube nicht dass es Abbott interessiert von einer technischen Seite aus. Was sie machen können ist die Obfuszierung vom Quellcode noch enger zu gestalten, aber das werden sie ohnehin machen wenn es die Möglichkeit gibt. Ansonsten sehe ich nicht dass es Abbott wirklich interessieren würde wenn sie die Libre 2 Hacks schon nicht interessiert haben.


    Aber macht es Sinn angesichts dessen dass ich der Einzige bin der daran entwickelt? Dass das Modul nur mit der Deutschen App funktioniert? Dass ich sehr gut aufpassen muss weil das schwere Folgen für mich haben kann? Ich bin hier in einer recht prekären Situation mit dem Modul. Dadurch dass ich es entwickle, gebe ich zu den dekompilierten Quellcode von Abbott gelesen, die App von denen zerlegt, und Kenntnisse über deren Implementierung erlangt zu haben. Das bedeutet für mich ich kann dieses Modul niemals unter meinen Namen stellen (deswegen kann ich den Quellcode auch nicht lizenzieren) und ich müsste dafür dann eigene Konten einrichten, und das ist mir im Moment noch zu viel Aufwand für keinen Mehrwert. Schlimmer ist aber, dass ich mit dem Modul (und den daraus resultierenden Handlungen) gegen die Lizenzvereinbarung von Abbott verstoße, also es besteht auch die Möglichkeit dass die mir einfach keine Sensoren mehr liefern und den Vertrag kündigen. Was natürlich schlecht wäre, weil es hat ja einen Grund wieso ich hier die Libre 3 App hacke und der ist nicht Langeweile. Noch viel schlimmer ist dass mich eventuell dann bestimmte Arbeitnehmer nicht mehr einstellen könnten, weil wenn ich zum Beispiel zu Dexcom gehen würde, könnte Abbott zu Recht sagen "Moment, ihr arbeitet hier mit unserer Technologie, der Typ hat unsere App zerlegt, legt alles offen was ihr macht oder zahlt Lizenzgebühren". Und zu guter letzt verstoße ich hier gegen geltendes Urheber- und Lizenzrecht. Zugegeben, mit 99,9% Wahrscheinlichkeit interessiert es Abbott nicht und es wird für mich komplett ohne Folgen bleiben, aber die 0,1% sind vernichtend wenn sie eintreten.


    Meine Idee war es, den Ball eher flach zu halten. Ich habe lange mit mir gerungen ob ich das Modul überhaupt öffentlich machen soll, aus den oben genannten Gründen, und ich habe mich dafür entschieden weil ich glaube dass es eine Verbesserung der Lebensqualität für viele ist. Wenn jemand das Modul auf Github oder Gitlab hochladen will, und selbst daran entwickeln will, kann das gerne machen, das hat mit mir dann nichts mehr zu tun.

  • Also nur um das klarzustellen: Meine persönliche Meinung ist, dass das reine verbreiten und einsetzen vom Modul komplett ohne Belang ist für einzelne Personen. Also Abbott wird jetzt niemanden verklagen weil er das Modul hat oder zum Download anbietet, da gibt es keine Grundlage. Das Modul selbst enthält keinen Quellcode von Abbott und ist damit komplett unbedenklich.


    Daran zu entwickeln ist aber rechtlich gesehen nicht mehr im grauen Bereich, sondern da bewegt man sich mindestens im Vertragsbruch und in einer Verletzung vom Urheberrecht. Um es entwickeln zu können muss man zwangsläufig diese Verstöße machen, das geht nicht anders.

  • Angemessener Specht 67 Das ist eine tolle Sache und ein großer hoffnungsvoller Schritt in die Richtung, uns die Hoheit über unsere eigenen Daten zu verschaffen, die uns Abbott seit jeher vorenthält. Vielen Dank dass du es mit uns teilst!


    Meiner Meinung nach verhält sich Abbott hinsichtlich der DSGV rechtswidrig, indem eine Nutzung des Produkts für normale Kunden (nicht IT-Spezialisten) nur noch möglich ist, indem man seine Gesundheitsdaten in die Cloud des Herstellers (Libre view) hochlädt bzw. dem zustimmen muss, um die App installieren zu können. Für den Libre 3 ist ja bekanntlich kein offline-Lesegerät mehr verfügbar. Die ganze Mühe, die sich Abbott mit der Verschlüsselung macht, zeigt meines Erachtens nur eines, nämlich dass sie scharf auf die Daten und die Kontrolle deren Nutzung sind . Ich denke, eine Sammelklage über eine Verbraucherschutzorganisation gegen Abbott hätte gute Chancen auf Erfolg.


    Sicherlich ist das Abbott bewusst. Und das könnte auch der Grund dafür sein, dass sie selbst den Ball hinsichtlich rechtlicher Gegenmaßnahmen ziemlich flach halten. Schließlich existieren immer noch Anleitungen im Netz zum Patchen der Libre2-App, sogar unter dem Klarnamen des Verfassers. Sofern man die App von Abbott bzw. deren Code nicht verändert und keinen so manipulierten Code verbreitet, verstößt man nicht gegen das Urheberrecht. Deshalb musste man den Patch der Libre2-App selbst durchführen. Das Lesen von Code ist aber doch nicht verboten. Und solange man alles nur anonym veröffentlicht, dürfte man auf der sicheren Seite sein. Abbott hat bestimmt kein Interesse daran, dass das Daten-Thema in den sozialen Medien oder sogar in der Presse hochkocht.


    Zurück zum Titelthema: Eine große Hürde der Nutzung deines Moduls dürfte sein, dass es nur auf einem gerooteten Handy läuft. Die meisten Libre-Nutzer stecken nicht so tief in der Materie, dass sie das hinbekommen und brauchen einen einfacheren Weg. Dieser besteht darin, die als fertige APK-Datei verfügbare und regelmäßig gepflegte App xDrip zu nutzen.


    In xDrip ist nämlich die Übertragung der Werte in ein Widget, auf den Sperrbildschirm oder an diverse Uhren verschiedener Hersteller und noch vieles mehr bereits lange realisiert. XDrip lässt sich auch mit der Looper-App AAPS koppeln. Die xDrip-Nutzer mit Libre warten sehnsüchtig darauf, dass der Import der Daten des Libre 3 in xDrip möglich wird. Die Entwickler von xDrip arbeiten daran, sind aber hier in diesem Forum nicht oder kaum aktiv. Sie sind auf GitHub oder in der Looper Community erreichbar. Es wäre deshalb sinnvoll, wenn du dort deine Erkenntnisse mitteilen würdest, dann erhältst du wahrscheinlich mehr Feedback. Diese Entwickler haben bestimmt auch mehr Hintergrundwissen zur rechtlichen Situation, da sie sich damit beim Libre2 bereits beschäftigt haben. Ein Austausch wäre dort auch per PN möglich. Viel Erfolg und besten Dank nochmal!

    Einmal editiert, zuletzt von Kappa ()

  • Das ist eine tolle Sache und ein großer hoffnungsvoller Schritt in die Richtung, uns die Hoheit über unsere eigenen Daten zu verschaffen, die uns Abbott seit jeher vorenthält. Vielen Dank dass du es mit uns teilst!

    Freut mich, gerne.

    Meiner Meinung nach verhält sich Abbott hinsichtlich der DSGV rechtswidrig, indem eine Nutzung des Produkts für normale Kunden (nicht IT-Spezialisten) nur noch möglich ist, indem man seine Gesundheitsdaten in die Cloud des Herstellers (Libre view) hochlädt bzw. dem zustimmen muss, um die App installieren zu können. Für den Libre 3 ist ja bekanntlich kein offline-Lesegerät mehr verfügbar. Die ganze Mühe, die sich Abbott mit der Verschlüsselung macht, zeigt meines Erachtens nur eines, nämlich dass sie scharf auf die Daten und die Kontrolle deren Nutzung sind . Ich denke, eine Sammelklage über eine Verbraucherschutzorganisation gegen Abbott hätte gute Chancen auf Erfolg.

    Das ist gut möglich, so genau kenne ich die DSGV aber nicht.

    Sicherlich ist das Abbott bewusst. Und das könnte auch der Grund dafür sein, dass sie selbst den Ball hinsichtlich rechtlicher Gegenmaßnahmen ziemlich flach halten. Schließlich existieren immer noch Anleitungen im Netz zum Patchen der Libre2-App, sogar unter dem Klarnamen des Verfassers. Sofern man die App von Abbott bzw. deren Code nicht verändert und keinen so manipulierten Code verbreitet, verstößt man nicht gegen das Urheberrecht. Deshalb musste man den Patch der Libre2-App selbst durchführen.

    Das ist richtig.


    Das Lesen von Code ist aber doch nicht verboten.

    Das ist so nicht ganz richtig. Lizenz- und Urheberrechtlich darf ich nicht im Besitz von diesem Quellcode sein, damit darf ich ihn auch nicht kennen. Laut der Lizenz von Abbott darf ich die App nicht zerlegen, laut Urheberrecht habe ich keine Rechte an dieser App oder dem Quellcode. Das ist ein ziemlich grauer Bereich im Recht soweit ich weiß, aber grundsätzlich gilt dass ich keine Rechte an diesem Quellcode habe, und ihn damit nicht kennen darf. Auch ist es möglich dass man durch das Lesen vom Quellcode in den Besitz von Geschäftsgeheimnissen kommt, oder Implementierungsdetails, die man ansonsten nicht kennen würde. Dieses Wissen kann problematisch sein. Mir ist kein Fall bekannt wo das wirklich so vor Gericht argumentiert wurde, aber rein theoretisch gesehen ist dem so.

    Und solange man alles nur anonym veröffentlicht, dürfte man auf der sicheren Seite sein. Abbott hat bestimmt kein Interesse daran, dass das Daten-Thema in den sozialen Medien oder sogar in der Presse hochkocht.

    Davon gehe ich auch aus, aber riskieren wollte ich es nicht.

    Zurück zum Titelthema: Eine große Hürde der Nutzung deines Moduls dürfte sein, dass es nur auf einem gerooteten Handy läuft. Die meisten Libre-Nutzer stecken nicht so tief in der Materie, dass sie das hinbekommen und brauchen einen einfacheren Weg.

    Das ist richtig. Ich bin auch schon am probieren wie ich das Modul so umbaue das es Dual als XPosed/LSPosed Modul funktioniert, und man sich damit einen gehackte Libre 3 App bauen kann welche ohne LSPosed auskommt. Aber das dauert noch bis ich da einen guten Weg finden werde.

    Darüber hinaus ist die Übertragung der Werte in ein Widget, auf den Sperrbildschirm oder an diverse Uhren verschiedener Hersteller und noch vieles mehr bereits lange in xDrip realisiert. XDrip lässt sich auch mit der Looper-App AAPS koppeln. Die xDrip-Nutzer mit Libre warten sehnsüchtig darauf, dass der Import der Daten des Libre 3 in xDrip möglich wird. Die Entwickler von xDrip arbeiten daran, sind aber hier in diesem Forum nicht oder kaum aktiv. Sie sind auf GitHub oder in der Looper Community erreichbar. Es wäre deshalb sinnvoll, wenn du dort deine Erkenntnisse mitteilen würdest, dann erhältst du wahrscheinlich mehr Feedback. Diese Entwickler haben bestimmt auch mehr Hintergrundwissen zur rechtlichen Situation, da sie sich damit beim Libre2 bereits beschäftigt haben. Ein Austausch wäre dort auch per PN möglich. Viel Erfolg und besten Dank nochmal!

    Ich verwende xDrip nicht, aber ich habe mir schon überlegt mit denen zu reden und hier etwas anzubieten.

  • Ich verwende xDrip nicht, aber ich habe mir schon überlegt mit denen zu reden und hier etwas anzubieten.

    XDrip ist das genialste Tool für Diabetiker überhaupt – ein Meisterwerk. Schau es dir mal an, es lohnt sich. Es kann bisher mit dem Libre 1, dem Libre2, dem Dexcom und diversen Transmittern gekoppelt werden, ist also universell. Damit kann sogar der Libre kalibriert werden, enthalten sind nützliche Statistiken und mit der Vorhersage-Simulation des zukünftigen BZ-Verlaufs nach Eingabe von KH und/oder IE und den daraus resultierenden Korrekturvorschlägen kann man im Grunde sogar einen Open Loop mit Injektionen/Pen realisieren.


    Man braucht deshalb das Rad nicht neu erfinden. Die Entwickler kümmern sich auch intensiv um Anpassungen und liefern regelmäßig Updates. Was derzeit noch fehlt, ist nur die Verbindung bzw. der Datenimport des Libre 3.

  • Angemessener Specht 67 magst du dich vielleicht mal mit keencave kurzschließen? Er ist hier (glaub eher selten) vertreten, in der Looper Community "seh" ich ihn häufiger. Vielleicht könnt ihr gemeinsam etwas zaubern, was den L2-Nutzern die Angst vor dem Einstellen des Sensors nimmt :(

    Blutzucker ist die Autobahn, Gewebszucker ne Nebenstraße!

  • und wenn ich IRGENDWAS beisteuern kann, dann lass es mich wissen... ich versorg dich gerne mit Schokolade, Keksen, Chips, sonstiger Nervennahrung oder ähnliches :D (mein 3er kam heute an, der macht sich am Montag auf den Weg zu keencave, den kann ich dir leider nicht mehr spenden... ich kauf dir aber einen, wenn das hilft)

    Blutzucker ist die Autobahn, Gewebszucker ne Nebenstraße!

  • Das Konzept klingt gut.

    Ich finde es ist inzwischen deutlich einfacher ein Gerät zu rooten als sich mit dem Patchen der Grundanwendung zu befassen.

    Da ließe sich sicher einiges was in den offiziellen Apps fehlt nachziehen.

    Vielleicht findet man ja auch eine Möglichkeit das Konzept auf den Vorgänger zu übertragen und die zahlreichen 2er Modelle weltweit mit Dingen zu verfeinern.

    Scannen wenn die Anwendung keinen Fokus hat oder Auslesen der Werte die über BT reinkommen ohne zu scannen ;)

    Ach seufz, da wäre so viel mehr machbar wenn der Hersteller sich nicht auf die Basics beschränkte.

  • Wenn du dort liest hat Keencave schon eine Lösung für Leute mit Root aus unerwarteter Ecke für "bald" zum Test versprochen :)