[Anleitung] Samsung Galaxy S2 - Firmware entpacken leicht gemacht

Hi,

ich habe ein Problem beim Flashen meiner selbstgebauten CustomRom.
Ich bin nach folgender Anleitung vorgegangen und habe ein offizielles Samsung Rom extrahiert und bearbeitet (Apps entfernt):
http://forum.xda-developers.com/showthread.php?t=1081239

Nachdem das Rom bearbeitet wurde, habe ich das neue factoryfs.img mit folgendem Befehl erstellt:

./mkuserimg.sh -s /my/customrom/dir ./factoryfs_custom.img ext4 ./temp 512M

Im Anschluss habe ich dieses in das Samsung TAR Archive hinzugefügt bzw. das vorhandene factoryfs (stock) mit meinem custom überschrieben.
Wenn ich dieses nun per ODIN flashe erhalte ich folgende Fehlermeldung:

<ID:0/007> Firmware update start..
<ID:0/007> boot.bin
<ID:0/007> NAND Write Start!!
<ID:0/007>
<ID:0/007> Complete(Write) operation failed.
<OSM> All threads completed. (succeed 0 / failed 1)
<ID:0/007> Removed!!
<ID:0/007> Added!!
<ID:0/007> Removed!!
<ID:0/007> Added!!

Und wenn ich das TAR Archive in tar.md5 umbenenne meckert ODIN natürlich das die MD5 Checksum nicht korrekt ist.

Kann mir vielleicht jemand helfen der hiervon mehr Ahnung hat? Vorab vielen Dank.

Greetz
 
Hab die Lösung gefunden:

  1. Run the following command to build a package tarball. Be sure to use identifiable names with versions or dates: Code:
    $ tar -H ustar -c image_1 [image_2 ...] > your_odin_package.tar
  2. Run the following command to sign each tarball with an md5 tail: Code:
    $ md5sum -t your_odin_package.tar >> your_odin_package.tar
    $ mv your_odin_package.tar your_odin_package.tar.md5
 
Zuletzt bearbeitet:
:thumbup: na dann gibts ja bald sicher ein neues ROM-> "Android Hilfe Edition" ? :D
 
Was soll das denn bitte bedeuten? Irgendwie total OT und dazu auch noch ein unnützer Kommentar ;)
 
Crapshit schrieb:
Was soll das denn bitte bedeuten? Irgendwie total OT und dazu auch noch ein unnützer Kommentar ;)


Passt schon, es muss auch Zeitgenossen geben, die mit einer Schaufel bewaffnet in den Keller gehen, sich noch 5 Meter tiefer buddeln, um dann leise, verstohlen und heimlich zu lachen


...welcome to Germany ;)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: KST66
Verflixt, als 20 Jahre nutzender Win User und dadurch völlig verblödet, verstehe ich von Linux natürlich überhaupt nichts. Hatte es noch nicht mal geschafft, eine Linux Distri zum laufen zu bringen. Lediglich in einer VM unter Win ging es mal. Allerdings habe ich nie die Zeit gefunden mich damit mal wirklich zu beschäftigen.

Da ich mir gerne auch meine eigene Rom zusammenbasteln würde, wollte ich mal fragen, ob einer der hier anwesenden Linux User nicht mal eine komplette Anleitung für Linux Anfänger schreiben kann (denn wenn ich das richtig sehe, ist das ganze unter Linux zu machen das sinnvollste)?

Also angefangen wie @nightly mit den benötigten Programmen für Linux übers entpacken der Stock Rom, Austausch des Kernels (wobei ich von ausgehe, das hier vielleicht nur die zImage Datei ausgetauscht werden muss), einfügen von Apps, Themes, Bootanimation bis hin zum packen des Roms sodass sie auch per Odin geflasht werden kann (alternativ als *.zip per CWM).

Denke mal, das würde hier doch mehrere Interessierte finden.

@nightly
Gute Arbeit für Deine Win Anleitung. Schade, das nicht alles unter Win geht.

Edit: Würde sowas überhaupt korrekt in einer Linux VM unter Win laufen? Oder müsste dafür ein richtiges Linux System eingerichtet werden.
 
Zuletzt bearbeitet:
dreamfast schrieb:
@nightly
Gute Arbeit für Deine Win Anleitung. Schade, das nicht alles unter Win geht.

@dreamfast

Danke ;) ^^

Du kannst übrigens durchaus 1:1 das selbe Ergebnis wie unter Linux auf deinem Windöschen erzielen, Firmware entpacken, packen, modden, themen...etc;

Android SDK, Cygwin, xUltimate,VM, usw. sind hier die nötigen Helferlein; komfortabler ist es aber natürlich mit Linux.:cool2:

Der einzige Grund, weshalb ich mich damals für Windows als Basis dieses kleinen HowTo´s entschieden hatte, spiegelt sich in deinem eigenen Posting im ersten Satz wider :flapper: :D



"...keep the simple things simple and make hard things possible ..." ;)


MfG

Nightly
 
Zuletzt bearbeitet:
Thx, aber ich werde doch erst mal versuchen, das ganze unter Ubuntu zu machen. Wie ich heute bemerken durfte, scheint mein Ubuntu 8.x aber zu alt zu sein, um ext4 darauf integriert zu bekommen. Jedenfalls brach es bei make mit jeder Menge Fehlermeldungen ab.
Ich werde daher jetzt Ubuntu 11.x in einer VM installieren und dann nochmals testen.

Schließlich ist man ja auch mit fast 50 noch nicht zu alt zum lernen. :D
 
So, Ubuntu 11.x habe ich jetzt in einer VM laufen. Die ext4_utils habe ich per make auch installiert bekommen. Gab zwar dabei eine Fehler, derselbe wie hier

gcc -I. -DANDROID -c output_file.c
output_file.c:25:18: fatal error: zlib.h: No existe el fichero o el directorio
compilation terminated.
make: *** [output_file.o] Error 1
aber den konnte ich per

sudo apt-get install zlib1g-dev
beheben, sodass make dann durchlief.

Nun komme ich aber nicht weiter, weil

./simg2img factoryfs.img output.img
immer folgenden Fehler

Cannot open input file factoryfs.img
auswirft.

Was mache ich falsch? Auch per sudo geht es nicht.

Hat hier jemand eine Antwort für mich, oder wäre es besser, direkt bei XDA zu fragen?
 
dreamfast schrieb:
Nun komme ich aber nicht weiter, weil


./simg2img factoryfs.img output.img
immer folgenden Fehler

Cannot open input file factoryfs.img

auswirft.

mkdir tempdir; mount -o loop output.img tempdir

...könnte ein Ansatz sein, wenn ich dich richtig verstehe...

- Was sagt dir LogCat zu seinem Problem ?
- ext4_utils sind in /system/extras ?
- Kontrolliere bitte auch deine "PATH"



Alternative: klopf mal eben freundlich bei z.B. pulser_g2 an, einen Versuch wäre es wert :)


MfG

Nightly
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: dreamfast
Ist factoryfs.img denn da und für den ausführenden Nutzer lesbar? Führe mal
ls -l -a
aus und zeige den Output hier.
 
  • Danke
Reaktionen: dreamfast
Danke schonmal für die Hinweise. PC ist für heute aber aus. Bin nur noch mit dem S2 und Tapatalk online. Werde morgen dann berichten.
 
@frank_m

Hier der gewünschte Output:

minski@ubuntu:~$ ls -l -a
total 232
drwxr-xr-x 23 minski minski 4096 2011-10-25 11:18 .
drwxr-xr-x 3 root root 4096 2011-10-22 02:26 ..
-rw------- 1 minski minski 1126 2011-10-25 11:33 .bash_history
-rw-r--r-- 1 minski minski 220 2011-10-22 02:26 .bash_logout
-rw-r--r-- 1 minski minski 3353 2011-10-22 02:26 .bashrc
drwx------ 12 minski minski 4096 2011-10-23 02:54 .cache
drwx------ 11 minski minski 4096 2011-10-24 10:57 .config
drwx------ 3 minski minski 4096 2011-10-22 02:37 .dbus
drwxr-xr-x 6 minski minski 4096 2011-10-25 11:25 Desktop
-rw-rw-r-- 1 minski minski 26 2011-10-25 11:18 .dmrc
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 Documents
drwxr-xr-x 2 minski minski 4096 2011-10-25 11:25 Downloads
-rw------- 1 minski minski 16 2011-10-22 02:37 .esd_auth
-rw-r--r-- 1 minski minski 179 2011-10-22 02:26 examples.desktop
drwxr-xr-x 3 minski minski 4096 2011-10-24 12:11 ext4_utils
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 .fontconfig
drwx------ 5 minski minski 4096 2011-10-26 10:40 .gconf
drwx------ 4 minski minski 4096 2011-10-22 02:38 .gnome2
drwxrwxr-x 2 minski minski 4096 2011-10-24 11:23 .gstreamer-0.10
-rw-rw-r-- 1 minski minski 142 2011-10-25 11:18 .gtk-bookmarks
dr-x------ 2 minski minski 0 2011-10-25 11:18 .gvfs
-rw------- 1 minski minski 1590 2011-10-25 11:18 .ICEauthority
drwxr-xr-x 3 minski minski 4096 2011-10-22 02:37 .local
drwx------ 3 minski minski 4096 2011-10-22 02:37 .mission-control
drwx------ 4 minski minski 4096 2011-10-22 02:43 .mozilla
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 Music
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 Pictures
-rw-r--r-- 1 minski minski 675 2011-10-22 02:26 .profile
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 Public
drwx------ 2 minski minski 4096 2011-10-25 11:18 .pulse
-rw------- 1 minski minski 256 2011-10-22 02:37 .pulse-cookie
-rw-r--r-- 1 minski minski 0 2011-10-24 12:11 .sudo_as_admin_successful
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 Templates
drwxr-xr-x 2 minski minski 4096 2011-10-22 02:37 Videos
-rw------- 1 minski minski 51 2011-10-25 11:18 .Xauthority
-rw------- 1 minski minski 96215 2011-10-26 10:48 .xsession-errors
minski@ubuntu:~$

@nightly
mkdir tempdir; mount -o loop output.img tempdir

das dürfte doch erst der Schritt sein, nachdem ich die factoryfs.img in output.img umgewandelt habe. Und das klappt ja bisher noch nicht.

Logcat? Sagt mir derzeit nichts. Man, ich glaube ich sollte mir doch mal langsam die Linux Fibel zur Gemüte führen. Wenn ich nur mehr Zeit hätte....

Unter system gibt es bei mir keinen Ordner "Extras". Die ext4_utils liegen bei mir auf dem Desktop. die factoryfs.img hatte ich extra dort hineinkopiert, weil ansonsten der Fehler, no found..... kam.
 
Oh je. Das wird ein langer Weg. Du hast nicht wirklich viel Erfahrung im Umgang mit Kommandozeilen, richtig?

Bist du sicher, dass du weiter machen willst? Dir fehlen haufenweise (und ich meine damit mehrere Jahre) Linuxgrundlagen.

In Kürze: Das ls Kommando hast du im Home Verzeichnis abgesetzt, s2img liegt aber unter ext4 (und nicht auf dem Desktop, und dort hat es auch überhaupt nichts verloren!). Nach dem korrekten Aufruf von s2img musst du den Pfad zum factoryfs.img ebenfalls absolut angeben.

Um dein Homeverzeichnis nicht komplett zuzumüllen, solltest du das alles in ein geeignetes Unterverzeichnis verlagern, z.B. "~/i9100_Firmware". Dort rein dann die ext4 Tools, also in "~/i9100_Firmware/ext4". Die factoryfs.img kann direkt in "~/i9100_Firmware", genau wie das tmp Verzeichnis fürs mounten (~/i9100_Firmware/tmp). Dann kannst du ins ~/i9100_Firmware/ Verzeichnis wechseln und
./ext4/s2img ./factoryfs.img output.img
sudo mount -o loop output.img tmp
ausführen. Anschließend hast du den Inhalt in ~/i9100_Firmware/tmp verfügbar.
 
  • Danke
Reaktionen: dreamfast
Sagte ja schon die Tage, das ich nach jahrzehntelangem Windows "Genuss" mich nicht gut umstellen kann. Aber man kann ja noch lernen. Und so langsam bekomme ich Spaß daran. OK, das noch fast alles fehlt, insbesondere auf Konsolenbasis, ist mir auch klar. Aber ich will mir Mühe geben, das zu verstehen und umzusetzen.

Wenn ich Dich nun richtig verstanden habe, wolltest Du das ls Kommando aus dem ext4 Ordner haben?

Vorsorglich mal hier:

minski@ubuntu:~/ext4_utils$ ls -l -a
total 444
drwxr-xr-x 3 minski minski 4096 2011-10-24 12:11 .
drwxr-xr-x 23 minski minski 4096 2011-10-25 11:18 ..
-rw-r--r-- 1 minski minski 17397 2010-12-29 16:43 allocate.c
-rw-r--r-- 1 minski minski 2060 2010-12-29 16:43 allocate.h
-rw-rw-r-- 1 minski minski 11232 2011-10-24 11:30 allocate.o
-rw-r--r-- 1 minski minski 1830 2010-12-29 16:43 Android.mk
-rw-r--r-- 1 minski minski 3818 2010-12-29 16:43 backed_block.c
-rw-r--r-- 1 minski minski 1282 2010-12-29 16:43 backed_block.h
-rw-rw-r-- 1 minski minski 3132 2011-10-24 11:30 backed_block.o
-rw-r--r-- 1 minski minski 6345 2010-12-29 16:43 contents.c
-rw-r--r-- 1 minski minski 1122 2010-12-29 16:43 contents.h
-rw-rw-r-- 1 minski minski 6020 2011-10-24 12:11 contents.o
-rw-r--r-- 1 minski minski 2561 2010-12-29 16:43 ext4_extents.h
-rw-r--r-- 1 minski minski 18997 2010-12-29 16:43 ext4.h
-rw-r--r-- 1 minski minski 2460 2010-12-29 16:43 ext4_jbd2.h
-rw-r--r-- 1 minski minski 11681 2010-12-29 16:43 ext4_utils.c
-rw-r--r-- 1 minski minski 3219 2010-12-29 16:43 ext4_utils.h
-rw-rw-r-- 1 minski minski 9232 2011-10-24 11:30 ext4_utils.o
-rw-r--r-- 1 minski minski 6048 2010-12-29 16:43 extent.c
-rw-r--r-- 1 minski minski 984 2010-12-29 16:43 extent.h
-rw-rw-r-- 1 minski minski 5256 2011-10-24 12:11 extent.o
-rw-r--r-- 1 minski minski 12928 2010-12-29 16:43 indirect.c
-rw-r--r-- 1 minski minski 992 2010-12-29 16:43 indirect.h
-rw-rw-r-- 1 minski minski 12084 2011-10-24 12:11 indirect.o
-rw-r--r-- 1 minski minski 3635 2010-12-29 16:43 jbd2.h
-rwxrwxr-x 1 minski minski 70635 2011-10-24 12:11 make_ext4fs
-rw-r--r-- 1 minski minski 8920 2011-05-17 09:01 make_ext4fs.c
-rw-r--r-- 1 minski minski 878 2010-12-29 16:43 make_ext4fs.h
-rw-r--r-- 1 minski minski 3749 2010-12-29 16:43 make_ext4fs_main.c
-rw-rw-r-- 1 minski minski 3760 2011-10-24 11:30 make_ext4fs_main.o
-rw-rw-r-- 1 minski minski 11704 2011-10-24 11:30 make_ext4fs.o
-rw-r--r-- 1 minski minski 592 2011-05-17 01:26 Makefile
-rwxr-xr-x 1 minski minski 885 2011-05-17 01:21 mkuserimg.sh
-rw-r--r-- 1 minski minski 0 2010-12-29 16:43 MODULE_LICENSE_APACHE2
-rw-r--r-- 1 minski minski 10690 2010-12-29 16:43 NOTICE
-rw-r--r-- 1 minski minski 10082 2010-12-29 16:43 output_file.c
-rw-r--r-- 1 minski minski 1007 2010-12-29 16:43 output_file.h
-rw-rw-r-- 1 minski minski 10040 2011-10-24 12:11 output_file.o
drwxr-xr-x 2 minski minski 4096 2011-05-17 05:06 private
-rw-r--r-- 1 minski minski 9046 2010-12-29 16:43 sha1.c
-rw-r--r-- 1 minski minski 650 2010-12-29 16:43 sha1.h
-rw-rw-r-- 1 minski minski 10048 2011-10-24 12:11 sha1.o
-rwxrwxr-x 1 minski minski 12928 2011-10-24 12:11 simg2img
-rw-r--r-- 1 minski minski 6086 2010-12-29 16:43 simg2img.c
-rw-rw-r-- 1 minski minski 5004 2011-10-24 12:11 simg2img.o
-rw-r--r-- 1 minski minski 6017 2010-12-29 16:43 sparse_crc32.c
-rw-r--r-- 1 minski minski 679 2010-12-29 16:43 sparse_crc32.h
-rw-rw-r-- 1 minski minski 2068 2011-10-24 12:11 sparse_crc32.o
-rw-r--r-- 1 minski minski 1991 2010-12-29 16:43 sparse_format.h
-rw-r--r-- 1 minski minski 1692 2010-12-29 16:43 uuid.c
-rw-r--r-- 1 minski minski 765 2010-12-29 16:43 uuid.h
-rw-rw-r-- 1 minski minski 1656 2011-10-24 12:11 uuid.o
minski@ubuntu:~/ext4_utils$

PS: Das jetzt die factoryfs.img nicht aufgelistet wird, liegt daran, das ich die vorsorglich wieder in den KI8 Ordner zurück verschoben habe.
 
Interessant, aber es löst dein Problem nicht. Der Aufruf ist nach wie vor falsch, da factoryfs.img nicht vorhanden ist.

Ich halte auch nichts davon, es jetzt in dieses Verzeichnis zu kopieren. Trenne von vornherein funktionale Einheiten. Die ext4 Tools sind ein Verzeichnis, die Firmware ein anderes. Alles andere wird unübersichtlich und fehleranfällig.
 
Das ist schon klar. Mache ich ja dann auch. ;ir ging es jetzt nur darum, ob ich Dich korrekt verstanden hatte, das Du diesen Inhalt sehen wolltest. Das die fs.img nicht da drin ist, hatte ich ja noch darunter editiert.

Edit: Hat alles geklappt. Erstmal ein dickes Danke an dieser Stelle. Nun schaue ich mal weiter. Auf jeden Fall kann ich nun erstmal etwas "spielen".

Hm, offensichtlich hat es gestern daran gelegen, (Windoof geschädigter User), das es einfacher ist, wenn beim Aufruf des Kommandos die fs.img im selben Ordner liegt, wie das Kommando. Egal, bin schon froh, bis zu diesem Punkt gekommen zu sein.
 
Zuletzt bearbeitet:
Ich habe mich jetzt auch mal ein bisschen mit der Materie befasst und es hat auch alles soweit geklappt. Nun habe ich aber mein S2 leider momentan nicht zur Hand, weshalb ich selber leider nicht testen kann ob ich die FW auch installieren kann.
Was mich aber wundert, nachdem ich die FW entpackt habe und einige Apps entfernt habe und dann die FW wieder gepackt habe, ist die Datei größer als vorher! Kann das so richtig sein?
Eigentlich nicht oder?
Vielleicht kann mir ja einer so schon helfen, ansonsten werde ich abwarten müssen und dann testen...

Nochmal zur Ergänzung, es geht eigentlich erstmal nur um die factoryfs.img die jetzt größer ist als vorher, obwohl ich Systemapps gelöscht habe!
 
Zuletzt bearbeitet:
ChriPi schrieb:
Was mich aber wundert, nachdem ich die FW entpackt habe und einige Apps entfernt habe und dann die FW wieder gepackt habe, ist die Datei größer als vorher! Kann das so richtig sein?
Wie hast du sie denn gepackt? Denk dran, dass du ein Sparse-Image erzeugen musst.
 
Ich habs unter Ubuntu mit den ext4_utils entpackt und auch wieder gepackt, so wies hier irgendwo bechrieben ist!
Wenn ich die die factoryfs.img entpacke und dann wieder packe ohne was zu ändern ist auch alles gleich groß, das scheint also insgesamt schon richtig zu laufen oder?

Werds wahrscheinlich einfach mal testen müssen, sobald mein S2 wieder hier ist!
 

Ähnliche Themen

Maki.
Antworten
0
Aufrufe
8.631
Maki.
Maki.
skiflyer
Antworten
3
Aufrufe
14.139
Pseudofreak
P
P
Antworten
11
Aufrufe
11.192
Predo
P
Zurück
Oben Unten