Xiaomi Gateway (EU-Version - Lumi.gateway.mieu01) gehackt

Xiaomi Zigbee Gateway Hack

In diesem Artikel möchte ich Ihnen meine Best Practices und Erfolge beim Parsen des Xiaomi Gateways (Version mit Euro-Plug mit I take.ru) mitteilen. Ich werde Ihnen erklären, wie Sie alternative Software darauf installieren, wie Sie ein Gateway mit einer gelöschten Software wiederherstellen und sogar ein Gateway mit einem gelöschten U-Boot wiederbeleben.

--------- VIELE BILDER -------------



Zunächst erkläre ich Ihnen, wie Sie eine Verbindung zur Gateway-Karte herstellen und den Root erhalten.

Zunächst einige Details zum Gateway.

Dieser Artikel beschreibt die Version des Gateways, das auf dem imx6ull- Prozessor basiert .

Einige technische Daten der Platine:

  • Wifi RTL8723BS - der Treiber davon wird aus irgendeinem Grund separat geladen.
  • CPU IMX6ULL
  • RAM 256 mb
  • ROM 256 mb
  • ZIgbee-Modul basierend auf JN5169.

Auf der Karte werden die Service-Groschen P2 und P4 angezeigt. Idealerweise werden sie unter den Pogopins hergestellt, sind aber leichter zu löten.

P2 ist Wart 0 des Prozessors, auf dem alle Serviceinformationen angezeigt werden, das Uboot-Bootlog und die Systemverwaltung. Sie können jeden USB-Uart-Adapter verwenden.

P4 - USB OTG, mit dem Firmware auf nand hochgeladen wird. (Als vollwertiges OTG konnte ich es bis zum Ende nicht starten, wenn es verbunden war, das Gerät wird erkannt, aber anscheinend fehlt etwas anderes).



Die chinesische USB-Adapterplatine ist ideal für die Spitznamen P4 geeignet.



Nachdem alles gelötet und verbunden ist, müssen Sie zuerst root werden.

Ich habe gemäß dieser Anweisung (Link zum Handbuch) gearbeitet, aber mit einer kleinen Klarstellung nach Punkt 5 müssen Sie den Startbefehl eingebenAndernfalls sitzt das System und wartet auf einen Befehl. Die Anweisungen wurden wahrscheinlich in der Hoffnung geschrieben, dass jeder Linux versteht.

Aus irgendeinem Grund wurde der SSH-Server nicht gemäß den Anweisungen eingeschaltet und nur durch manuelles Starten des Befehls zum Starten von /etc/init.d/dropbear start eingeschaltet.

Im nächsten Schritt, nach Erhalt des Stammverzeichnisses, kopierte ich den Inhalt des Systems mit WinScp (wir wählen den SCP-Modus beim Erstellen der Verbindung).

Außerdem müssen Sie das gesamte System sichern, falls die Experimente zu traurigen Konsequenzen führen (wie ich, aber ich habe nicht gesichert). Der

Flash-Speicher des Gateways ist in vier Abschnitte unterteilt.



Wie sich herausstellte, gibt es auch nicht viel freien Speicherplatz, während im Speicher viele verschiedene doppelte Dateien vorhanden sind.



Nachdem ich ein paar Stunden gespielt hatte, änderte ich etwas in der Software und das Gateway wurde nicht mehr geladen :)

Nun wollen wir herausfinden, wie wir dieses Stück Eisen wiederbeleben und alles damit füllen können.
Führen Sie Aktionen nur aus, wenn Sie einen Stein haben!


Der Imx6ULL-Prozessor enthält alle Informationen in offener Form. Alle Datenkarten und Referenzhandbücher sind nach der Registrierung auf der Website des Herstellers verfügbar.

U-Boot wurde immer noch auf mich geladen ... Aber während ich versuchte, mich zu erholen, habe ich versehentlich einen zusätzlichen Befehl kopiert und das Nand vollständig gelöscht. Und U-Boot war, wie sich herausstellte, in Nanda. Und er hat einen Ziegelstein bekommen.

Der Prozessor unterstützt verschiedene Startmodi. Im Referenzhandbuch werden alle beschrieben.



Die Entwicklungsplatinen haben normalerweise Schalter, aber es gibt nichts Vergleichbares. Das Datenblatt beschreibt, um welche Art von Prozessor es sich handelt.



Und dann machten die Chinesen auch ein sehr schönes Geschenk. Sie brachten sie an einen sehr bequemen Ort und hätten sie fast signiert.)

Auf der Platine neben dem Prozessor sind zwei Widerstände gelötet, an denen die Boot-Mode-Pins gerade passen.



Diese beiden Widerstände sind nur Schalter für den Startmodus. Standardmäßig ist sie auf nand eingestellt. Wenn Sie sie jedoch jeweils zur Seite verschieben, erhalten Sie den seriellen Startmodus.

Ich habe mein Gateway in den seriellen Startmodus versetzt. In gewisser Weise ist dieser Modus bequemer, um verschiedene Firmware zu testen.

Zum Hochladen der Firmware wird ein proprietäres Dienstprogramm von NXP mfgtools verwendet. Das einzige, was darin enthalten ist, ist die Erstellung eines Profils für den Prozessor.

Laden Sie mfgtools herunter. Das Archiv ist bereits vorbereitete Version mit allen notwendigen Einstellungen.

Wir verbinden das Gateway über USB. Im seriellen Startmodus versucht das Gateway, die Firmware über die USB-Schnittstelle herunterzuladen, und ein neues HID-Gerät wird auf dem Computer angezeigt.

Mfgtools informiert Sie wiederum darüber, dass ein neues Gerät angezeigt wird.



Manchmal sieht der Computer es nicht, mit was er verbunden ist kann ich nicht sagen.

Nachdem das Dienstprogramm es gesehen hat, klicken Sie auf Start, und der Download der Firmware beginnt.
Das Dienstprogramm formatiert das nand und überflutet das neue ubut, den neuen Kernel, dtb und rootfs. Die Rootfs im Archiv wurden von einem Freund Aleksandr Faronov zusammengestellt, der einen sauberen Linux-Build auf Yocto zusammenstellte. Die Abschnitte U-Boot, Kernel und DTB wurden aus der nativen Firmware des Gateways entfernt.

In dieser Linux-Assembly wird nur ein sauberes System gestartet, es wird nichts mehr geben (zigby funktioniert auch noch nicht ).

Nachdem das Dienstprogramm in meinem Fall funktioniert, wird das Gateway nichts tun und auch laden, da wir den Prozessor im seriellen Startmodus zurückrufen.

Daher muss ihm ein bootfähiges U-Boot-Image zugewiesen werden. Im Archiv mit mfgtools gibt es ein zusätzliches Dienstprogramm uuu, das das U-Boot-Laden im Ram des Boards durchführt. Gehen wir zu dem Ordner, der es enthält.
Wir schließen mfgtools und verbinden das Gateway wieder mit einem neuen. Das HID-Gerät sollte erneut erkannt werden. Danach führen wir den Befehl aus.

uuu u-boot-small.imx

Das Board wird geladen, aber da es keine Umgebung hat, wird es nach dem Laden von U-Boot aufstehen. In der Gateway-Konsole führen wir zwei Befehle aus und registrieren ENV zum Laden.

setenv bootargs 'console=ttymxc0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs cma=96M mtdparts=gpmi-nand:3m(boot),7m(kernel),1m(dtb),-(rootfs)'

und starten Sie den Boot- Boot , das Gateway wird von Nanda und von der von uns hochgeladenen Firmware geladen.



Im Großen und Ganzen ist das alles. In mfgtools im Ordner \ Profiles \ Linux \ OS Firmware \ files befinden sich alle Firmware-Dateien, durch die Sie jedes kompatible System laden können. Ich habe versucht, openwrt herunterzuladen.



Das System wird geladen, aber ich habe immer noch nicht herausgefunden, wie ich den richtigen Kern einsetzen und wo ich ihn bekommen kann.

Ich hoffe, dass wir durch gemeinsame Anstrengungen dieses Gateway weiterhin zu seiner logischen Schlussfolgerung bringen können.)
Sicherung der Gateway-Verzeichnisse . Telegramm zur Diskussion .

All Articles