Odys Loox/Xpress - Rooten und Image bearbeiten!

  • 279 Antworten
  • Neuester Beitrag
Diskutiere Odys Loox/Xpress - Rooten und Image bearbeiten! im Root / Hacking / Modding für das Odys Loox im Bereich Odys Loox Forum.
Astralix

Astralix

Stammgast
Danke für die Infos.

Lade gerade mal den kernel und sehe was dann so passiert. Die Infos habe ich mir angesehen. Wenn man nur den Kernel austauschen könnte, wäre das natürlich schick, denn dann muss man nicht immer alles neu installieren.

Schön wäre es natürlich noch weitere Infos über den Chipsatz zu haben.

Bzgl. warum man eventuell Vorteile von einem neueren Android haben könnte, muss ich mir nur mein DHD ansehen. Das ARHD, das ich mir zuletzt drauf geflash habe, nutzt die volle Hardware-Unterstützung der Grafik. Das macht wirklich deutlichst was her, wenn man das alte 2.3.3 mit dem neuen 2.3.5 und den Modifikationen vergleicht.

Das funktioniert aber nur dann, wenn man auch an die Treiber des Rockchip Herstellers heran kommt. Der verspricht ja volle OpenGL Unterstützung u.s.w.

Naja, wir werden sehen. Wird entweder garnix oder ein sehr steiniger aber lehrreicher Weg :)

Gruß, Astralix
 
P

PopEi

Stammgast
@pjuppes

Du kannst dein eigenes Danke wieder löschen, wenn Du es möchtest.

L.G.
Jörg
 
W

wishmasterf

Erfahrenes Mitglied
Hallo,

Ich versuche gerade das Odys Xpress zu rooten.

Leider hat bei mir das "unpack" nicht funktioniert. Ich erhalzte folgende(n) Fehler
(Punkt 3 von Weiter geht es):

RK29xx Image Pack/Unpack Tools
Blog Wendal
Project: https://github.com/wendal/teclast_tools
feedback: pad@wendal.net
Pls input: 1-Unpack 2-Pack 3-Exit
1
Pls copy Image file into this folder,and rename to wendal.img
Notify any errors!
Drücken Sie eine beliebige Taste . . .
Reading file header...
File header: RKFWf
Read loader's offset
Read loader's len
Read update.img's offset
Read update.img's len
Output Loader
offset(0x66) len(0x27346)
Output updata.img
offset(0x273AC) len(0x958F804)
Unpack updata.img to Temp folder
Check file... OK
------- UNPACK ------
package-file 0x00000800 0x00000227
RK29xxLoader(L)_DDR3_400Mhz_V1.64.bin 0x00001000 0x00027346
parameter 0x00028800 0x0000026D
Image/misc.img 0x00029000 0x0000C000
Image/kernel.img 0x00035000 0x0056FD14
Image/boot.img 0x005A5000 0x000396EC
Image/recovery.img 0x005DE800 0x00452E40
Image/system.img 0x00A31800 0x08B5D000
update-script 0x0958E800 0x000003A5
recover-script 0x0958F000 0x0000010A
Unpack firmware OK!
------ OK ------
Unpack system.img to system folder
Cramfs 2 , Modify by Wendal Chen.
My blog Wendal
Sources http://github.com/wendal/cramfs

f 0777 78456 0:0 system/app/Calculator.odex
data block too large!!! Skip!!
cramfsck: non-size (3113 vs 3128) bytes
Enable root permission
Das System kann den angegebenen Pfad nicht finden.
chmod: cannot access `system/bin/su': No such file or directory
Unpack -- All Done

Danke schon mal für eure Hilfe und diese Anleitung!!
 
Zuletzt bearbeitet:
Oma7144

Oma7144

Lexikon
@ Astralix: dem RK2918 werden ja magische Fähigkeiten bei der Wiedergabe von HD-Videos (1080p mit 60fps) nachgesagt.
Was sagen die Kollegen vom Xpress (HDMI-Ausgang) dazu?

Die dazugehörige GPU ist eine Vivante GC800. Die schafft (bei screen 800x600) im OpenGL-ES 2.0 Benchmark ca. 45,5 fps
und ca. 27,5 fps mit komplexeren Strukturen und hohem HD-Anteil.

Für eine single-core Lösung doch ganz passabel. Aber vielleicht geht da ja noch was ...

Nachtrag: kann man Emulationstreiber für andere Hardware (wie z.B. Projekt Chainfire) einbauen? Damit könnte man evtl.
von dem Tegra Hype (GPU Adreno 220) profitieren.


:thumbup:
 
Zuletzt bearbeitet:
Astralix

Astralix

Stammgast
Oh mann...

Habe schon lange keinen kernel mehr gesehen, der beim Kompilieren so viele Warnings auswirft... Wie gruselig ist das denn!

Also eine .config ist ja im ZIP schon drin, daher habe ich lediglich das make CROSS... kernel.img aufgerufen. Ein make 'config' (etwa android_sdk...) würde diese mitgelieferte .config ja nur überschreiben. Jetzt muss ich mir mal durchlesen, wie das zusammen setzen und flashen des Kernels funktioniert. Dann werden wir sehen.

Mein Kernel ist jedenfalls mit diesem Ergebnis aus dem Compiler gepurzelt:
Code:
  AS      .tmp_kallsyms2.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready
CRC32=0x8AAE915
OK
  Image:  kernel.img is ready
Also bis morgen, dann bin ich wach genug, es mal mit dem Flashen zu versuchen.
Ach ja, der kernel ist mit folgenden Werten aus dem Compiler gepurzelt:
4707792 2011-12-26 00:14 kernel.img
Was sagen die Profis zum Size?
 
K

Käsebrot

Ambitioniertes Mitglied
Was ich gestern noch gefunden habe:
https://github.com/naobsd/rkutils
Damit sollte alles unter Linux laufen:
- update.img entpacken (macht auch RAW images für Kernel und Boot ;-)
- update.img wieder einpacken
- flashen (???)

und das alles unter Linux.
Lassen sich bei mir alle ohne Proble übersetzen. Ich hab die C-Dateien mal angehängt.
 

Anhänge

  • rkutils.zip
    13,1 KB Aufrufe: 113
Astralix

Astralix

Stammgast
Danke Käsebrot,

Habe gerade mal ein Makefile dazu gebastelt und es kompiliert. Leider ist gerade der nächste Schwung Familie eingetroffen... Ich muss mein Tablet noch was liegen lassen.

Jedenfalls kompiliert es alles schon mal.

Gruß, Astralix
 
K

Käsebrot

Ambitioniertes Mitglied
prima, das ist ja mal ein Anfang.
Welches SDK verwendest Du (eigentlich welchen gcc) ?
 
Astralix

Astralix

Stammgast
Hehe, um mal bei den Begrifflichkeiten zu bleiben:
SDK verwende ich noch garkeines, ich muss mich bzgl. Android SDK erst mal etwas schlau machen um auch ein passendes Android zu bauen. Da sind wir aber noch nicht.

Als Toolchains stehen mir ein arm-eCoss-eabi-gcc der Version 4.5.2 zur Verfügung. optimiert für eine uclibc und ein arm-linux-gnueabi-gcc der Version 4.6.1.

Sollte passen. Muss mir aber jetzt mal ansehen wie man das alles mit dem Android SDK verknüpft und verlinkt... Sag ja, das wird eine steile Lernkurve :)
 
F

fluxflux

Stammgast
darkwing schrieb:
So, wie versprochen hier eine kleine Sammlung nützlicher Tools um die RK28XX und RK29XX basierenden Tablets zu rooten und die Images zu bearbeiten.

Das ganze basiert auf Windows X86 Plattformen und wurde unter WIN7 und XP getestet.
Den Großteil der Arbeit haben andere erledigt, ich habe nur alle vorhandenen Informationen zusammengesammelt, getestet verworfen, neu gesucht getestet und für gut befunden.

Benötigte Dateien:
Odys Loox/Xpress
1. Update Paket für euer Tablet von der Odys Homepage
2. Das Wendal 29XX Tool. Wendal ist ein findiger Kerl, seine Homepage
Wer übers Rooten hinaus noch Systemdateien tauschen will benötigt zusätzlich:
RKCooking Utility

Andere Tablets:
Wenn Ihr von eurem Hersteller eine update.img bekommen könnt, ist alles fein, dann benötigt ihr nur Wendals Tool zum rooten und das Cooking Tool zum weiteren bearbeiten.
Habt ihr Keine Update.img benötigt ihr wenigstens Shell Root auf eurem System und die beiden Tools. Wer fragen hat bitte PN ich versuch eine Lösung zu finden die dann allen Besitzern der entsprechenden Tabletts hilft.

Es geht los.
1. Wir entpacken unsere Odys Dateien in ein Verzeichnis.
2. In diesem Odys Verzeichnis befindet sich ein Unterverzeichnis "rockdev"
3. Im Verzeichnis "Rockdev" befindet sich eine "mkupdate.bat" diese führen wir aus.
Nach dem durchlaufen der bat finden wir im Verzeichnis "rockdev" eine "update.img" Freude Freude.

Weiter gehts es.
wir haben das Wendal Tool inzwischen ebenfalls entpackt. Es entsteht ein Ordner "RK29xxImagetools_v2.1".
1. Wir kopieren unser update.img in diesen Ordner und benennen die Datei in "wendal.img" um
2. wir starten die "Runme".bat
3. wir drücken "1" und bekommen noch mal eine Meldung, das unsere update.img in wendal.img umbenannt werden soll. Da wir dies schon getan haben drücken wir einfach eine weitere Taste. Dann läuft die bat los und
wenn alles entpackt ist kontrollieren wir noch mal ob im Fenster keine Fehlermeldungen aufgetaucht sind.
3. wir drücken "2" und dann Enter. Nun werden die gerooteten Images erstellt... alles automatisch.
4. Wir beenden das Programm mit "3"
5. Im Ordner finden wir nun eine Menge neuer Dateien, darunter auch eine "wendal-new.img" diese kopieren wir auf eine SD Karte und benennen sie dort in update.img um.
6. Karte in das Odys Tablet einsetzen und die aufpoppende Meldung bestätigen.
7. Das Odys bootet neu, flasht sich selber und danach haben wir ein gerootetes Tablet.
8. Freude Freude Freude und stiller Dank an die findigen Köpfe in aller Welt.
Bis hierher gehe ich analog vor.

Dann erspare ich mir den Cooking-Teil und mache es mir etwas einfacher, indem ich das Wendal-Skript (Runme) und die dabei ausgeführte lua-Datei etwas ändere, damit ich bei weiteren Änderungen die Runme nur mit der Option 2 - Pack ausführen muss, da alle notwendigen Daten schon im Wendal-Ordner (im folgenden wendal genannt) liegen.

1. Im Ordner wendal/system/apps alle *.apk-Dateien löschen, die man nicht mehr benötigt oder ersetzen möchte. Ich habe den Browser, den Launcher, GMail gelöscht, auch die dazu gehörenden *.odex-Dateien können gelöscht werden. Eingefügt habe ich einen neuen Browser und Titanium-Backup, sowie GoLauncherEx. Mit dem Titanium-Backup kann man sein System schnell wieder mit den installierten Apps ergänzen, ohne dass man lange im Market suchen muss.

2. Alle neu einzufügenden *.apk-Dateien nach wendal/ kopieren, dort liegt schon Superuser.apk, das ich auch durch eine neue Version ersetzt habe.

3. su in wendal/ auch durch die neueste Version ersetzen.

4. Die für 2. und 3. notwendigen Links findet ihr hier im Thread.

5. Das in Runme.bat verlinkte lua-Skript rk29xx_rom_tools.lua wie folgt ändern.

Originalzeilen ab 94:
Code:
...print("Enable root permission")
    os.execute('copy /B su system\\bin\\ >nul')
    os.execute('copy /B Superuser.apk system\\app\\ >nul')
    os.execute('chmod -R 0777 system/*')
    os.execute('chmod 6755 system/bin/su')
    os.execute('chmod 6755 system/app/Superuser.apk')

    print('Unpack -- All Done')
    rom_file:close()
end

--´ò°ü
function packROM()
    local SYSTEM_DIR = io.open('system/build.prop','r')
    if SYSTEM_DIR then
        SYSTEM_DIR:close()
        --os.execute('chmod -R 777 system/*')
        print('Packing system folder to system.img,overwrite to Temp\\Image\\system.img')
        os.execute('mkcramfs -q system Temp/Image/system.img')
    end...
Bearbeitete Zeilen ab 94:
Code:
...    print("Enable root permission")
    os.execute('copy /B su system\\bin\\ >nul')
    os.execute('copy /B Superuser.apk system\\app\\ >nul')
    os.execute('chmod -R 0777 system/*')
    os.execute('chmod 6755 system/bin/su')
    os.execute('chmod 6755 system/app/Superuser.apk')

    print('Unpack -- All Done')
    rom_file:close()
end

--´ò°ü
function packROM()
    local SYSTEM_DIR = io.open('system/build.prop','r')
    if SYSTEM_DIR then
        SYSTEM_DIR:close()
        print("Copy new apks and set correct permissions")
        --os.execute('copy /B su system\\bin\\ >nul')
        --os.execute('copy /B *.apk system\\app\\ >nul')
        --os.execute('chmod -R 0777 system/*')
        --os.execute('chmod 6755 system/bin/su')
        --os.execute('chmod 6755 system/app/*.apk')
        --os.execute('chmod -R 777 system/*')
        print('Packing system folder to system.img,overwrite to Temp\\Image\\system.img')
        os.execute('mkcramfs -q system Temp/Image/system.img')
    end
...
Damit kann man jederzeit su, Superuser.apk und beliebige *.apk austauschen und die Rechte werden automatisch korrekt gesetzt.

6. Dann die Runme.bat in wendal/ starten und mit der Option 2 weitermachen, da die entpackte Version schon vom letzten Mal vorhanden ist.

7. Es wird wieder ein wendal_new.img geschrieben, das als update.img auf eine MicroSD-Karte kopiert wird und in den laufenden Loox zum automatischen Update eingesetzt wird.

8. Bei zukünftigen Änderungen entweder wendal/system und wendal/Temp löschen, ebenso update.img, update_new.img und wendal.img, dann wendal_new.img in wendal.img umbenennen und wendal/Runme.bat mit der Option 1 laufen lassen, dann bei 1. weitermachen oder

9. alles so lassen wie es ist und lediglich in wendal/ die neuen *.apk-Dateien einfügen und die nicht mehr gewünschten aus wendal/ und wendal/system/apps/ entfernen, dann das wendal/Runme.bat mit der Option 2 laufen lassen und meinen obigen Punkten wieder folgen.

Ich hoffe, dass dies verständlich war und einen Weg aufzeigt, ohne das rkcooking ein gerootetes Customimage herzustellen.

Thomas.
 
Zuletzt bearbeitet:
P

PopEi

Stammgast
Sieht interessant aus, werde es morgen mal ausprobieren.

L.G.
Jörg
 
Astralix

Astralix

Stammgast
Hi fluxflux,

Ich muss mir noch einen Gesamtüberblick verschaffen. Aber es geht zuerst nicht um das Kochen eines veränderten Images, sondern eines von Grund auf zu erstellen. Wenn ich Kernel, rootfs und busybo des ausgelieferten Systems reproduzieren kann, kann ich auch updates einbauen, Kernel anpassen und zuletzt auch eine neue Android Version aufsetzen.
Und das wäre ja das Ziel dieses Threads.

Ich werde das Loox die Tage mal zerlegen und sehen, was da so geht. In der .config kann man sehen, dass einige usarts des ARM initialisiert werden. Ausserdem ist Kernel Debug aktiviert. Irgendwo müssen die Bootmeldungen des Kernels also heraus kommen. Dort sollten sich einige Fragen zu benutzten Treibern und Display klären lassen. Vielleicht wird auch klar was da fehlt und warum der releaste Kernelcode einen kleineren Kernel backt als der aus dem Image.

Leider gibt es für das Loox noch keinen Android Spezi, der einem helfen kann. Bei XDA wurde ein anderes Odys gerootet und mit einem aktuelleren Android versehen, ich hoffe ich bekomme da Kontakt. Es ist ein bisschen viel, ein komplettes System alleine aufzusetzen. Meine Spezialisierung liegt eher in Hardware, Treiber und Kernel. Wäre also gut wenn noch jemand mit macht.
 
F

fluxflux

Stammgast
Ok, verstehe. Wäre sicher ein Projekt, das man gemeinsam angehen könnte, denn z. B. Bluetooth, das im System schon vorhanden ist, und GPS wären sicher zu ermöglichen.

Mal sehen, was sich ergeben wird ...

Thomas.

P. S.: Mir ging es nur mal um ein gerootetes Customimage, das jeder schnell bauen kann.
 
Astralix

Astralix

Stammgast
Hat das Loox Bluetooth? Im freigegebenen Kernel Code ist was von BT drin, aber mein Tablet meldet da nix. Auch habe ich irgendwo mal was von GPS als Ausstattung gelesen, aber drin ist es nicht.

Ich muss das Teilchen wirklich mal auseinander nehmen und sehen was drin steckt.
Könnten wir zusammen mal anfangen Fakten zu sammeln? Also brauchbare Toolchain, Datenblätter der verbauten Chips, Display, Gute (auch englische) Anleitungen, wie man Kernel, busybox aund Android verheiratet und so weiter.

Leider ist es nämlich so, dass es viele Spezis gibt, die jede Woche ein neues Image für ein Android auf die Server werfen und zu recht stolz darauf sind, aber keiner verrät so richtig, wie er es anstellt.

Ich gehe derweil mal bei XDA stöbern, was da so an Fakten bekannt ist.
 
wusel

wusel

Stammgast
Nope, Loox hat kein Bluetooth, und soweit ich weiss Xpress auch nicht :sad:
was man unter /etc sieht scheint Müll zu sein von einem anderen Tablet, oder vielleicht von einer Google Referenz-Implementation ...
der BCM4329 Chip ist ein kombinierter Broadcom WLAN/Bluetooth Chip - im Loox ist jedoch für WLAN ein Realtek-Chip verbaut; lsusb gibt aus:
Code:
Bus 001 Device 002: ID 0bda:817a
Somit brauchen wir also ein separates Kernel-Modul für den gängigen Cambridge Silicon Radio Chip mit der ID 0a12:0001 der in fast jedem USB-Bluetooth Adapter steckt (gibts in China für unter 1€ inklusiv Versand!); ausserdem fehlt auch die Bluetooth.apk in /system/apps - müsste also auch nachgerüstet werden ...
bei GPS sieht es gleichsam düster aus: zunächst mal gibt es nur wenige GPS Receiever die über USB angeschlossen werden; ich habe aber einen der USB und Bluetooth kann, und das Teil auch schon auf Linux ans Rennen gebracht; normalerweise macht man das mit dem usbserial Kernel-Modul: man lädt dieses mit der ID des Serial Device und steckt das Teil dann an; Problem ist hier jedoch dass es mir fast so aussieht als ob alle kernel-Module bis auf 2 fest eincompiliert sind - also nix rmmod/insmod/modprobe :crying:
habe bischen gegoggelt und dann unter anderem
das hier gefunden:
Manual driver binding and unbinding [LWN.net]
für meinen GPS-Receiver sollte dann sowas klappen:
Code:
echo -n "0x0403 0x6001" > /sys/bus/usb-serial/drivers/generic/new_id
tatsächlich gibts dann auch ein paar mehr und andere Fehlermeldungen mit dmesg - aber natürlich kein /dev/ttyUSB0 :crying:

bin mir noch nicht ganz im Klaren darüber ob ich das Loox behalten soll, oder besser wieder verkaufe - wenn ich es behalte wird es mir mit Sicherheit Android-Kernel-Bauen beibringen :razz: und unendliche Hackerstunden und Forumstunden hier bescheren, und ich weiss nicht so recht ob ich soviel Zeit investieren will und kann -- da ist mein gleich-billiges Huawei Ideos X3 um Längen besser im Auslieferungszustand :cool2:

Wusel.
 
Oma7144

Oma7144

Lexikon
Huawei Ideos X3 um Längen besser im Auslieferungszustand :cool2:
Wusel.
Das X3 ist als mobile konzipiert, perfekt abgestimmt und der Aftermarkt wird schon sehr gut bearbeitet. Somit hast du GPS und BT an der richtigen Stelle und da nichts zu '"exploren". Den Loox als Bildbetrachter und Spielkonsole auszureizen waere m.E. die Herausforderung. Anyway, fuer viele schoene Hackerstunden bleib mal beim Loox und hier bei uns - a very warm welcome :)


:thumbup:
 
F

fluxflux

Stammgast
Astralix schrieb:
Hat das Loox Bluetooth?
Intern nicht, so habe ich es auch nicht gemeint.

Aber mein Sitecom-Bluetooth-Stick wird als USB-Bluetooth-Device erkannt, es fehlt nur noch die Aktivierung. Ein "bluetoothd" ist im System vorhanden, kann auch gestartet werden, kann also nicht mehr allzuviel fehlen.

Es müsste also hier ein Thread eröffnet werden, der das Kompilieren neuer Kernelmodule oder eines neuen Kernels (statisch oder modular) behandelt, dann kann man mit vereintem Wissen sicher angreifen.

Es ist ja "nur" ein Linux, in dem man ändern kann, was man möchte.

WLAN, Bluetooth sollten aber als Module im System liegen, damit man sie laden/entladen kann. Auch im aktuellen System kann ja WLAN händisch mit einem "rmmod wlan" ausgeschaltet werden.

Wir sollten also angreifen ... :cursing:

Thomas.
 
Subcineast

Subcineast

Erfahrenes Mitglied
Astralix schrieb:
Hi fluxflux,

Ich muss mir noch einen Gesamtüberblick verschaffen. Aber es geht zuerst nicht um das Kochen eines veränderten Images, sondern eines von Grund auf zu erstellen. Wenn ich Kernel, rootfs und busybo des ausgelieferten Systems reproduzieren kann, kann ich auch updates einbauen, Kernel anpassen und zuletzt auch eine neue Android Version aufsetzen.
Und das wäre ja das Ziel dieses Threads.

Ich werde das Loox die Tage mal zerlegen und sehen, was da so geht. In der .config kann man sehen, dass einige usarts des ARM initialisiert werden. Ausserdem ist Kernel Debug aktiviert. Irgendwo müssen die Bootmeldungen des Kernels also heraus kommen. Dort sollten sich einige Fragen zu benutzten Treibern und Display klären lassen. Vielleicht wird auch klar was da fehlt und warum der releaste Kernelcode einen kleineren Kernel backt als der aus dem Image.

Leider gibt es für das Loox noch keinen Android Spezi, der einem helfen kann. Bei XDA wurde ein anderes Odys gerootet und mit einem aktuelleren Android versehen, ich hoffe ich bekomme da Kontakt. Es ist ein bisschen viel, ein komplettes System alleine aufzusetzen. Meine Spezialisierung liegt eher in Hardware, Treiber und Kernel. Wäre also gut wenn noch jemand mit macht.
Huhu Astralix,
da Threads ja leider oft recht schnell in der versenkung verschwinden (gerade über weihnachten wo viele ein neues Tab bekommen haben und hier Fragen haben) wollte ich dir mal einen Beitrag verlinken (falls du ihn noch nicht gesehen hast)

Wahrscheinlich ist es besser das ganze direkt vor Augen zu haben, aber vielleicht hilft es euch ja, der OdysLooxFan hat das Tab schonmal auseinander genommen:
https://www.android-hilfe.de/forum/...n-modding-tread-update-25-10-2011.158694.html

LG
Sub
 
Astralix

Astralix

Stammgast
Hi Subcineast!

Danke für den Link. Das war das, was ich mit zusammentragen meinte.
Die Aufrüstung mit UMTS ist für mich uninteressant, aber viel interessanter sind die Bilder, die zeigen, dass da noch Platz für einen weiteren Speicherchip ist oder der HDMI Stecker bereits auf der Pleiterplatte existiert, als Pads. Ich hatte nämlich gehofft, dass man den nachrüsten kann.

Gruß,
Astralix