- 2 Januar 2022
- 590
- 2.264
- E-Scooter
- Xiaomi Mi 1S
Hi Leute,
ich präsentiere nun meine bisher anspruchsvollste Mod. Sie ersetzt den Programmteil der Firmware, der für das blinkende Rücklicht verantwortlich ist vollständig durch eigenen Code. Dadurch, dass der Code für das blinkende Rücklicht ersetzt wird, ist also die Bremslicht Mod praktisch mitenthalten.
VooDooShamane war an der Mod beteiligt: er hat mich bis spät in die Nacht mit den Offsets und möglichen Werten für den Gashebel und die Bremse unterstützt und mir auch tagsüber immer wieder mit Ideen zur Problemlösung geholfen.
ReLight Mod
Die Mod besteht aus zwei Teilen: Einem Trigger und dem Programmteil (Effekt).
1) Trigger (Hook)
Beispiel: Leicht angezogene Bremse + Halb-Gas
DRV236
Offset Vorher Nachher
0x6fe 617901291ad0a179012917d090f83410012913d0 1e4e96f878129c2904d396f879123c2914d200bf
DRV304
Offset Vorher Nachher
0x6fe 6179012916d0a179012913d090f8341001290fd0 204e96f878129c2904d396f879123c2910d200bf
2) Effekt (Payload)
Um eigenen Code einzubauen, lassen sich nun die folgenden Bytes ersetzen:
DRV236
Offset Vorher
0x73a 90f843000028fad1207e401cc0b22076142804d92576607e38b100206076607e28b1bde8704000f05ab80120f6e7bde87040fff7b6bf
DRV304
Offset Vorher
0x732 90f8430000281dd1207e401cc0b22076142804d92576607e38b100206076607e28b1bde8704000f062b80120f6e7bde87040fff7babf
Nachher (beide DRV's gleich)
Beispiel 1: LTGM AKTIVIEREN
0124a0f83a5100bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bfbde87080
Beispiel 2: DPC AKTIVIEREN
0124a0f8324100bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bfbde87080
Beispiel 3: DPC + LTGM DEAKTIVIEREN
0124a0f83a41a0f8325100bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bfbde87080
Die Beispiele habe ich an meinem 1S erfolgreich getestet.
Wichtige Hinweise:
Was steht da nun in den Bytes?
Es handelt sich um handgeschriebenen ARM Assemblercode. Man kann die Bytes hier rauskopieren und in den
Erklärung zu den Beispielen oben: Beim Trigger wird zuerst die Speicheradresse von Gas + Bremse geladen. Danach wird verglichen, ob Gas + Bremse gewisse Werte überschreiten. Beim Programmteil werden die gewünschten Werte (1 oder 0) an die Adressen von LTGM + DPC geschrieben. Dort wo "00bf00bf..." steht ist übrigens noch sehr viel Platz für Code - genug für weitere Tastenkombinationen aus Gas + Bremse (Gas leicht, Bremse stark, beides leicht oder beides stark durchgezogen).
Wie geht es mit der Mod weiter?
Mir war es erstmal wichtig, gemäß der VLT Philosophie, die Informationen hier offen zu legen und eine Diskussionsgrundlage zu schaffen. Die Möglichkeiten der Mod sind sehr umfangreich. Sie kann als Grundlage für neue Mods genutzt werden. DPC/LTGM zu aktivieren oder zu deaktivieren ist lediglich ein mögliches Beispiel. Da sich selbst hierbei viele Kombinationsmöglichkeiten ergeben, bin ich mir über die Umsetzung im Web Patcher noch unsicher. Ich befürchte, dass dieser sehr schnell unübersichtlich werden könnte. Da ich gerade noch viele andere Dinge zu tun habe, werde ich für die Anpassung des Webpachters erstmal keine Zeit haben. Ihr könnt also zum Testen die Patches erstmal auf die traditionelle Art (HexEditor) einbauen - oder über mein öffentliches Patcher
Liebe Grüße - D
ich präsentiere nun meine bisher anspruchsvollste Mod. Sie ersetzt den Programmteil der Firmware, der für das blinkende Rücklicht verantwortlich ist vollständig durch eigenen Code. Dadurch, dass der Code für das blinkende Rücklicht ersetzt wird, ist also die Bremslicht Mod praktisch mitenthalten.

ReLight Mod
Die Mod besteht aus zwei Teilen: Einem Trigger und dem Programmteil (Effekt).
1) Trigger (Hook)
Beispiel: Leicht angezogene Bremse + Halb-Gas
DRV236
Offset Vorher Nachher
0x6fe 617901291ad0a179012917d090f83410012913d0 1e4e96f878129c2904d396f879123c2914d200bf
DRV304
Offset Vorher Nachher
0x6fe 6179012916d0a179012913d090f8341001290fd0 204e96f878129c2904d396f879123c2910d200bf
2) Effekt (Payload)
Um eigenen Code einzubauen, lassen sich nun die folgenden Bytes ersetzen:
DRV236
Offset Vorher
0x73a 90f843000028fad1207e401cc0b22076142804d92576607e38b100206076607e28b1bde8704000f05ab80120f6e7bde87040fff7b6bf
DRV304
Offset Vorher
0x732 90f8430000281dd1207e401cc0b22076142804d92576607e38b100206076607e28b1bde8704000f062b80120f6e7bde87040fff7babf
Nachher (beide DRV's gleich)
Beispiel 1: LTGM AKTIVIEREN
0124a0f83a5100bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bfbde87080
Beispiel 2: DPC AKTIVIEREN
0124a0f8324100bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bfbde87080
Beispiel 3: DPC + LTGM DEAKTIVIEREN
0124a0f83a41a0f8325100bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bf00bfbde87080
Die Beispiele habe ich an meinem 1S erfolgreich getestet.
Wichtige Hinweise:
- Meine Angaben sind für Vanilla DRV. Beim manuellen Patchen könnt ihr auch eine bereits gepatchte DRV nehmen. An den angegebenen Offsets dürfen sich einzelne Ausgangs-Bytes durchaus unterscheiden.
- Wenn ihr nur den ersten Teil der Mod einbaut, dann wird das Rücklicht im US Modus (GM/LTGM) blinken, wenn ihr die gewählte Tastenkombination drückt (sofern nicht schon eine Bremslicht Mod drin ist). Das ist ein schöner visueller Weg, um sich an die Mod heranzutasten.
- Wenn ihr nur den zweiten Teil der Mod einbaut, dann wird die gewählte Aktion bei Bremse / Motorbremse ausgeführt. Das ist meiner Meinung nach nicht sinnvoll. Man sollte also wenn man 2) einbaut auch 1) einbauen.
- Das Beispiel "DPC aktivieren/deaktivieren" funktioniert natürlich nur mit VLT DPC Mod, und das Beispiel "LTGM aktivieren/deaktivieren" funktioniert nur mit VLT LTGM Mod.
Was steht da nun in den Bytes?
Es handelt sich um handgeschriebenen ARM Assemblercode. Man kann die Bytes hier rauskopieren und in den
Um Links zu sehen, melde dich bitte an
eingeben, dann sieht man den Programmcode dazu.Erklärung zu den Beispielen oben: Beim Trigger wird zuerst die Speicheradresse von Gas + Bremse geladen. Danach wird verglichen, ob Gas + Bremse gewisse Werte überschreiten. Beim Programmteil werden die gewünschten Werte (1 oder 0) an die Adressen von LTGM + DPC geschrieben. Dort wo "00bf00bf..." steht ist übrigens noch sehr viel Platz für Code - genug für weitere Tastenkombinationen aus Gas + Bremse (Gas leicht, Bremse stark, beides leicht oder beides stark durchgezogen).
Wie geht es mit der Mod weiter?
Mir war es erstmal wichtig, gemäß der VLT Philosophie, die Informationen hier offen zu legen und eine Diskussionsgrundlage zu schaffen. Die Möglichkeiten der Mod sind sehr umfangreich. Sie kann als Grundlage für neue Mods genutzt werden. DPC/LTGM zu aktivieren oder zu deaktivieren ist lediglich ein mögliches Beispiel. Da sich selbst hierbei viele Kombinationsmöglichkeiten ergeben, bin ich mir über die Umsetzung im Web Patcher noch unsicher. Ich befürchte, dass dieser sehr schnell unübersichtlich werden könnte. Da ich gerade noch viele andere Dinge zu tun habe, werde ich für die Anpassung des Webpachters erstmal keine Zeit haben. Ihr könnt also zum Testen die Patches erstmal auf die traditionelle Art (HexEditor) einbauen - oder über mein öffentliches Patcher
Um Links zu sehen, melde dich bitte an
.Liebe Grüße - D
Zuletzt bearbeitet: