simcraftlol

Content-Creator
16 Oktober 2022
105
439
E-Scooter
Soflow SO3 Gen 2
-- FUNKTIONIERT AKTUELL NUR MIT SO4 PRO, SO4, SO3 PRO UND SO3! KEIN SO6, KEIN SO ONE ODER IRGENDWAS ANDERES --
ES WIRD AN KEINER SO ONE LÖSUNG AKTUELL GEARBEITET. Soflow weiß von dem thread und hat die lücken in den neuen Scooter (so one) gefixt, also hört auf zu fragen, ich hab kein so one sowieso --


Moin Willkommen im soflow reversing Thread!
In diesem Thread geht es um soflow firmware und die app,
Ich habe sehr viel erfahrung mit Java, Javascript and android apps Ich habe mir nun die soflow app und die firmware ganz genau angeguckt.
Ich habe viele entdeckungen gemacht, zum beispiel wie man den geheimen "tester" modus in der app aktiviert, sowie viele andere interesante Funktionen zb die kommunikation.
Hier ist die originale apk die benutzt worden ist: Download SoFlow APK - 1.12.3
Ich bin außerdem gerade dabei eine eigene verbesserte soflow app zu schreiben mit tuning optionen und firmware patching was die akku leistung verbessert und den scooter schneller macht (noch nicht veröffentlicht)
Hier werden außerdem tutorials und info über das soflow reversing gemacht, sozusagen ein "blog".

--- Tuning und steuerung der soflow Scooter über Serial Bluetooth Terminal, ble codes für die kommunikation ---

Werde ein Video Tutorial machen wie man die BLE codes von der App auslesen kann, entschlüsseln kann, wie man versteckte codes findet, und wie man sie am scooter ausführen kann, dann könnt ihr selber auch ein bisschen lernen und Rumexpertentieren.

Hier die aktuellen BLE codes für SO3 Gen 1/2, SO3 PRO, SO4 Gen 1/2/3 undPRO Gen 1/2:
CSS:
SO3 Gen 1/2 und SO3 Pro


SecretCode: 5A

Connect: D707A05A00012
Lock: D707A25A00014
Unlock: D707A25A00003
ECO Mode: D707A45A00005
NORMAL Mode: D707A45A00016
SPORT Mode: D707A25A00027
Speed Unit (KM/H): D707AB5A0000C
Speed Unit (MP/H): D707AB5A0001D
27 Kmh: D707A95A0010e18



SO4 Gen1/2/3 und SO4 Pro Gen 1 und Gen 2

SecretCode: 00
Connect: D706A60001AD
Lock: D707A0000101A9
Unlock: D707A0000301AB
ECO Mode: D707A45A00005
NORMAL Mode: D706A30001AA
SPORT Mode: D706A30002AB
TEST Mode (keine ahnung was das macht): D706A30003AC
21 Kmh: D707A900019a4B
22 Kmh: D707A90000dc8C
27 Kmh: D707A900010eBF
30 Kmh: D707A900012cDD


So benutzt man die codes:
Als erstes lädst du dir die "Serial Bluetooth Terminal" app aus dem playstore, nachdem du sie runtergeladen hast, gehst du in die Einstellungen, unter dem "send" tab stellst du den edit auf HEX , dann unter devices den scooter auswählen, wenn ein Haufen grüner text kommt ist er verbunden, dann einfach den Code in der textbox unten eingeben und auf senden drücken.

Screenshot_2024-04-20-16-45-39-531_de.kai_morich.serial_bluetooth_terminal-edit.jpg


--- Der Tester Modus in der 1.12.3 ---


Hier ist das tutorial für den Tester Modus:


Um den tester modus zu aktivieren, müsst ihr die soflow app erstmal entpacken, das geht am besten mit diesem tool: AndnixSH/APKToolGUI: GUI for apktool, signapk, zipalign and baksmali utilities.
Danach sucht ihr nach der datei namens "index.android.bundle", geht dann zu Unminify JS, CSS, HTML, JSON and XML Code um den code besser lesbar zu machen.
Öffnet die datei in Visual Studio code oder in irgend einem anderen text editor

Ändert diesen code in index.android.bundle ab von:

1689256270393.png


Zu dem:


1689256363049.png


Dadurch wird immer "true" für den "userIsTester" check returned, dann werden alle versteckte tester/admin funktionen freigeschalten!
Dann compiled ihr die apk mit dem tool wieder, sie wird automatisch signiert, danach aufs handy ziehen und installieren!

WICHTIG: Ihr müsst euch über in der app email anmelden.

Ich werde die app weiterhin erkunden und schauen ob ich noch mehr finde!
Im anhang findet ihr eine breits von mir modifizierte version der apk.
Viel spaß!

hier noch ein screenshot der app im tester modus
Screenshot_2023-07-13-16-13-52-516_com.soflowapp.jpg

Liebe grüße,
Sim

Neuste gepachte Soflow App
--> Hier <--
 
Zuletzt bearbeitet:
19 September 2020
281
415
E-Scooter
Legend "Lite"
Lohnenswert wäre hier das Interface zum Roller, also was dem Scooter durch die App kommandiert wird, um die Geschwindigkeit einzustellen. Dann könnte man App-unabhängig werden wie bei Xiaomi.

Client side authentication in 2023? Erinnert mich an einen gewissen deutschen Heizmixer, wo die ganze zahlungspflichtige Rezeptedatenbank als JSON-Datei online war/ist...
 

simcraftlol

Content-Creator
16 Oktober 2022
105
439
E-Scooter
Soflow SO3 Gen 2
also was dem Scooter durch die App kommandiert wird
Was genau die app an den roller schickt kann man ganz einfach herraus finden, hierbei wird writeCommand genutzt, alle commands sind auch im code vorhanden
Paar beispiele:

Javascript:
SetFlowMile: {
            type: "CMD_SET_FLOW_MILE",
            cmd: "B5",
            length: "07"
        },
        SetFlowMileFeedback: {
            type: "CMD_SET_FLOW_MILE_FEEDBACK",
            cmd: "B5"
        },
        SetMaxSpeed: {
            type: "CMD_SET_MAX_SPEED",
            cmd: "A9",
            length: "07"
        },
 
Zuletzt bearbeitet:
  • Hilfreich!
Reaktionen: Skipper36
2 Mai 2023
11
16
E-Scooter
Soflow S04 Pro
Moin!
Ich habe sehr viel erfahrung mit Java, Javascript and android apps Ich habe mir nun die soflow app ganz genau angeguckt.
Ich habe viele entdeckungen gemacht, zum beispiel wie man den geheimen "tester" modus in der app aktiviert, sowie viele andere interesante Funktionen.
Hier ist die originale apk die benutzt worden ist: Download SoFlow APK - 1.12.3



Hier ist das tutorial für den Tester Modus:


Um den tester modus zu aktivieren, müsst ihr die soflow app erstmal entpacken, das geht am besten mit diesem tool: AndnixSH/APKToolGUI: GUI for apktool, signapk, zipalign and baksmali utilities.
Danach sucht ihr nach der datei namens "index.android.bundle", geht dann zu Unminify JS, CSS, HTML, JSON and XML Code um den code besser lesbar zu machen.
Öffnet die datei in Visual Studio code oder in irgend einem anderen text editor

Ändert diesen code in index.android.bundle ab von:

1689256270393.png


Zu dem:


1689256363049.png


Dadurch wird immer "true" für den "userIsTester" check returned, dann werden alle versteckte tester/admin funktionen freigeschalten!
Dann compiled ihr die apk mit dem tool wieder, sie wird automatisch signiert, danach aufs handy ziehen und installieren!

WICHTIG: Ihr müsst euch über in der app email anmelden.

Ich werde die app weiterhin erkunden und schauen ob ich noch mehr finde!
Im anhang findet ihr eine breits von mir modifizierte version der apk.
Viel spaß!

hier noch ein screenshot der app im tester modus
Anhang anzeigen 51240
Liebe grüße,
Sim

Mod Edit:
Anhang entfernt.
Apk File bitte extern verlinken.

Erstmal großes Lob von mir, super Arbeit.
So kann man MaxSpeedModifier natürlich auch freischalten.
Ich habe damals den Code nach "Tester" durchsucht und dachte dann, den Tester Mode zu erzwingen lohnt sich nicht, da zu wenig Funktionen damit freigeschaltet werden.
Diese Cockpit Anzeige ist jedoch schon interessant.
Der Soflow S03 hat scheinbar nur einen 36V Akku.
D.h. er hat einen anderen Controller und anderen Motor als der S04. Evtl. reagiert er deshalb nicht auf MaxSpeedModifier
 

simcraftlol

Content-Creator
16 Oktober 2022
105
439
E-Scooter
Soflow SO3 Gen 2
Erstmal großes Lob von mir, super Arbeit.
So kann man MaxSpeedModifier natürlich auch freischalten.
Ich habe damals den Code nach "Tester" durchsucht und dachte dann, den Tester Mode zu erzwingen lohnt sich nicht, da zu wenig Funktionen damit freigeschaltet werden.
Diese Cockpit Anzeige ist jedoch schon interessant.
Der Soflow S03 hat scheinbar nur einen 36V Akku.
D.h. er hat einen anderen Controller und anderen Motor als der S04. Evtl. reagiert er deshalb nicht auf MaxSpeedModifier
Das Cockpit zeigt 40-41V jetzt an, trotzdem tut sich nichts, jedoch funktioniert das ganze bei anderen Leuten mit genau dem gleichen scooter und den gleichen Daten im Cockpit
Ergänzung: ( )

Gerade eine weitere Entdeckung gemacht, es gibt auch einen Tester Modus in der neusten App Version (2.4) da diese aber vollständig aus einem mix von Java, kotlin und flutter geschrieben ist, ist es ein bisschen aufwändiger den Tester Check raus zu Patchen. wieso auch immer soflow immer noch die App die den Tester Modus im Code hat öffentlich in den Playstore stellt
 
Zuletzt bearbeitet:
  • Hilfreich!
Reaktionen: VooDooShamane

simcraftlol

Content-Creator
16 Oktober 2022
105
439
E-Scooter
Soflow SO3 Gen 2
Es funktioniert nur der Wert 27 mit joscooter's APK. Deine hab ich noch nicht ausprobiert.
Liegt nicht an der APK, ich habe das ganze auch in der 1.7.6 schon probiert. Es liegt am scooter, habe die firmware runtergezogen, und wie schon vermutet, gibt es die speed Funktion zumindest in meiner firmware garnicht mehr. Die MaxSpeed variabel ist wie es aussieht in den neusten gen 2 Modellen hardcoded. Und kann nicht über App bearbeitet werden.
 
19 September 2020
281
415
E-Scooter
Legend "Lite"
Mit abstand das highlight
Sowas wäre mir doch zu heiß kundzutun, je nachdem was man damit anstellen kann. Wenn nur Client-side betroffen ist, dann lass die Sau raus, wenn das einen anderen Computer/Server (von SoFlow) beeinflusst, Finger weg, da kann es Ärger geben.
Ich bin nicht in dieser App drin und habe jetzt auch kein so großes Interesse, denn mein Scooter fährt ganz ohne App, hat aber ebenfalls "undokumentierte Kommandos".
Klar, Softwaresicherheit ist immer wieder für einen Schmunzel gut, aber manche Dinge teilt man dem Hersteller erst mal mit und sackt ggf. eine Prämie ein, dann kommt die Community mit etwas Zeitabstand dran.
 
  • Hilfreich!
Reaktionen: simcraftlol

simcraftlol

Content-Creator
16 Oktober 2022
105
439
E-Scooter
Soflow SO3 Gen 2
Sowas wäre mir doch zu heiß kundzutun, je nachdem was man damit anstellen kann. Wenn nur Client-side betroffen ist, dann lass die Sau raus, wenn das einen anderen Computer/Server (von SoFlow) beeinflusst, Finger weg, da kann es Ärger geben.
Ich bin nicht in dieser App drin und habe jetzt auch kein so großes Interesse, denn mein Scooter fährt ganz ohne App, hat aber ebenfalls "undokumentierte Kommandos".
Klar, Softwaresicherheit ist immer wieder für einen Schmunzel gut, aber manche Dinge teilt man dem Hersteller erst mal mit und sackt ggf. eine Prämie ein, dann kommt die Community mit etwas Zeitabstand dran.
Hierbei geht es nur um das passwort was benutzt wird für die verbindung zwischen scooter und app, nichts mit server, dieses passwort tut nur beiweisen das es jetzt möglich ist, eine eigene app zu schreiben die man mit dem scooter verbinden kann, also alles im grünen bereich mein lieber
 

simcraftlol

Content-Creator
16 Oktober 2022
105
439
E-Scooter
Soflow SO3 Gen 2
Moin, wollte euch nur Mal Mitteilen das ich jetzt an einer eigenen Soflow App arbeite, die viel stabiler, zuverlässiger und mehr Funktionen hat als die müll App von Soflow, habe es bereits hinbekommen erfolgreich eine Verbindung mit den Scooter herzustellen!
Ich werde außerdem noch ein paar Updates zu der modifizierten Soflow App rausbringen, da ich noch mehr nützliche versteckte Funktionen gefunden habe
 
30 April 2023
15
2
E-Scooter
SoFlow SO4 Pro Gen1
Moin, wollte euch nur Mal Mitteilen das ich jetzt an einer eigenen Soflow App arbeite, die viel stabiler, zuverlässiger und mehr Funktionen hat als die müll App von Soflow, habe es bereits hinbekommen erfolgreich eine Verbindung mit den Scooter herzustellen!
Das hört sich sehr gut an, bin mal gespannt.

Hast du das mit der noauth inkl. Geschwindigkeitsanpassung schon probiert?

Oder kommt das in deine eigene App?
 
20 Juni 2023
11
4
LG
E-Scooter
G30D, SO1p, SO3²
Moin, wollte euch nur Mal Mitteilen das ich jetzt an einer eigenen Soflow App arbeite, die viel stabiler, zuverlässiger und mehr Funktionen hat als die müll App von Soflow, habe es bereits hinbekommen erfolgreich eine Verbindung mit den Scooter herzustellen!
Ich werde außerdem noch ein paar Updates zu der modifizierten Soflow App rausbringen, da ich noch mehr nützliche versteckte Funktionen gefunden habe
Falls du noch ein Tester brauchst ✋️ habe zwei SoFlow's hier
 
30 Juni 2023
2
0
E-Scooter
Soflow S04 Pro gen2
Ja, das liegt nämlich nicht am Roller, der sendet die ganze Zeit die neuen Akku Daten, aber die App fängt sie nicht die ganze Zeit ab, es liegt einzig und allein an der Soflow app
Hatte ich mir schon gedacht, vielleicht kann man da irgendwas am Script nachbessern, das die App öfters abfragt oder so. Soflow ist ja mittlerweile dabei die App endlich nachzubessern, sprich Performance etc. Doch das Thema Akku interessiert denen wohl so überhaupt nicht.