RP ✔️ Soflow SO4 Pro Gen 2 "Tuning" APP (SOHacks ReV2.0)

Eben bemerkt das der Thread noch garnicht angepinnt war.
Ist jetzt geändert und auch mit dem RP Tag versehen.
So sehen ihn mehr und du bekommst auch hoffentlich etwas mehr likes.

Kleiner Hinweis noch, unten in der App auf den Screenshots sehe ich den Text "This is an nice app".
"a" würde hier aber ohne n Zusatz geschrieben werden.
Das n kommt nur dran wenn das darauf bezogene Wort mit einem Umlaut beginnt. Also a, i, e, o oder u.
Ich habe den String beim letzten Update mal entfernt. War ein bisschen unnötig, aber danke, dass es dir aufgefallen ist.👍
 
  • Hilfreich!
Reaktionen: VooDooShamane
Moin
hab am GUI eine kleine Änderung gemacht, könnt ihr hier runterladen
Es kam auch die Frage auf ob man eine Zero Start Funktion einbauen kann. In der neuen Soflow App gibt es das, aber die ist in Flutter kompiliert und man kommt nicht direkt an den Source Code. Das macht es deutlich schwieriger

In der alten Soflow App habe ich Übersetzungen von Statistiken gefunden, zum Beispiel Batteriespannung, usw... Wenn ich Zeit habe, bau ich das auch noch ein

Info: bitte nicht die Android Vergrößerung oder den "Großer Text" Modus aus den Bedienungshilfen aktivieren, das zerschießt sonst das GUI
Sieht gut aus alles passt nun auf einen Google Pixel 9a
Danke für diese kleine Verbesserung :D
bis jetzt hab ich bei meinen Soflow gemerkt einige Modi nimmt er an aber bis jetzt kein Effekt
werd noch Weiter alles durch testen und freu mich auf baldige neue Funktionen <3
 

Anhänge

  • Screenshot_20250930-224414.webp
    Screenshot_20250930-224414.webp
    73,4 KB · Aufrufe: 0
  • Hilfreich!
Reaktionen: Bennq
In sachen Testen hab extra einen neuen Soflow SO4 Pro gen 1 :D
einer der nicht so halb schrott ist,
die ganzen Modi haben bei meinen keinen Effekt zumindest hab ich keinen bemerkt.
alles andere Läuft suppi naja außer Eco aber ich denk da gibt's einen Unterschied zwischen Gen 1 und 2.
ne echt gute Alternative deine App.
wenn ich mir eine Sache wünschen dürfte der Akkustand sollte eigentlich mit gesendet werden den in app sehen so wie Akku Infos wäre cool
LG
 
Hey. Du bist ja geil! App funktioniert.
Schön wäre jetzt noch, wenn man den Roller ausschaltet oder die App die Verbindung verliert, dass der Roller wieder auf "normal" gestellt wird.
Dankeschön fürs boosten.
 
  • Hilfreich!
Reaktionen: Markus55
Sag doch mal, hast du auch schon Probiert den Controller mit ARM M4 Chip auszulesen über die PIN`s auf dem Controller? Ist ein ROP drauf aber es sollte trotzdem gehen.
Ich bin vorhin etwas am Basteln gewesen und werde die Tage meinen SO3 Pro Controller Baujahr 2020 mit meinem STLink versuchen erst einmal NUR anzusprechen. Weil der ROP, wenn er drauf ist ja den Chip löscht dann.
Hast du irgendeine Erfahrung in Sachen Controller oder diesem Vorgang? Der funktioniert ja auch bei vielen anderen Scootern Problemlos. Es geht Mittlerweile ja soweit dass es Peoples gibt die einfach den Chip auslöten, diesen dann irgendwie auslesen und durch einen anderen ohne ROP dann ersetzen. Diese SOC`s sind ja CHINA Klone laut der Google KI.
 
Ich hatte eigentlich vor, die App noch etwas weiterzuentwickeln, damit auch andere Scooter damit verbunden bzw. eingestellt werden können. Die aktuelle Soflow App nervt mich nämlich ziemlich.
Momentan bin ich dabei, die neueste Version zu reverse engineeren und schaue, ob es auch für andere Modelle Codes für die Geschwindigkeitseinstellungen gibt. Falls ja, würde ich die mit einbauen.
Das Ganze ist aber recht zeitaufwendig, vor allem auch beim Testen, da ich leider nur den SO4 Pro Gen 2 hier habe.
Hast du denn nur den 4 Pro getestet bei Engeneering deiner App? Was MUSST du haben um dein Tool zu testen? Reicht dir nur ein Controller aus? Oder muss es auch zwingend das Display sein? Nur eiine kleine Bescheidene Frage. Ich denke man braucht beides aber es gibt ja auch Controller die BLE direkt verbaut haben im Controller.
Grüße und viele schöne Weihnachtstage an ALLE!
 
Hast du denn nur den 4 Pro getestet bei Engeneering deiner App? Was MUSST du haben um dein Tool zu testen? Reicht dir nur ein Controller aus? Oder muss es auch zwingend das Display sein? Nur eiine kleine Bescheidene Frage. Ich denke man braucht beides aber es gibt ja auch Controller die BLE direkt verbaut haben im Controller.
Grüße und viele schöne Weihnachtstage an ALLE!
Für die Entwicklung der App habe ich keinen SoC-Dump gemacht.
Das Ganze lief komplett über Reverse Engineering der offiziellen Soflow-App. Ich habe mir mit Ghidra die Dart-Datei vorgenommen und daraus die BLE-Setup- und Kommunikationscodes extrahiert.

Zum Testen meines Tools reicht ein Controller völlig aus.
Display ist nicht zwingend notwendig. Das Display hängt oft nur als Frontend dran.

Nach dem, was ich bisher gesehen habe, ist es so:

Das Display-Modul hat in der Regel sauber aktiviertes ROP

Beim Controller werden oft billige chinesische STM32-Klone verbaut
ROP ist zwar häufig an, aber nicht sauber implementiert und damit unter Umständen umgehbar

Wenn du dich da wirklich rantraust, wäre es mega interessant zu wissen:

was genau du probiert hast

ob ein Dump wirklich funktioniert hat

Denn wenn ein stabiler Controller-Dump möglich ist, steht einer vollwertigen Custom-Firmware im Prinzip nicht mehr viel im Weg.

Es gab wohl schon einen Erfolg:
simcrafterlol hat beim SO4 Pro einen Firmware-Dump gezogen und auch eine Custom-CFW geflasht. Genaue Anleitungen habe ich dazu leider nicht gefunden. Er hatte aber erwähnt, dass die Controller wohl eine CPU-Key-basierte Signierung nutzen; vermutlich muss Firmware korrekt signiert sein, sonst bootet sie nicht.

Ich selbst habe noch keinen Dumpversuch gemacht:

aktuell fehlt mir die Zeit

Equipment wäre da (Logic Analyzer, ST-Link etc.)

Falls du da Erfolg hast, würde ich mir das Thema SO4 definitiv auch nochmal genauer anschauen.

Wichtig noch:
Man muss extrem vorsichtig sein. Es gibt Controller, die sich sofort selbst löschen, wenn man versucht, ROP direkt zu umgehen.
Methoden wie Voltage Glitching existieren zwar, aber das ist nichts, was man "mal eben" probiert; ein Fehler und der Chip ist Schrott.
 
Kurze Info für alle, die versuchen, die App auf anderen Modellen als dem SO4 Pro Gen 2 zu nutzen:

Wenn ihr z. B. SO3, Pro Max usw. habt und versucht, euch damit über die App zu verbinden, wird das sehr wahrscheinlich nicht funktionieren. Das ist kein Bug, sondern liegt daran, dass die BLE-Codes je nach Modell unterschiedlich sind.

Wenn jemand wirklich Bock hat und sich ein bisschen mit Technik auskennt, kann man die BLE-Codes direkt aus der offiziellen Soflow-App ziehen und diese dann in SOHacks entsprechend nachimplementieren.

Ich würde dafür empfehlen, eine ältere Soflow-APK zu nehmen, da diese nicht mit Flutter kompiliert ist und sich deutlich einfacher analysieren lässt.

Ich würde das Ganze selbst auch gerne weiter implementieren, aber mir fehlt aktuell einfach die Zeit und ich habe leider auch nicht die verschiedenen Scooter hier, um das sauber zu testen, ob und wie es auf den anderen Modellen wirklich funktioniert.

Das public Repo findet ihr hier: https://github.com/Tiegertropfen119-0001/sohacks

Tools:
https://github.com/NationalSecurityAgency/ghidra (Gut für APKs; String finding usw...)

Native Soflow APK https://apkpure.com/de/soflow/com.soflowapp/download/1.12.3(Ohne compiled flutter)

APK Auslesen: https://rollerplausch.com/threads/s...ng-geheimer-tester-admin-modus-und-mehr.9459/


1766428673011.webp


Das Ganze ist auch ein gutes Beispiel von simcrafterlol, wie er damals den Test/Admin-Modus aktiviert hat.
Er beschreibt dort, wie man die APK öffnet, sich den Source anschaut und darüber an BLE-Commands kommt.

In der APK finden sich außerdem BLE-Commands für verschiedene Scooter-Modelle, die man extrahieren und anschließend in SOHacks implementieren kann. Genau darüber lassen sich dann auch andere Modelle als der SO4 Pro sauber unterstützen.
 
Also, ich habe mich jetzt mal drangewagt, den Controller auszubauen und schaue, wie weit man damit kommt. Der MCU ist wohl ein AT32F421CBT7. Mal sehen, ob dort ROP aktiv ist. Mir ist dabei eine weiße Box zwischen Controller und wahrscheinlich dem Hall-Sensor des Motors aufgefallen. Hat jemand vielleicht eine Ahnung, was das Ding macht?
Datenblatt: https://static.dajiqun.com/product-medias//artery/AT32F421K8U7/21443108-21169490.pdf


.
photo_2025-12-28_15-00-54.webp
 

Anhänge

  • photo_2025-12-28_15-01-01.webp
    photo_2025-12-28_15-01-01.webp
    44,8 KB · Aufrufe: 0
  • photo_2025-12-28_15-00-59.webp
    photo_2025-12-28_15-00-59.webp
    68,6 KB · Aufrufe: 0
  • photo_2025-12-28_15-00-57.webp
    photo_2025-12-28_15-00-57.webp
    65 KB · Aufrufe: 0
Gibt es eineBluettooth Code um Zerostart zu aktivieren, oder um die aktivierungs Speed zu reduzieren?
Muss ja nicht gleich in der App realisiert sein!