Free Three - Ein XPosed/LSPosed Modul mit Erweiterungen für Abbott Libre 3, Dexcom G6/G7 und mySugr.

  • Stimmt, md5 oder sha256 wären bei solchen Dingen über separate Kanäle wie diesen hier äußerst hilfreich.

    "wget" auf dem Laptop hat bisher immer funktioniert, da ich dort aber den IC nicht öffne, muss ich den Link jedesmal durch die Cloud schicken.

  • Die Einstellungen vom Modul funktionieren wahrscheinlich nicht unter Android 11 (Grund sind Änderungen in Android), daran arbeite ich gerade.


    In der Zwischenzeit, hier ist das Modul rehostet auf MEGA, für alle die mit Anonfiles Probleme haben.


    Gibt es Leute welche das Modul bereits im Einsatz haben und täglich verwenden, insbesondere in Verwendung mit xDrip? Ich, und auch ein paar andere Community Mitglieder die mich unterstützen, würden gerne wissen wie weit das für euch funktioniert.

  • Hallo Angemessener Specht 67


    Vielen Dank für deine Arbeit, ich versuche gerade die Free Three Version 1.9 auf einem gerooteten Xiaomi Poco F3 mit Custom-Rom xiaomi.eu 13.0.3 (das entspricht Android 12 SKQ1.211006.001, ausserdem Magisk 24.3 (24300) mit Shamiko v0.4.4 (106) und LSPosed Version 1.8.2 (6519) Zygisk) zum Laufen zu bringen...


    Scheitere aber die Wert in XDrip+ zu bekommen. Denke auch, die Module-Einstellungen z.B. "Broadcast to xDrip" und "Edit Notification text format" werden nicht übernommen bzw. ignoriert.


    Folgende "Fehler" und Verbesserungsvorschläge sind mir aufgefallen:

    1. xDrip+ empfängt bei mir keine Werte
    2. Bei Sensorfehler in der App (lange ausserhalb der Bluetoothreichweite) wird "Fast read value invalid: Warmup Phase" in der Notification angezeigt
    3. Ein neuer "Edit Notification text format" wird selbst nach Reboot nicht aktiv übernommen, es gilt immer noch der Default-Wert
    4. Beschreibung vom Module "Helfer-Module für the Abott Libre 3 app." die Firma schreibt sich mit Doppel-B
    5. Vllt. kann man das Datum/Zeitpunkt der Notification anpassen, das aktualisiert sich nicht. Siehe Anhang (Uhrzeit war z.B. 21:21, der letzte Wert von 21:21, aber die Notification ist 47 min alt)

    Schreib mir gerne auch ne DM, ich teste gerne Vorab-Versionen oder liefere dir noch Log-Dateien usw.


    An alle als Tipp: Mit dem JDownloader lassen sich sich die Anonfiles problemlos auch am Mac runterladen, ohne das man sich ein DMG mit Schadsoftware einhandelt.


    Mit freundlichen Grüßen Dessert

  • Scheitere aber die Wert in XDrip+ zu bekommen. Denke auch, die Module-Einstellungen z.B. "Broadcast to xDrip" und "Edit Notification text format" werden nicht übernommen bzw. ignoriert.

    Okay, ich präzisiere meine Aussage: Die Einstellungen vom Modul funktionieren wahrscheinlich nicht unter Android 11 und neuer (Grund sind Änderungen in Android), daran arbeite ich gerade.

    xDrip+ empfängt bei mir keine Werte

    Liegt daran dass die Einstellungen under Android 11+ nicht an das Modul innerhalb der Libre 3 App gesendet werden können.

    Bei Sensorfehler in der App (lange ausserhalb der Bluetoothreichweite) wird "Fast read value invalid: Warmup Phase" in der Notification angezeigt

    Das "Warmup Phase" ist in dem Zusammenhang wahrscheinlich nicht passend, das stimmt. Der empfangene Wert wurde allgemein als "Nicht brauchbar" gekennzeichnet.

    Beschreibung vom Module "Helfer-Module für the Abott Libre 3 app." die Firma schreibt sich mit Doppel-B

    Gutes Auge, korrigiere ich.

    Vllt. kann man das Datum/Zeitpunkt der Notification anpassen, das aktualisiert sich nicht. Siehe Anhang (Uhrzeit war z.B. 21:21, der letzte Wert von 21:21, aber die Notification ist 47 min alt)

    Warum sollte es auch, das zeigt den Zeitpunkt an zu welchem die Notification erstellt wurde. Also das ist so, auch bei anderen Apps welche dauerhafte Notifications haben. Ich kann mal probieren ob ich das überschreiben kann.

  • Vllt. kann man das Datum/Zeitpunkt der Notification anpassen, das aktualisiert sich nicht. Siehe Anhang (Uhrzeit war z.B. 21:21, der letzte Wert von 21:21, aber die Notification ist 47 min alt)

    Kann ich machen, damit sortiert sich die Notification immer nach oben. Das wird für alle xDrip Nutzer wahrscheinlich nicht so prickelnd sein, aber als Einstellung ist das sogar recht einfach zumachen.

  • Naja, oder auch nicht. Android sortiert die Notifications im Drawer nach etwas, aber ich kann nicht herausfinden nach was. Scheint relativ zufällig zu sein welche Reihenfolge die haben, Zeitpunkt der Notification ist es auf jeden Fall nicht immer.

  • Kein Stress wenn es nicht geht, das ist nicht so wichtig, wie der Broadcast nach XDrip ;).

    Wenn man den Zeitpunkt der Notification aktualisieren könnte bräuchte man das Datum im Text nicht mehr, daher habe ich diesen Punkt angesprochen. Evtl. ist es auch eine Eigenheit von MIUI (Xiaomi User Interface), da die Chinesen an den Notifications gegenüber dem Stock-Rom was verändert haben. Aber da kenne ich mich nicht genügend mit Android aus. Vllt. ist es bei den anderen ROMs abweichend vom Verhalten.

  • Version 1.11 - Android 11/12 Einstellungen, Generic Broadcast, kleinere Korrekturen

    Download

    Das APK des Moduls kann man wieder direkt herunterladen, entweder über Anonfiles oder MEGA.


    Auch diesmal hat wieder ein Mitglied der Loopercommunity ein praktisches Paket geschnürt mit allem was man braucht inklusive Anleitung, Anonfiles oder MEGA.

    Unterstützte App Versionen

    • 3.3.1 (Alle Sprachen)

    Android 11/12 Einstellungen

    Die Einstellungen unter Android 11 und 12 funktionieren nun.


    Als Nebeneffekt davon können die Einstellungen nun auch von Automation Apps wie Tasker und Automate gesetzt werden, zumindest bis zum App Neustart. Siehe den Hilfe-Text in der App.

    Generic Broadcast (anstatt Tasker Broadcast)

    Der Tasker Broadcast wurde entfernt und stattdessen mit einer Generic Variante ersetzt. Der neue Intent heißt nun "invalid.decentwoodpecker67.freethree.GLUCOSE_CHANGE". Alle die Tasker verwenden müssen den Intent Receiver entsprechend anpassen und den Generic Broadcast in den Einstellungen einschalten.

    mmol/L Anzeige

    Die Anzeige der mmol/L Werte ist nun immer auf eine Stelle nach dem Komma genau.

    Splash screen/Logo überspringen

    Es gibt nun eine Option um den Splash screen/das Logo beim öffnen der App zu überspringen. Die Main View braucht dennoch ein paar Sekunden (mit weißem Bildschirm) bis sie geladen wird, aber die Animation wird übersprungen.

    Notification Timestamp

    Es gibt nun die Option den Timestamp der Notification immer auf "Jetzt" setzen zu lassen.

    Fehlermeldungen des Sensors

    Die Fehlermeldungen des Sensors werden nun genauer und richtiger angezeigt.

    Feedback

    Feedback ist erbeten und erwünscht, insbesondere auch wenn es funktioniert. Dabei geht es nicht um mich, sondern um alle anderen. Es gibt im Moment viele welche sich bis Ende des Jahres entscheiden müssen wie sie weitervorgehen, ob Abbott oder Dexcom oder etwas ganz anderes. Damit ist es wichtig dass diese Leute hören ob dieser Weg für sie möglich ist oder nicht, welche Vorteile er birgt und welche Nachteile damit einherziehen. Dafür braucht man aber die Erfahrungsberichte von anderen.

  • Mal gucken wie weit das kommt.

    Abbott nutzt Profi Tools von Whitecryption um die App gegen Veränderung und Analyse zu schützen.

    ;(

  • Es dient der Erforschung der App von der am Ende Nutzer profitieren können.

    Es gibt die Möglichkeit dass eine frisch installierte LibreLink App einen angefangenen Sensor übernimmt.

    Die Daten müssen irgendwoher kommen.

    Ja, aber es funktioniert nur mit demselben Konto. Ein Konto ist mit einer account id, readerID, receiverId _libreviewAccountIdKey_ verknüpft. Die Konto-ID wird bei der Bildung eines NFC-Befehls verwendet, und wenn die Konto-ID unterschiedlich ist, führt der NFC-Befehl zu einer Fehlermeldung.


    Zum Beispiel lautet meine Account id: 2977dec2-492a-11ea-9702-0242ac110002

    Es wird in eine Zahl mit folgendem Code umgewandelt (in diesem Fall 524381581):


    public class conv {

    static private final int h(String str) {

    int length = str.length();

    int i2 = 0;

    int i3 = 0;

    while (i2 < length) {

    char charAt = str.charAt(i2);

    i2++;

    int i4 = i3 * (-2128831035);

    i3 = i4 ^ charAt;

    }

    return i3;

    }

    public static void main(String[] args) {

    System.out.println(h(args[0]));

    }

    }


    Diese wird dann zusammen mit der Zeit umgerechnet

    DPGetActivationCommandData( 8C 42 86 62 8D 6D 41 1F BC 93,1652966029,524381581)=0


    1652966029 ist die Zeit in Sekunden seit dem 1. Januar 1970.


    Der Hex-Code ist die binäre Darstellung der beiden Eingangszahlen plus das, was ein CRC (Cyclic Redundancy Check) sein wird.


    02A87A wird hinzugefügt, um einen NFC-Befehl zu erhalten.

    So zeigen Sie ihre eigenen log messages an:

    Command switchReceiver customCommand: 8C4286628D6D411FBC93

    executeNfcCommand : cmd 02A87A8C4286628D6D411FBC93

    Switch receiver response: 00A500111DB71932186B00B26A9F0A75622063


    Wenn eine andere Konto-ID verwendet wird, erhalten Sie Folgendes:


    ActivationTimeinSeconds: 1652983792 receiverId:218521253

    DPGetActivationCommandData( (output) EF 87 86 62 A5 5E 06 0D 77 38 , (input) 1652983792, (input) 218521253 )=0

    Command switchReceiver customCommand: EF878662A55E060D7738

    executeNfcCommand : cmd 02A87AEF878662A55E060D7738

    Switch receiver response: 00A501B1

    CRL Activation response parse error 389

    Activation response parse error!

    Activation error b1


    Nachdem ich AppCore.INSTANCE.setReceiverID("524381581") zu LibreAccountManager::C0(boolean z) hinzugefügt hatte, konnte ich diesen Sensor mit einem anderen Konto verwenden.

    Woher kommt diese Zahl?


    Ja, ich nutze Ihren Kommentar als Gelegenheit, um über meine eigenen Probleme zu sprechen.

    Einmal editiert, zuletzt von jka ()

  • Wird gerade in einem anderen Thread diskutiert: der viel zu laute Alarm der Libre-App. Womöglich saudoofe Frage, aber: Könnte FreeThree da vielleicht eingreifen?

  • Steve8x8 je nach Betreibssystem und Version kannst du es entweder direkt einstellen (nicht in der Libre 3 App) oder zumindest Drittanbieter Apps dazu verwenden (ich muss zB bei mir auf SoundAssistant aus dem Samsung Store zurückgreifen).

  • Vielen Dank für die Verlinkung - ich bin der Ersteller des Repos und dank dieser Linkplatzierung hier gelandet.


    Ich habe diese Github Repo eröffnet, um gemeinsam an einer Libre 3 Schnittstelle zu arbeiten oder zumindest Infos zu sammeln. Ich selber bin kein Profi im Thema reverse engineering etc, aber interessiert an einer Entwicklung und motiviert zu helfen.
    Es freut mich deshalb sehr, dass es bereits Entwicklungen gibt zum Libre 3 :). Wenn es ok ist, werde ich den Downloadlink sowie einen Link zu diesem Thread auf Github posten, damit potentielle Entwickler davon Kenntnis haben. Der bisherige stand sieht jedenfalls sehr vielversprechend aus, juhu! :thumbup: