Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

Atalante Project - das ubidump UBI image extract utility

  • NEWS: ubidump Testkit für ARM ist verfügbar


    ubidump ist ein Tool für UBIFS images das diese ohne weitere Hilfsmittel listen und extrahieren kann.


    Es unterstützt das Listen und Entpacken von ubifs images die mit mkfs.ubifs erstellt wurden und ubifs volumes die mit ubinize für den Flash eingepackt wurden und auch Dreambox nfi images mit UBIFS als root Filesystem.


    ubidump am PC ist Shareware, jeder kann es für 30 Tage kostenlos testen.


    ubidump verwendet KEINEN code der mtd-utils, benötigt keine nandsim, block2mtd oder mtdram Module, und ist daher auch problemlos unter Windows lauffähig.


    ubidump wurde im Rahmen des Atalante Projekts entwickelt:


    Atalante ist eine Jägerin und ewige Jungfrau in der griechischen Mythologie - man könnte auch sagen eine emanzipierte Frau aus der Antike:


    Atalante, die immerbleibende Jungfräulichkeit geschworen hat, stellt die Bedingung, der zukünftige Gatte müsse sie im Wettlauf besiegen,
    ansonsten werde sie diesen töten. Iasos ist einverstanden – und so sind es auch viele Brautwerber, die allesamt nackt gegen die ebenso nackte
    Atalante antreten, verlieren und sterben. Erst als Melanion bzw. in einer anderen Überlieferung Hippomenes die Göttin Aphrodite um Hilfe bittet, gibt ihm diese drei goldene Äpfel die er während des Wettlaufs zu Boden fallen lassen solle. Und tatsächlich bückt sich Atalante, um die Äpfel aufzuheben, und Melanion kann den Wettlauf für sich entscheiden.


    Quelle: de.wikipedia.org/wiki/Atalante


    Atalantes Geschichte ist sehr ähnlich dem derzeitigen Zustand mit dem UBIFS extrahieren wie man in den FAQ des UBIFS Projekts nachlesen kann:


    Wie extrahiere ich Files aus einen UBI/UBIFS Image?


    Unglücklicherweise, gibt es im Moment keine User Space basierende Werkzeuge welche UBI und UBIFS Images auspacken können. UBIFS kann auch nicht loop-back gemountet werden, da es nicht mit Block devices arbeitet.


    Quelle: linux-mtd.infradead.org/faq/ubifs.html#L_ubifs_extract


    Also außer nandsim und block2mtd als Umweg gab es nach Jahren der UBIFS Entwicklung immer noch KEIN ordentliches Tool um im Userspace ohne die ubifs kernel und Filesystemtreiber den Inhalt eines ubifs Images zu extrahieren. Eigentlich ein trauriger Zustand dem ubidump nun endgültig beendet!


    Wer noch was über UBIFS wissen will, fängt nachdem er die FAQs gelesen hat am besten hiermit an:


    linux-mtd.infradead.org/doc/ubifs.odp


    ubidump Kits und Support gibt es auf ubidump.oozoon.de
    Auf der Dreambox einfach ipk installieren und dann ubidump aufrufen in telnet:


    Unter Windows wird ubidump beim ersten Aufruf um einen Key bitten, ohne diesen wird es nicht funktionieren!


    In der Version 0.1.* gibt es erstmals public Kits für mipsel (Dreamboxen), ARM und einen Testkit am PC für Windows.


    Zum Testen unter Windows könnt ihr folgenden Key benutzen, der allerdings Ende September abläuft:


    Code
    1. gutemine 75DD-FC82-E474-EF3A


    Zum Testen unter Linux am PC könnt ihr folgenden Key benutzen, der allerdings Ende September abläuft:


    Code
    1. gutemine
    2. 2884-AF31-1CF1-BCAD


    Wenn es beim Extrahieren mit verify Fehler gibt, bitte mal das ubidump.exe auf C:\Program Files (x86)\GUbiDump gegen das binary aus dem ubidump_0.1.2.rar zu ersetzen und berichten ob das besser ist.

  • NEWS: ubidump Testkit for ARM available


    ubidump is a standalone tool for UBIFS images which allows listing and extracting of such images.


    ubidump supports listing and extracting of UBIFS images which were created with mkfs.ubifs, UBIFS volumes with were packed by ubinize for the flash and it supports also Dreambox images with uUBIFS as root filessystem.


    ubidump runnning on PCs is Shareware, everybody can test it for 30 days for FREE.


    ubidump uses NO code from mtd-utils, and it doesn't need any nandsim,
    block2mtd or mtdram modules, hence it runs without problems also under Windows where until now no ubifs extraction was possible.


    ubidump development was done within the Atalante Project:


    Atalante is a huntress and eternal virgin in greek mythodoloy - you could say an emanzipated woman from ancient Greece:


    Atalante, who has sworn eternal virginity requests that her future husband has to win against her in a running competition, otherweise she will kill him.
    Her father Iasos agrees - and so are many men which all run against the also naked Atalante, loose and die.


    Only when Melanion, or in other sources Hippomenes asks the goddess Aphrodite for help, he gets three golden apples from her, which he drops during the race. Atalante really stops to pick them up and Melanion can win the race.


    Source:


    Atalantes story is very similar to the current situation of UBIFS extarcting as you can read from the FAQ of the UBIFS project.


    How do I extract files from an UBI/UBIFS image?


    Unfortunately, at the moment there are no user-space tools which can unwrap UBI and UBIFS images. UBIFS cannot be loop-back mounted as well, because it does not work with block devices.


    Source: linux-mtd.infradead.org/faq/ubifs.html#L_ubifs_extract


    This means that besides nandsim and block2mtd Drivers as a workaround after years of UBIFS development there was still no working tool in userspace which could extract ubifs image content without ubifs kernel and the filesystemdrivers. This situation which now has come to an end!


    Who wants to know more about UBIFS, after reading the FAQs start reading this:


    linux-mtd.infradead.org/doc/ubifs.odp


    ubidump Kits and Support are available at ubidump.oozoon.de
    On a Dreambox simply install the ipk and enteri n tlenet ubidump.


    Under Windows ubidump will ask for a key on first startuo, it will not work without it.


    In Version 0.1.* there are a public Kits available for mipsel (Dreamboxen) and a testkits on PC for Linux Windows.


    For testing under Windows on a PC please use the below key, which is limited until end of September:


    Code
    1. gutemine 75DD-FC82-E474-EF3A


    For testing under Linux on a PC please use the below key, which is limited until end of Septembe

    Code
    1. gutemine
    2. 2884-AF31-1CF1-BCAD




    Wenn es beim Extrahieren mit verify Fehler gibt, bitte mal das ubidump.exe auf C:\Program Files (x86)\GUbiDump gegen das bianry aus dem ubidump_0.1.2.rar zu ersetzen und berichten ob das besser ist.

  • OK, ich habe jetzt noch einen halben Tag reingebuttert um in der Version 0.0.5 auch symlinks sauber zu unterstützen - beim listen werden sie jetzt mit quelle -> ziel angezeigt und beim extrahieren auch schon richtig angelegt.


    Aber schön langsam muss ich mir etwas anderes überlegen wenn ihr weiterhin so brav mithelft X(

  • Hi,


    servus war leider den ganzen Sonntag bei meinen Eltern und bin erst grad zurückgekommen. Werds dann gleich mal installieren aber wahrscheinlich komm ich erst morgen nach der Arbeit zum testen. Was genau soll ich alles testen?

    :DErstaunlich wie verwirrt Menschen plötzlich sind, wenn ein Satz anders endet als man es Kartoffel. :D

  • Du hast eine lange Liste bei OoZooN bekommen, ich lege da sicher nichts mehr oben drauf :-)


    Solange praktisch kein Feedback kommt ob das Listing komplett ist macht es auch wenig Sinn am Datenextract weiter zu arbeiten, weil das ist ein großer Brocken der mich nochmals Tage an Programmier und Testzeit kosten wird. Also baue ich lieber einfache Sachen wie die Symlinks ein.


    Weil die Performance immer noch relativ schwach ist macht ihr Euch evt. das Leben leichter wenn Ihr euch selber ein Testfilesystem in einem test directory mit diversen directories, files und filetypen aufbaut und das dann als ubifs image sichert mit folgendem Befehl:

    Code
    1. mkfs.ubifs -m 2048 -e 253952 -c 100 -F -x none -r ./test -o test.img


    oder so:


    Code
    1. mkfs.ubifs -m 512 -e 16384 -c 200 -F -x none -r ./test -o test.img


    mkfs.ubifs binary muss natürlich installiert sein, falls nicht:


    Code
    1. opkg update
    2. opkg install mtd-utils-mkfs.ubifs


    LG
    gutemine

  • Bin am entpacken von nem ubifs nfi .. diesmal schreibt er alles in tmp .. daten / verzeichnisse sind da nur der inhalt ist schrott ..


    Hab die Ergebnisse im andren Forum gepostet-

    :DErstaunlich wie verwirrt Menschen plötzlich sind, wenn ein Satz anders endet als man es Kartoffel. :D

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von zackmuc ()

  • Danke, aber trotzdem brauche ich viel mehr Input von Leuten mit verschiedenen Images, verschieden Boxen, etc.


    Vor allem ist ein funktionierendes ubidump etwas das erstaunlicherweise seit Jahren fehlt.


    Wenn ich mir dann schon selber die Arbeit mache weil es mir zu blöde geworden ist zu hoffen das es wer anderer macht, dann will ich mich nicht alleine herumquälen, dazu ist es einfach zu mühsam.

  • Vielleicht solltest du klare Ansagen machen, was genau du getestet haben willst. Nicht jeder liest bei oozoon mit. ;)

  • Vor Allem ist die Sommer, Sonne, Ferienzeit etwas ungünstig.
    Da sitzt man doch lieber im Freien, wenn man kann, anstatt vor PC u. Dreambox. ;)


    Panasonic TX50-EXW784
    Panasonic SC-ALL70TEGK / SC-ALL2 wireless 5.1 Soundbar

    dm8000, dm7080, dm800sev2, dm900-dvb-s2-unicable, dm900-dvb-s2-multisat


    Synology DiskStation

  • hallo gutemine,


    wäre es möglich ein Script zu schreiben, wo Du Deine Telnet Befehle drin sind und das gewünschte Ergebnis als "Log" gespeichert wird?


    Man braucht dann sozusagen nur das .ipk installieren und das Script ausführen.
    Die evtl. auftauchenden Fragen wie installiere ich das .ipk können doch auch eine Menge anderer Forumsmitglieder beantworten.


    Kann mir vorstellen, das Du auf diese Weise schneller an Deine Informationen kommst.


    Lieben Gruß - Tom

    Dreambox 8000 OE2.0 • Birthday Reminder • Fritz Call • menusort • EMC • Dream Explorer • dflash • Wetterinformationen • Easy Media •
    • seekbar • off • mediaportal • upnp Demobrowser • u.a.

  • Vor Allem ist die Sommer, Sonne, Ferienzeit etwas ungünstig.
    Da sitzt man doch lieber im Freien, wenn man kann, anstatt vor PC u. Dreambox. ;)


    Das passt doch .. dann kann die dream in ruhe ackern ;)

    :DErstaunlich wie verwirrt Menschen plötzlich sind, wenn ein Satz anders endet als man es Kartoffel. :D

  • Wenn ich Euch scripte schreibe testet Ihr nur wieder das was ich teste, das bringt relativ wenig.


    Nachdem ubidump nach einen Brute Force Ansatz funktioniert kann man ihm ubi Images ubi volumes und auch nfi Images zum listen/extrahieren vorwerfen.


    Die besten Ergebnisse liefert es derzeit bei ubi Images, schlechter mit ubi volumes und noch schlechter mit nfi (weil ich noch keine Zeit hatte ihm den Unterschied beizubringen).


    Warum, weil da jweils noch die Daten zusätzlich eingepackt werden und weil ich erstmal nur den einfachsten Fall des nackten ubi in einem ubi Image beim Entwickeln teste, das NICHT mit ubinize in ein volume gepackt wurde und das NICHT dann auch noch in ein nfi gepackt wurde.


    Solche Images erstellt man sich mit mkfs.ubifs relativ simpel selber (siehe gepostete Befehle), volumes kann man mit nfidump -i aus dem nfi rausholen. Will man seine eigene root sichern macht man:


    Code
    1. mkdir /tmp/root
    2. mount -o bind / /tmp/root


    Und dann halt den mkfs.ubifs Befehl von weiter oben mit -r /tmp/root absetzen.


    ODER man macht sich eine kleine Testdirectory Struktur und sicher diese mit dem mkfs.ubifs, weil das geht wesentlich schneller sichern und listen als das ganze Image.


    Und dann ist eigentlich mühsames vergleichen angesagt ob alle directories und alle files auch korrekt gelistet werden. Und ja ich weis das ist mühsam, aber dafür ist es endlich ein Ansatz der sogar funktioniert :-)


    Und ja ich weis das Sommer ist aber das heisst auch weniger zu Tun und lange Abende, sonst hätte ich gar nicht so viel Zeit gehabt die Arbeit die ich bis jetzt gemacht habe in der letzten Woche reinzustecken.


    LG
    gutemine

  • Danke gutemine für die detaillierte Erklärung, werde heute abend weitere Tests durchführen und berichten.

    :DErstaunlich wie verwirrt Menschen plötzlich sind, wenn ein Satz anders endet als man es Kartoffel. :D

  • Auf der ersten Seite ist jetzt die Version 0.0.7 vom ubidump. Was hat sich getan gegenüber der letzten version:


    Die device files auf /dev sollte jetzt richtig gelistet und extrahiert werden, die Formatierung des Listings wurde verschönert und es sollten wenn man ein ubifs image mit compression none macht jetzt auch schon binaries und libs richtig extrahiert werden (mit md5sum Original und Kopie Stichprobenartig vergleichen)


    Außerdem gibt es jetzt ein -w oder --windows als option mit dem man device files als xxx.dev und links als yyy.lnk extrahieren kann damit diese files auch in einem Windows Filesystem funktionieren - sind dann halt reine Textfiles wo die nötigen Infos drinnen stehen, damit ein entsprechend gepatchtes mkfs.ubifs unter Windows es wieder einpacken könnte.


    Bitte im Moment nur ubi images zum testen benutzen, nfi und ubi volumes muss ich erst wieder einbauen, aber zuerst muss das Extrahieren mit compression none 100%ig funktionieren, erst dann kommen die anderen compressions und die anderen Fileformate dran (=3. Apfel). Der zweite Apfeln, also das Extrahieren der Files ist dann aber auch schon zur Hälfte gegessen, wir stehen jetzt aber auch bereits bei etwa 65 Stunden Arbeit.


    LG
    gutemine

  • Danke, weil jetzt geht schon fast alles extrahieren - also directories, links und devices nur die Files sind noch nicht 100%ig - ich finde immer noch insbesondere welche die größer als die eraseblocksize sind wo es nicht klappt, aber das sollte auch noch hinzukriegen sein.


    Ich habe nicht umsonst 3 volle Mannwoche Aufwand geschätzt und so wie es aussieht werden es eher 4-5 weil keiner mithelfen will.


    Erst wenn alle Files 100%ig richtig extrahiert werden, macht es Sinn auch komprimierte Files zu versuchen auszupacken.


    Und hier noch das versprochene Shellscript um sich vom image der box ein ubifs image zu machen (dFlash macht es genauso nur wird dann nachher halt noch das ganze in ein UBI volume und dann ins NFI image gepackt).


    Shell-Script
    1. #!/bin/sh -x
    2. mkdir /tmp/root
    3. mount -o bind / /tmp/root
    4. touch /media/hdd/backup/root.ubi
    5. chmod 777 /media/hdd/backup/root.ubi
    6. ./mkfs.ubifs -m 2048 -e 129024 -c 2015 -F -x none -r /tmp/root -o /media/hdd/backup/root.ubi
    7. umount /tmp/root
    8. exit 0


    Das ist für eine 8000 und die neuen v2 boxen, bei der 500hd und 800se muss -m 512 -e 16384 benutzt werden und bei der 7020hd ohne v2 -m 4096 -e 253952
    Und falls ihm der lebcount zu klein wird dann muss man halt beim -c höheren Wert machen. mkfs-ubifs muss halt installiert sein wie vorher schon beschrieben.


    Das root.ubi kann man dann mit ubidump als Basis zum testen des Extracts benutzen und mit dem Inhalt des Filesystems der box vergleichen.


    Mal sehen wie weit wir am Wochenede kommen, im Moment warte ich mal auf Eure Inputs und schaue ob ich es nicht so flott hinkriege wie am PC < 40 Sekunden zum Listen und <80 Sekunden für ganzes Image extrahieren. Die Dreambox ist da leider im Moment noch 10x so langsam. Das ist zwar OK weil man mitlesen und nebenher vergleichen kann, aber für Produktive Nutzung muss es schneller werden, vor allem weil das Dekomprimieren auch noch zeit kosten wird.

  • Auf er ersten Seite ist jetzt eine 0.0.8. Ich habe an der Performance gearbeitet - das ganze ist jetzt etwa doppelt so schnell - also listing eines ganzen Images in rund 1 mind und extrahieren in rund 7-8min auf meiner 7020hd. Die Erkennung von ubi images vs. ubivolumes vs NFI image wurde gefixed, es wird jetzt bei allen wieder sauber die sector size und die eraseblocksize ausgelesen. Damit sind ubi images und ubi volumes von der Qualität praktisch ident, nur NFI images sind etwas schlechter, aber das hat im Moment nicht Priorität.


    Also brav weitertesten, weil im Idealfall würde ich es gerne heute noch schaffen das die extraktion der datenfiles von ubi mit compression none zu 100% klappt, aber wie immer bei sowas sind die letzten Fehler am schwersten zu finden :(


    Nur stehen wir jetzt auch schon bei >70h Aufwand, aber der zweite Apfel ist greifbar.


    LG
    gutemine

  • Hab mal mit dem script ein ubi gemacht .. musste es nur anpassen

    Shell-Script
    1. #!/bin/sh -xmkdir /tmp/rootmount -o bind / /tmp/roottouch /media/hdd/backup/root.ubichmod 777 /media/hdd/backup/root.ubicd /usr/lib/enigma2/python/Plugins/Extensions/dFlash/bin./mkfs.ubifs -m 512 -e 16384 -c 2015 -F -x none -r /tmp/root -o /media/hdd/backup/root.ubiumount /tmp/rootexit 0



    aber beim aufruf von ubidump -x ./extract/ root.ubi


    erzeugt er das verzeichnis extract und dort boot und sbin und link auf tmp .. und dann tut sich nix mehr :(



    bei - l kommt auch nur


    :DErstaunlich wie verwirrt Menschen plötzlich sind, wenn ein Satz anders endet als man es Kartoffel. :D

  • Eigentlich müsste dein script einen Fehler bringen weil der leb count zu gering ist.


    Standard bei den boxen mit 64MB Flash ist -c 3735 deswegen funktioniert auch die sector size und erase block size Erkennung nicht:


    >>> 0 Bytes sector size and 0 Bytes erase block size


    Probier mal das an Optionen in deinem Script:


    mkfs.ubifs -m 512 -e 15KiB -c 375 -F -x none -r /tmp/root -o /media/hdd/backup/root.ubi


    Nur korrekt gebaute ubifs images kann ubidump auch extrahieren, zu Not im dbackup.sh von einem dFlash Backup nachsehen auf /tmp was richtig ist und den Befehl von dort klauen.

  • die 2015 hab ich aus deinem vorschlag weiter oben habs jetzt malf auf 3735 mal schaun obs geht


    jetzt bringt er

    Code
    1. + mkdir /tmp/root+ mount -o bind / /tmp/root
    2. + touch /media/hdd/backup/root.ubi
    3. + chmod 777 /media/hdd/backup/root.ubi
    4. + cd /usr/lib/enigma2/python/Plugins/Extensions/dFlash/bin
    5. + ./mkfs.ubifs -m 512 -e 16384 -c 3735 -F -x none -r /tmp/root -o /media/hdd/backup/root.ubi
    6. Error: max_leb_cnt too low (14821 needed)
    7. + umount /tmp/root
    8. + exit 0

    :DErstaunlich wie verwirrt Menschen plötzlich sind, wenn ein Satz anders endet als man es Kartoffel. :D