Das Gerät verwendet einen RTL8197DN-Chipsatz mit einem Big-Endian MIPS-Befehlssatz. Nach meiner Forschung scheint der tatsächliche MIPS -Kern im Inneren Lexra zu sein (zu verifizieren).
Drücken Sie WPS und setzen gleichzeitig während des Bootloadermodus ein. Der Bootloader bietet eine einfache Befehlsschnittstelle über UART und ermöglicht das Hochladen von Updates über TFTP (siehe ./upload_update.sh ). Der Bootloader wird automatisch eingegeben, wenn das Booten fehlschlägt (auch als Wiederherstellungsmodus).
Wenn ein Update über TFTP hochgeladen wird, wird es unter der Adresse 0x80500000 in RAM geladen. Wenn es sich bei der Datei um eine ordnungsgemäße Aktualisierungsdatei handelt, beginnt das Blinken automatisch, andernfalls bleibt die Datei nur im RAM und kann z. B. mit dem Befehl FLW manuell geblitzt werden.
Bestätigte Arbeitsbefehle:
Das Gerät enthält einen UART -Header mit Bootloader -Nachrichten und Linux -Shell. 38400 Baud
Benutzername: Root -Passwort: Was auch immer als Administratorkennwort für das Webpanel konfiguriert ist (Standard: Admin.
Alles große Endian. Siehe ./Check_update.py für ein Skript, das die Aktualisierungsdateien analysiert, und ./Make_Header.py für ein Skript, das einen Update -Header an eine Rohbinärdatei anfährt
Die Aktualisierungsdatei wird aus den folgenden Blöcken zusammengestellt, die zusammen verkettet wurden:
| Offset | Größe | Beschreibung |
|---|---|---|
| 0 | 4 | Dateityp-siehe https://github.com/jameshilliard/wecb-vz--Gpl/blob/master/rtl819x/bootcode/boot/init/rtk.h für gültige Typen. Das Gerät, das wir nur für Kernel und "R6CR" für RootFs (und möglicherweise "Boot" für den Bootloader verwenden?) |
| 4 | 4 | Laden Sie die Adresse im RAM (nur für Kernelbild verwendet, so scheint es?) |
| 8 | 4 | Adresse im Flash -Speicher |
| 12 | 4 | Datenlänge |
| 16 | * | Daten |
Die Daten werden überprüft - die 16 -Bit -Bigendian -Summe aller Bytes muss 0x0000 sein (es sei denn, Sie blinken Webdateien -Partition, die dieses Gerät nicht hat - in diesem Fall ist die Prüfsumme 8 -Bit). Dies wird normalerweise durch Anhängen von zwei Bytes am Ende erreicht.
Wenn der Bootloader versucht, zuerst ~ 4 hartcodierte Adressen zu laden, sucht er den gesamten Blitz nach einer Signatur, die darauf hinweist, dass das Flash -Layout auf verschiedenen Geräten unterschiedlich sein kann. Die Daten haben eine identische Überprüfungsüberprüfung bei den obigen Aktualisierungsdateien.
Siehe ./split_img.sh
| Startadresse | Endadresse | Kopfball | Beschreibung |
|---|---|---|---|
| 0x00000000 | 0x00006000 | - - | Bootloader -Code |
| 0x00006000 | 0x00008000 | H601 (?) | Hardwarekonfiguration (MAC -Adresse usw.) |
| 0x00008000 | 0x00010000 | Compds (?) | Standardkonfiguration |
| 0x00010000 | 0x00018000 | Compcs (?) | Aktuelle Konfiguration |
| 0x00018000 | 0x00138000 | Aktualisieren Sie den Header für CR6C | Linux -Kernel, vorangestellt mit einem Header, der mit dem Update -Header -Format identisch ist |
| 0x00138000 | 0x00327002 | Squashfs -Dateisystemheader, beginnend mit HSQs | Root -Dateisystem. Die letzten beiden Bytes werden für die Prüfsumme hinzugefügt. |
| 0x00327002 | 0x00400000 | - - | 0xff 0xff 0xff 0xff ... |