Libre 3 auf gerooteten Smartphones funktioniert!

  • Mit dem neuesten Magisk (v24) ist es nun möglich Libre 3 auf gerooteten Smartphones zum Laufen zu bringen. Getestet ist dies mit LineageOS 17.1 und Open GApps. Hier gebe ich jetzt eine kurze Anleitung wie man das macht:

    Was brauche ich dafür?

    1. Magisk v24 oder neuer
    2. Shamiko Magisk-Modul

    Was man machen muss

    1. "Verstecken" des Magisk-Recovery-Scripts. Dieses befindet sich in /system/addon.d/99-magisk.sh und sollte umbenannt werden in etwas das nicht das Wort "Magisk" entält. Die führende Zahl sollte behalten werden. (Als Anmerkung, das hilft auch bei der TK-App.)
    2. Umbenennen/Neuinstallieren des Magisk Managers mit einem zufälligen Namen, hierfür gibt es eine Option in den Magisk Manager Einstellungen.
    3. Libre 3 in den Magisk Manager Einstellungen auf die "Deny List" setzen.
    4. Ebenfalls in den Magisk Manager Einstellungen den Zygisk Modus einschalten.

    Das war's, aber hier sollte die App jetzt funktionieren, eventuell ist ein Neustart oder das Löschen der Libre 3 App-Daten erforderlich.


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

    Hintergrund


    Etwas Hintergrund zu der Sache. Wenn die App direkt beim starten abstürzt, oder beim auswählen der Broteinheiten/nach den Blutzuckereinheiten, dann ist dass ein sehr guter Indikator dass die App Root gefunden hat auf dem Smartphone und deswegen nicht startet. Früher hatte man in Magisk die Option Magisk zu verstecken mit "Magisk Hide", diese Option wurde aber in v24 entfernt, da sie teilweise, wie im Fall von Libre 3, nicht so toll funktioniert hat und auch recht stark limitiert war. Gleichzeitig mit v24 kam dafür aber der neue Zygisk-Modus hinzu. Dieser Modus erlaubt es Magisk Modulen sich direkt in den App-Prozess mitladen zu lassen, wodurch diese die Umgebung vom Prozess viel genauer und präziser beeinflussen und verändern können. Das neue Shamiko-Modul tut genau dies um eine um einiges bessere Funktionalität beim verstecken von Root zu erreichen. Dank dessen funktioniert nun die Libre 3 App auch auf gerooteten Smartphones.

  • Toll, dass es funktioniert und vielen Dank für deinen Einsatz. Ich bin zwar inzwischen nicht mehr gerooted unterwegs, aber es bieten sich so natürlich tolle neue Möglichkeiten (siehe magisk addon).

    Eröffnet dies auch die Möglichkeit besser an die Rohdaten zu kommen?

  • Eröffnet dies auch die Möglichkeit besser an die Rohdaten zu kommen?

    Schwierig zu sagen, aber sehr wahrscheinlich Ja. Die einfachste Möglichkeit an die Rohdaten zukommen wenn es nicht Echtzeit sein muss, ist immer noch LibreView, dort kann man die herunterladen (aber leider hinter einem Captcha). Ich habe vorhin auch gelesen dass man diese wohl recht gut über LibreLinkUp bekommt, in Echtzeit, aber da kenne ich mich nicht aus. Wie man aber an meinem Modul "Free Three" sieht, kann man durch Root/Magisk/XPosed sehr gut in die App hinein. Diese ist aber immer noch zum größten Teil obfusziert, also man braucht schon etwas Geduld wenn man dort etwas finden will. Zum Beispiel wo und wie der Datenspeicher ist, ist mir noch nicht untergekommen als ich die App durchgesehen habe.


    Das wäre natürlich eine tolle Sache wenn ich über das Modul nicht nur die zuletzt empfangenen Werte, sondern auch alles andere rausbekomme bzw. rausreichen kann. Aber wie gesagt, soweit bin ich noch nicht. Wenn ich so darüber nachdenke, müsste basierend auf dem Modul auch eine gepatchte Libre 3 App möglich sein, welche komplett ohne Root auskommt und dennoch die Werte genauso an Third-Party Apps sendet. Aber in dem Bereich kenne ich mich nicht so sehr aus was man da genau dann machen muss.

  • Hm, kannst du ein Backup der App (mit "adb backup") ziehen und auspacken, ist die Datenbank lesbar? (Alternativ sollte mit root auch Kopieren von /data gehen.)

    Die LL2-DB lässt sich mit sqlite3 auseinandernehmen...

  • Hm, kannst du ein Backup der App (mit "adb backup") ziehen und auspacken, ist die Datenbank lesbar? (Alternativ sollte mit root auch Kopieren von /data gehen.)

    Die LL2-DB lässt sich mit sqlite3 auseinandernehmen...

    Es gibt in der Libre3 keine sqlite-Datenbanken mehr, oder zumindest keine die ich finden konnte. Unter "databases" gibt es nur "Hilfsdatenbanken" von Google, aber unter "files" liegt eine "trident.realm" Datei welche bei mir mehrere Megabyte hat und damit ein guter Kandidat ist. Die enthält aber keinen Klartext, und ich bilde mir ein in der App gesehen zu haben dass dafür Schlüssel vom Android-System gezogen werden. Ohne jetzt weiter probiert zu haben, ich schätze die wird mit Benutzerspezifischen Schlüsseln verschlüsselt sein. Würde ich aber auch erwarten bei dem Aufwand den die betreiben um nicht auf gerooteten Smartphones oder Emulatoren zu laufen.


    In der selben Schiene, je mehr ich darüber nachdenke um so mehr bekomme ich das Gefühl das Abbott die Daten weiterverkauft, so einen Aufstand wie die machen dass niemand an die Daten in der App rankommt oder den Sensor ohne deren App verwenden kann.

  • F"trident.realm" Datei welche bei mir mehrere Megabyte hat und damit ein guter Kandidat ist. Die enthält aber keinen Klartext, und ich bilde mir ein in der App gesehen zu haben dass dafür Schlüssel vom Android-System gezogen werden.

    So etwas habe ich schon mal gesehen, bei der Contour-App, in prä-xDrip-Zeiten. Die wollte ihre eigenen Daten nicht mehr, nachdem ich das Handy neu aufsetzen musste (da half auch Titanium Backup nicht). Meine Elfe war genauso begeistert wie ich.

    Bei Dexcom stand ich noch mal wie Ochs vorm Tor. Da habe ich aber kein Backup/Restore versucht.

    Scheint zum guten Ton zu gehören, sein Zeug zu verschlüsseln, natürlich nur gegen den Mitwettbewerb :evil:

    Zu deinem letzten Absatz: Mit den Daten, die mein Libre gestern produziert hat, würde selbst A. nichts Brauchbares anstellen können, fürchte ich ;-) Das bringt mich auf eine Idee: Man könnte doch die alte LL so patchen, dass sie Müll an LV schickt... 8o

  • Die wollte ihre eigenen Daten nicht mehr, nachdem ich das Handy neu aufsetzen musste (da half auch Titanium Backup nicht). Meine Elfe war genauso begeistert wie ich.

    Bei Dexcom stand ich noch mal wie Ochs vorm Tor. Da habe ich aber kein Backup/Restore versucht.

    Die Libre 3 App hat auch im Manifest stehen dass Backups nicht erlaubt sein sollen. Was natürlich in anbetracht dessen dass man sie ohne LibreView Konto betreiben kann echt wenig Sinn macht. Ich weiß gar nicht ob es eine Möglichkeit gibt die Daten dann aus der App zu exportieren, oder ob man die einfach verliert. Wenn man ein LibreView Konto hat, wäre das ja auch nicht so schlimm, wenn die App die Daten wieder laden würde, aber das tut sie ja nicht.

    So etwas habe ich schon mal gesehen, bei der Contour-App, in prä-xDrip-Zeiten.

    Um das auszuführen, die Libre 3 App verwendet realm, ein SQLite-Ersatz welcher sehr interessant klingt. Die gesamte Datenbank dabei ist verschlüsselt, Wobei ich meine anfängliche Aussage revidieren muss, ich bin mir nicht sicher ob die Verschlüsselung durch das Android System zum Einsatz kommt oder nicht, so oder so aber egal weil verschlüsselt ist verschlüsselt und ich gehe mal schwer davon aus dass die Schlüssel nicht einfach daneben liegen.

  • Die einfachste Möglichkeit an die Rohdaten zukommen wenn es nicht Echtzeit sein muss, ist immer noch LibreView, dort kann man die herunterladen (aber leider hinter einem Captcha). Ich habe vorhin auch gelesen dass man diese wohl recht gut über LibreLinkUp bekommt, in Echtzeit, aber da kenne ich mich nicht aus.

    Falls es interessiert - hier ist mehr darüber zu lesen wie man die Werte des Libre 3 aus Libre View über Nightscout in xDrip bekommt:

    RE: BZ auf Smartwatch anzeigen

  • Eröffnet dies auch die Möglichkeit besser an die Rohdaten zu kommen?

    Nachdem mich Steve8x8 dazu gebracht hat mir das näher anzusehen, bin ich nun in der Lage in Free Three die gesamt lokale Datenbank auszulesen. Es ist nicht simpel, der Code ist nicht schön, aber es ist möglich. Die Frage ist nur was man damit jetzt macht. Ich kann zum Beispiel beim Start diese in eine SQLite unter "/sdcard/" "klonen", und dann die neuen Werte immer direkt dort hinein schreiben, aber die Frage ist dabei eben: Wozu?


    Hinzu kommt noch dass der Realm-Code zum größten Teil unkenntlich gemacht wurde, also da werden sich die Namen vermutlich mit dem nächsten Update von Libre 3 ändern, und dann ist das zerbrochen bis es sich wieder jemand ansieht und korrigiert. Aber grundsätzlich möglich.


    Quellcode gibt es in einem Pastebin, für all jene die es interessiert.

  • Fantastisch, um mal den Spitzohrigen von der NCC-1701A zu zitieren.

    Es ist also nicht nur theoretisch, sondern auch praktisch möglich, aktuelle Werte aus der App zu holen - und das auf mehrere Arten.

    Was spricht nun eigentlich noch dagegen, so etwas wie ESEL zu bauen, das die Daten nicht an die Uhr, sondern an xDrip schickt?

  • Fantastisch, um mal den Spitzohrigen von der NCC-1701A zu zitieren.

    "Faszinierend"?

    Es ist also nicht nur theoretisch, sondern auch praktisch möglich, aktuelle Werte aus der App zu holen - und das auf mehrere Arten.

    Was spricht nun eigentlich noch dagegen, so etwas wie ESEL zu bauen, das die Daten nicht an die Uhr, sondern an xDrip schickt?

    Nichts, es muss nur ich oder jemand anderes machen.

  • Peinlich... (Corona-Hirn hat wohl zugeschlagen.)


    Update:

    Ich gehe heute/morgen mal forschen, wozu habe ich Handys gesammelt (und wozu bin ich krankgeschrieben), wenn nicht für Tests wie diesen.

    Bei mir wird es wohl eher LOS18.1 und MindTheGApps (und das aktuelle Magisk 24.2) auf einem der vielen S4minis. Stay tuned...

    Einmal editiert, zuletzt von Steve8x8 ()

  • Das Update von Magisk 24.1 auf 24.2 hat das Handy in einen (wenig geeigneten) Briefbeschwerer verwandelt, außerdem fehlt seit 24.1 oder 24.2 die Möglichkeit des Umbenennens. Also zurück auf 24.0, was soll's.

    Mit LSposed und der Shadow Mistress Yuko lässt sich die L3-App tatsächlich auf dem S4mini starten und einrichten - bis zum ersten Scan, weiter komme ich erst einmal nicht. (Dass man für die Alarme aus dem normalen Ablauf raus muss, ist auch eine A.-Spezialität...)

    Merkwürdig, dass keine Standort (Bluetooth) Erlaubnis erfragt wurde (die scheint die App nicht einmal zu wollen? in den Einstellungen finde ich nichts), auch keine für Speicher. Um Batterieoptimierung scheint sich die App aber gekümmert zu haben... auch wenn sie momentan wohl eher nicht im Hintergrund läuft, so ganz ohne Sensor.

    Inzwischen habe ich auch einige Hinweise aus dem Gitter fischen können - als nächstes werde ich wohl doch versuchen, an einen (oder zwei) Testsensor(en) zu kommen. Der Termin mit der Diafee ist erst einmal in ferne Zukunft gerückt...

  • Nachtrag: Während der Experimente mit Handy #5 hat mein aktiver L2-Sensor den Kontakt zur LL2-App auf Handy #2 verloren. Weder Flugmodus noch Neustart konnten den Signalverlust beheben - der Sensor ist nun wieder von xDrip/OOP2 auf Handy #3 "gekapert" worden und läuft wieder. (Alle Smartphones nutzen die gleiche Hardware und LineageOS, letzteres in verschiedenen Versionen.)


    Korrelation oder Koinzidenz, genau kann ich das auch nicht sagen. Etwas Ähnliches hatte ich vor Monaten bei Versuchen mit Diabox, die mir einen Sensor geschrottet haben.

  • Steve8x8

    Einen Sensor schrotten? - Geht das?

    Mit OOP2 musst du doch nur den Sensor beenden, dann scannen, dann neu starten und dann nochmal scannen - dann sollte er wieder funktionieren.

  • Jensen Damals gab es OOP2 noch nicht (oder war mir nicht geläufig), heute sieht das zum Glück anders aus.

    Allein die Funktion zum Auffüllen ist Gold wert.

    Ja, diese Funktion ist der Hammer, damit habe ich in xDrip+ beim SensorStart überhaupt keine Unterbrechung mehr.

  • Mit dem neuesten Magisk (v24) ist es nun möglich Libre 3 auf gerooteten Smartphones zum Laufen zu bringen. Getestet ist dies mit LineageOS 17.1 und Open GApps. Hier gebe ich jetzt eine kurze Anleitung wie man das macht:...


    Danke für Deine Anleitung. Ohne das Magisk-Modul und die Versteckerei hat sich Libre3 schon direkt nach dem Start wieder beendet. Mit den Maßnahmen aus der Anleitung startet die App zumindest bis zum Logo und zeigt dann den Hinweis, dass man sie doch bitte aus dem Playstore installieren möge. Das ist in meinem Fall blöd, weil ich gar keinen Playstore habe. Meine aktuelle Konfiguration ist ein Xiaomi Mi Mix 2S mit aktuellem MicroG for LineageOS (also LOS 18.1 mit microG statt Google-Play-Diensten), F-Droid/Aurora und Magisk 24.2. Gibt es eine Möglichkeit Libre3 eine Playstoreverbindung vorzugaukeln?

    Einmal editiert, zuletzt von morator ()

  • Mit den Maßnahmen aus der Anleitung startet die App zumindest bis zum Logo und zeigt dann den Hinweis, dass man sie doch bitte aus dem Playstore installieren möge. Das ist in meinem Fall blöd, weil ich gar keinen Playstore habe. Meine aktuelle Konfiguration ist ein Xiaomi Mi Mix 2S mit aktuellem MicroG for LineageOS (also LOS 18.1 mit microG statt Google-Play-Diensten), F-Droid/Aurora und Magisk 24.2. Gibt es eine Möglichkeit Libre3 eine Playstoreverbindung vorzugaukeln?

    Ich habe nur LineageOS mit Open GApps. In dem Reddit Thread hatte auch jemand gefragt ob es in Kombination mit MicroG geht, habe ich aber nichts mehr gehört ob er es geschafft hatte.

  • Ich habe gestern noch etwas Zeit verbracht, um Libre3 zum laufen zu bekommen. Magisk hide und bestandene Safety Net-Prüfung reichen scheinbar nicht.


    Für Safetynet gibts hier ne schöne Anleitung: https://blog.peterge.de/safety-net-android-11-mit-microg/

    bzw. hier:

    https://forum.xda-developers.c…crog-magisk-root.4287983/


    Zusammenfassend kann man sagen dass MicroG möglichst aktuell sein sollte, dann besteht das System die Prüfung. Für Libre3 scheint das aber nicht zu reichen. Braucht man etwa noch eine Verknüpfung mit einem Googlekonto?