RP ✔️ 🔥 Firmware-Downgrade: Ninebot MAX (G30D, G30D II, G30LD) <=> [BLE1.1.7/1.1.8 & DRV1.6.13/1.7.3] 01.03.2023

GeoBot

Moderator
Teammitglied
16 Juli 2021
2.319
3.272
Liebe zum Escooter
E-Scooter
G30D II, MAX G2
Rollerplausch Downgrade G30 II Titel.png


Diese Anleitung wurde für den Ninebot MAX G30D, G30D II, G30LD geschrieben.

Firmware-Downgrade der BLE 1.1.7/1.1.8, DRV 1.6.13 und DRV 1.6.13/1.7.3 nach einem Hersteller-Update mit der Ninebot-App
Mit dieser Anleitung ist es möglich, den G30 MAX wieder downzugraden (englisch downgrade = zurückstufen).
Nach dem erfolgreichen Downgrade lässt sich mit dem Scooter beispielsweise wieder die GM-Funktion nutzen
und man kann auch wieder problemlos jede /CFW flashen.
Der Downgrade einer BLE1.1.8 erfolgt ebenfalls über die BLE1.1.7-COMPAT, sprich genau nach der selben Anleitung.

Dieses Tutorial wurde bereits Ende 2021 verfasst. Nach heutigen Erkenntnissen ist der Downgrade der BLE nicht mehr unbedingt erforderlich.

Eine DRV1.8.3 (oder je nach App dargestellt DRV1.7.13) und aufwärts lässt sich nicht mehr per App downgraden.
Diesen Downgrade kannst du nach den folgenden beiden Tutorials bewerkstelligen
9bot-Flasher / ScooterHacking ReFlasher.

WICHTIG! Beim Ninebot G30 Baujahr 2022 ist ein neuer Controllertyp (G30_New Generation_V1.1) aufgetaucht, der nicht mehr über den altbekannten STM32-Chip, sondern einen AT32-Chip verfügt. Durch das Auslesen der UUID findest du heraus, welcher Chip auf deinem ESC verbaut ist.
In der ScooterHacking Utility (SHU) verbindest du dich dazu mit deinem Scooter. Im INFO-Screen siehst du jetzt die Modellbezeichnung, die BLE-, die DRV- und die BMS-Version deines Scooters, sowie die Seriennummer, die Region und eventuell vorhandene Errorcodes. Nun drückst du mal oben rechts auf die drei Punkte und wählst dort Hardware details aus. Am Ende des nun angezeigten Textes, findest du nun die UID des Microchips auf deinem Controller.

Bei m365 downG wählt man dazu zuerst CONNECT aus und verbindet sich mit seinem Scooter. Zum Pairen wirst du wahrscheinlich aufgefordert, den Power-Button am Scooter zu drücken. Wenn das erfolgreich war, siehst du nun die Seriennummer, die DRV-, die BMS- und die BLE-Version deines Scooters.
Nun betätige mal den TOOLS Button in der App und voilà - du siehst jetzt u.a. auch deine UUID.

Hast du bei m365 downG an der 2. Stelle "FF" (Byte-Paar) oder in der SHU an der 1. Stelle das "FF", deutet das auf den alten (bisherigen) STM32 Microchip hin.

Diese Methode zum identifizieren des Mikrocontroller wurde von VooDooShamane ursprünglich für die Xiaomi Roller entwickelt, sie lässt sich jedoch auch hier hervorragend anwenden.
Der neue Artery AT32-Chip auf dem aktuellen ESC wird erst ab einer DRV-Version 1.7.0 (mom. Auslieferungszustand) und aktueller unterstützt.

NEW ESC RP.png

Zu diesem Beitrag auch bitte den Haftungsausschluss der Nutzungsbedingungen - Pkt.8 beachten!
Avoid-FW-Updates.gif

Benötigt:
  • (Android erforderlich)
  • (kann man auch direkt über die SHU laden)
  • (kann man auch direkt über die SHU laden)
Update: Die Scooter Hacking Utility (SHU) >v2.0 erkennt automatisch die restriktive Firmware und schlägt einen Downgrade vor.
Falls ihr das trotzdem von Hand erledigen wollt, folgt nun die Anleitung dazu.


Anleitung:


Zunächst einmal starten wir die Scooter Hacking Utility (im weiteren Verlauf SHU abgekürzt) auf unserem Android-Gerät.
Als nächsten Schritt verbinden wir die SHU via Bluetooth mit unserem Scooter.
Nun wählen wir im FLASH-Menü den Button "LOAD FROM REPO" aus, navigieren auf die "gepatchte" BLE117-COMPAT und flashen diese durch betätigen des "START FLASH" Buttons.

BLE117-COMPAT_ScooterHacking Utility.png

Nach erfolgreichem Flashen können wir nun wieder auf eine beliebige BLE-Version downgraden, aber ich würde einen Downgrade auf die BLE1.1.4 empfehlen.
If you upgraded to BLE117 and want to rollback, or if you want to install the update without having the downgrade capabilities disabled, use the and install our release of BLE117 from Load original > BLE > BLE117. This version can be flashed over the Ninebot-provided BLE117 and doesn't contain any flashing restriction - allowing you to flash any BLE firmware if you wish to do so. Alternatively, you can download this firmware from our repos [ | ].

The DRV173 update seems to have been pulled from the update servers before we could dump it. If you installed it: you're currently stuck until they push it again and a patched version is published.

Jetzt widmen wir uns der DRV1.7.3.
Um diese Version downgraden zu können, müssen wir zunächst die DRV1.7.3 (gepatchte DRV1.6.13) auf den Scooter bringen.
Lt. Lothean vom Scooterhacking-Team überprüft diese neue (DRV1.6.13) des Ninebot-Updates, ob die ersten 16 Bytes des gesendeten Updates einem bestimmten Muster entsprechen. Bei der gepatchten DRV1.7.3 (DRV1.6.13) wurde diese Prüfung kurzerhand wieder entfernt.

Eine DRV1.7.1 kann aber auch auf die vorherige Verwendung der App XiaoDash hinweisen.
Wenn der Downgrade nicht über den hier beschriebenen Weg funktioniert, wurde die DRV1.7.1 wahrscheinlich mit XiaoDash erzeugt.
Die XiaoDash-Firmware-Versionen verhindern, dass andere ScooterHacking-Apps diese Firmware up- oder downgraden können.
In der App hat man jedoch die Möglichkeit "Return to Stock" auszuwählen und kann so die vorhandenen Einschränkungen wieder aufheben.

ReturnToStock.png


1.7.3.png

Um diese auf den Scooter zu bekommen, wählen wir erneut im FLASH-Menü den Button "LOAD FROM REPO" aus,
navigieren auf die "gepatchte" DRV173-COMPAT und flashen diese durch betätigen des "START FLASH" Buttons.

BLE173-COMPAT_ScooterHacking Utility.png

Möglicherweise wird nun die folgende Fehlermeldung eingeblendet.
Hier hilft ein Ausschalten des Android-Devices und oder des Scooters.
Diese Neustarts so oft durchführen, bis das Flashen wieder ordnungsgemäß funktioniert.

ScooterHacking-Utility.gif


Nach erfolgreichem Flashen können wir nun auch hier wieder auf eine beliebige DRV-Version downgraden;
ich würde einen Downgrade auf die DRV1.6.3 empfehlen.

Nun sollten wir wieder alle Freiheiten genießen können, die wir vor dem "bösen" Ninebot-Update auch gehabt haben.
If you are stuck on one of these versions, there is now a solution. Open , go to Load Original > DRV > DRV173 and flash it.
This firmware version is modified to allow downgrading to previous firmware versions. After you flash it, you can install whichever DRV firmware you desire.
You can also download the individual firmware files from our repos [ | ]

As always, please avoid updating your devices using the original app if possible.

Meine Versionsnummern am G30D II sind beispielsweise:
Empfehlung.png
Auf dem G30LD befindet sich im Auslieferungszustand eine BMS1.5.8.

Zukünftig sollte man die Hersteller-Updates besser meiden, denn großartige Verbesserungen sind meistens auch nicht zu erwarten.
Im Gegenteil. Der Funktionsumfang wird oft durch die unterschiedlichen Bestimmungen in den Regionen eingeschränkt.

DRV/ESC

DRV173
1. Improve the stability of electronic brake
2. Change: when the vehicle is locked, the vehicle is still locked after 3 hours of automatic shutdown.
3. Fixed known issues and optimized user experience.
DRV163
1. Optimize firmware compatibility
2. Improve firmware stability
DRV160
1. Optimize firmware compatibility
2. Improve firmware stability
DRV154
1. To adapt to German regulations, disabled the software lock function of German models.
2. Optimized vehicle power performance.
3. Improve firmware stability
DRV151
1. Adapt to European regulations 17128, Disabled the cruise control function for European models, updated the walk mode function (the headlights or taillights cannot be turned off in walk mode), the scooter cannot be turned off when the speed is over 4 km/h.
2. New button control function of front light switch for German models.
3. Optimize braking performance and improve the stability of braking function.
4. Improve firmware stability.
DRV145
1. Optimize the experience
2. Bluetooth speaker adaption
DRV126
1. Improve the system safety of scooters

BLE

BLE117
1.Fix known problems and optimize the experience
BLE114
1. Improved the stability of Bluetooth communication
2. Optimized throttle and brake performance in some cases
3. Improved firmware stability
BLE113
1. Optimize the riding experience of scooters

BMS

BMS158
1. Fix known problems and optimize the experience.
BMS156
1. Optimize firmware compatibility.
2. Improve firmware stability.
BMS155
1. Optimize battery performance.
2. Optimize charging logic
BMS153
1. Optimize battery performance.

Viel Vergnügen beim Ausprobieren!!!

Es gibt von den Jungs von Scooterhacking auch ein Video dazu.
Hier wird der Scooter allerdings auf andere Versionsnummern downgegradet als in diesem Tutorial.


Edit: Hier mal der Weg über die SHU, um weiterhin das "German Maneuver" nutzen zu können.

GM_ScooterHacking Utility.png

N E W S
2 8 . 0 3 . 2 2
Seit heute Nacht ist es endlich wieder möglich, die Ninebot E-Serie, sowie den G30/D/D II/LD mit der Scooter Hacking Utility (SHU) downzugraden.
Das SH-Team haben wieder ganze Arbeit geleistet und eine neue Version der SHU (v2.0.3) veröffentlicht.

Downgrade DRV170.png


Die App erkennt wieder automatisch die restriktive Firmware und startet einen Downgrade auf DRV 1.6.3.

ScooterHacking Utility v2.0.3 is now available.
This release includes an out-of-box activation flow [app will detect non activated scooter and prompt you to activate it], as well as a working downgrade flow for E-series DRV273 and Max DRV170. If you don't want to risk getting stuck on a particular version in the future, get rid of the official app!

Update available immediately for APK users through the self-updater or the official download link, still pending for Play Store users. If you are still using the Play Store version, make the switch now!

[Download]

( : there are no standalone releases of the newly added downgrade methods, as they won't work with other apps that do not contain a special flashing routine. If you develop a free community app and would like the required implementation, please contact me.
 
Zuletzt bearbeitet:
Im Flash-Dialog der ScooterHacking Utility ist mittlerweile ein neuer Button hinzugekommen.
Bei Betätigung dieses Buttons soll eine eventuell vorhandene Sicherheitslücke in der Firmware ausgenutzt werden.
Wenn der Vorgang ohne Fehlermeldung vonstatten geht, steht dem späteren Downgrade nichts mehr im Weg.

Im Falle der DRV1.8.x => hilft allerdings nur noch ein Downgrade mit einem ST-Link Programmer.

Exploit_ScooterHacking Utility.png DowngradeExploit_ScooterHacking Utility.jpg

Aktueller Stand 01/2023
Jan2023_ScooterHacking Utility.jpg
 
Zuletzt bearbeitet:
Verzeihen Sie mir die Frage, aber warum ist eine Herabstufung notwendig? Überschreibt eine benutzerdefinierte Firmware die installierte Firmware sowieso nicht? Was ist auch so schlimm an der kürzlich veröffentlichten .13-Firmware?

====
Forgive me for the question but why is downgrading necessary? Won’t a custom firmware override the installed firmware anyway? Also what is so bad about the .13 firmware that was recently released?
 
Danke. Ist dies das gleiche Verfahren für den G30L?
 
Forgive me for the question but why is downgrading necessary? Won’t a custom firmware override the installed firmware anyway? Also what is so bad about the .13 firmware that was recently released?
After the stock update, the german maneuver (GM) function and flashing a CFW is no longer possible.
It's like Der Dirk Der Dirk wrote, these updates were only released to block our possiblities.
 
Zuletzt bearbeitet:
  • Hilfreich!
Reaktionen: Soldier