[[Vorlage(archiviert,)]] {{{#!vorlage Wissen [:Programme_kompilieren: Pakete aus dem Quellcode erstellen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [http://bernhard-ehlers.de/projects/unyaffs.html Unyaffs] {en} ist ein freies ([wikipedia:GNU_General_Public_License:GPL]) Werkzeug für die [:Terminal:Kommandozeile], mit dem man Abbilder ("Images") von [http://www.yaffs.net/ YAFFS] {en} Dateisystemen entpacken kann. YAFFS (Yet Another Flash File System) ist ein freies [:Dateisystem:], das insbesondere in [wikipedia:Eingebettetes_System: Eingebetteten Systemen], in Linux- sowie Android-Systemen verwendet wird. Ein klassischer Anwendungsfall ist, dass man auf Dateien aus einem Backup seines Android-Telefons zugreifen möchte, das man mit einem Backup-Tool (z.B. mit [http://www.droidwiki.de/ClockWorkMod ClockworkMod Recovery] {de}) erstellt hat. = Kompilieren = Es ist erforderlich, dass man sich den Quellcode für das Programm herunterlädt und es selbst kompiliert, da nach derzeitigem Stand (Herbst 2012) keine fertig kompilierten Pakete für Ubuntu verfügbar sind. Den aktuellen Quellcode lädt man in einem neu erstellten Ordner (z.B.: '''~/build''') mit [:Archiv/Subversion:Subversion] herunter. Dazu gibt man im Terminal [2] folgenden Befehl ein: {{{#!vorlage Befehl cd ~/build svn checkout http://unyaffs.googlecode.com/svn/trunk/ unyaffs }}} Dann muss man in den nun entstandenen Unterordner (z.B.: '''~/build/unyaffs''') wechseln und den Quellcode kompilieren: {{{#!vorlage Befehl cd unyaffs gcc -Wall -g -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro -pie -fPIE -o unyaffs unyaffs.c }}} Wenn das Kompilieren fehlerfrei beendet ist, befindet sich nun die ausführbare Datei im selben Verzeichnis (Dateiname: '''unyaffs'''). = Benutzung = Die allgemeine Syntax von Unyaffs lautet: {{{#!vorlage Befehl unyaffs ABBILDDATEI }}} Konkret wird das Programm aufgerufen, indem man in den Zielordner (wohin alles entpackt werden soll) wechselt, dort den vollen Pfad zum Programm angibt (soweit man die ausführbare Datei nicht z.B. nach '''/usr/local/bin''' kopiert oder sonstwie die `PATH`-[:Umgebungsvariable:] angepasst hat) und die zu entpackende Abbilddatei angibt. Beispiel: {{{#!vorlage Befehl mkdir ~/android-data-entpackt cd ~/android-data-entpackt ~/build/unyaffs/unyaffs /media/SDCARD/clockworkmod/backup/2012-10-12/data.yaffs2.img }}} Anschließend befinden sich im Zielordner alle entpackten Dateien, die in der Abbilddatei enthalten waren. = Links = * [http://bernhard-ehlers.de/projects/unyaffs.html Projektseite] {en} * [github:ehlers/unyaffs:Quelltext] {en} * [http://fehertamas.com/2011/android-systemeinstellungen-nach-rom-update/ "Android-Systemeinstellungen nach ROM-Update"] {en} - Quelle dieser Vorgehensweise * [http://www.droidwiki.de/ClockWorkMod Anleitung zur Erstellung von Backups mit ClockWorkMod] {de} #tag: Sicherheit, Shell, Kommunikation, Android