Firmware Downgrade Projekt

  • 16 Antworten
  • Letztes Antwortdatum
Thyrion

Thyrion

Ehrenmitglied
2.862
Da mit dem Update (letzte Woche) scheinbar auch ein paar Probleme hinzugekommen sind, wäre es doch interessant eine (Win-freie) Möglichkeit anzubieten / zu beschreiben, wie man das Update wieder loswird und zurück zur alten Firmware kommt.

Eine alte System.img hab ich in einem anderen Thread schon gesehen.
Reicht das?
Was fehlt sonst noch?
Wie kommen wir daran?
 
/system und Kernel sollte sich leicht machen lassen. Einfach das recovery.img von multioptionSDK flashen, dann mit adb verbinden und die interne SD-Karte mounten (in der adb shell; geht wahrscheinlich mit mmcblk1p1 oder so mit einer externen auch):
Code:
mount /dev/block/mmcblk0p2 /sdcard
Dann das gewünschte system.img und flash_eraseall rüberkopieren:
Code:
adb push system.img /sdcard
adb push flash_eraseall /sdcard
Und dann über adb shell:
Code:
/sdcard/flash_eraseall /dev/mtd/mtd1
mount -t yaffs2 /dev/block/mtdblock1 /system
cd /system
unyaffs /sdcard/system.img
reboot
Das flash_eraseall gibts hier; eventuell sollte man das vielleicht in ein neues recovery.img integrieren. Aber nicht unbedingt meine Version, die ist statisch mit glibc gelinkt und daher viel größer als nötig.

Den alten Kernel hab ich nicht, aber davon könnte jemand, der das Update nicht installiert hat, recht einfach ein Image erstellen (auch im recovery mode):
Code:
dump_image boot /sdcard/kernel.img
Und dann halt mit adb pull oder sonstirgendwie rüberkopieren. Den müsste man dann sowohl mit fastboot als auch mit flash_image (auf mtd0) flashen können.

Beim Radio wirds schwieriger, da müsste man erstmal rausfinden, wo das genau im Flash liegt, und dann noch den Kernel modifizieren, damit man drauf zugreifen kann. Beim Bootloader vermute ich, dass der auf 0x02500000 liegt (boot/mtd0 fäng bei 0x02560000 an), aber das müsste man natürlich auch erstmal prüfen.
 
Zuletzt bearbeitet:
Also ich würde da doch lieber warten. Mein Erfahrungen mit Firmware Downgrades bei Handys waren bisher eher schlecht. Weiss allerdings nicht, wie das bei Android ist. Aber ich befürcht, dass eher mehr kaputt geht und man hinterher ein sackteuren Briefbeschwere in schönem Schwarz hat, vorallem wenn man sich nicht auskennt.
 
Schon klar, wer sich mit Linux nicht gut auskennt, sollte davon lieber die Finger lassen. Wenn du das falsche löschst oder überschreibst, ist das Handy Toast (oder im besten Fall nur schwer wiederbelebbar).

Das was ich beschrieben hab, hab ich gestern auch so ausprobiert und mein Handy lebt noch (siehe auch den verlinkten Post). Garantie gibts natürlich trotzdem keine. Wenn das Galaxy nach dem Downgrade deinen Hund frisst, bin ich nicht schuld. ;)
 
Update habe ich auch drauf, sonst würde ich das mit dem Kernel-Image machen.

Beim Umflashen besteht natürlich immer ein Risiko... Mein Ziel ist im Moment auch eher herauszufinden, ob die Möglichkeit besteht, ob wir diese Möglichkeit (für uns und andere) schaffen wollen und wieviel Aufwand das bedeutet.

Solange Fastboot noch geht, man dann ein funktionierendes Recovery Image flashen kann ist man doch weit vom edlen Briefbeschwerer oder der Buchstütze entfernt ;) (vielleicht hat man ja auch Glück und kommt günstig an ein zweites Exemplar zum Ausprobieren - vielleicht sogar ein halb verflashtes, dem man wieder Leben einhauchen kann)
 
Zuletzt bearbeitet:
Wollte damit nur sagen, dass hier nicht ein *Ich habe bisher noch nicht mal Windows von der Recovery Partition neu installiert bekommen* User kommt, ja die gibt es hier auch ;). Sich dann über die ganze "komischen" Befehle wundert ("komisch die funktionieren unter "DOS" garnicht?") es dann doch irgendwie hinbekommt, dabei aber das Gerät schrottet.
 
Och... Ich zahl 5 € für den Briefbeschwerer ;) -- aber nur, solange ich noch keine 10 Stück habe, oder das Tragen zur Recycling-Stelle teuerer wird... *g*

P.S: Ich weiß, das ist total OFFTOPIC
 
Thyrion schrieb:
Solange Fastboot noch geht, man dann ein funktionierendes Recovery Image flashen kann ist man doch weit vom edlen Briefbeschwerer oder der Buchstütze entfernt ;) (vielleicht hat man ja auch Glück und kommt günstig an ein zweites Exemplar zum Ausprobieren - vielleicht sogar ein halb verflashtes, dem man wieder Leben einhauchen kann)
Hab dabei an JesusFrekes erste Flash-Versuche gedacht - beim G1 kann man offenbar ausm recovery ganz einfach den Bootloader flashen. Beim Galaxy scheint das auf den ersten Blick nicht so zu sein, aber man weiß ja nie, vielleicht ist der ja doch bei "boot" dabei... Werde auf jeden Fall nochmal ein Image von mtd0 machen und mit dem Update-Kernel vergleichen, ob die wirklich gleich sind.
 
leromarinvit schrieb:
Hab dabei an JesusFrekes erste Flash-Versuche gedacht - beim G1 kann man offenbar ausm recovery ganz einfach den Bootloader flashen. Beim Galaxy scheint das auf den ersten Blick nicht so zu sein, aber man weiß ja nie, vielleicht ist der ja doch bei "boot" dabei... Werde auf jeden Fall nochmal ein Image von mtd0 machen und mit dem Update-Kernel vergleichen, ob die wirklich gleich sind.

Sieht eher nicht so aus:
Code:
$ strings boot.img 
ANDROID!
 -- System halted
ran out of input data
Malloc error
Out of memory
incomplete literal tree
incomplete distance tree
bad gzip magic numbers
internal error, invalid method
Input is encrypted
Multi part input
Input has invalid flags
invalid compressed format (err=1)
invalid compressed format (err=2)
out of memory
invalid compressed format (other)
crc error
length error
Uncompressing Linux...
 done, booting the kernel.
...
Habe keine Strings gefunden, die aus fastboot hindeuten.

Aber genau wird man es wohl erst wissen wenn jemand seine boot Partition löscht.
 
Hab grad meinen gestern erstellten Dump von mtd0 mit dem hdblog-Kernel verglichen - 1:1 identisch. Gibt also keine Gefahr, den Bootloader zu löschen. Sobald jemand den alten Kernel dumped, können ihn andere auch wieder verwenden:

Flashen geht am einfachsten via fastboot:
Code:
fastboot erase boot
fastboot flash boot kernel.img
oder via adb shell (flash_eraseall natürlich vorher wieder hinkopieren):
Code:
/somewhere/flash_eraseall /dev/mtd/mtd0
flash_image boot kernel.img
 
Zuletzt bearbeitet:
Das klingt doch schonmal super. Danke.
 
Hallo zusammen,

ich denke, die Frage passt hier ganz gut rein: kann mir jemand im Detail sagen, wie der recovery mode funktioniert? Was ich schon weiss, ist folgendes:
- Man kommt rein via VolumeDown+Call+Power.
- Wenn man dann nochmal Power drückt, wird das Recovery gestartet (grade schmerzhaft festgestellt, ich dachte dafür ist die Menu-Taste.. :( ). Welche Optionen gibts noch?

Der Rest ist jetzt geraten:
- Beim Recovery bootet das Galaxy einfach nicht von mtd0, sondern von mtd3 und startet dann brav init, aber die spezielle init.rc startet dann nur /sbin/recovery.
- /sbin/recovery macht dann ein Wipe auf die Daten- und Cachepartitionen (d.h. mtd2,mtd4 und mtd5).

Soweit korrekt?

Danke, CU Floe
 
In /sbin/recovery ist hard eincodiert was im recovery passiert. Im original Samsung wird wohl nur ein Wipe der Daten gemacht. Ob auch ota-updates funktionieren kann man jetzt noch nicht sagen.

Das mit dem recovery aus versehen gestartet tut mir leid. Ich hab damals Menu gedrückt, und "freute" mich dann auch über das recovery. :D

multioptionSDK
 
Hat es eigentlich schon jemand geschafft, via "fastboot boot" einen Kernel + Ramdisk direkt aus dem RAM ohne Flashen zu starten? Ich hab mal das Original-Recovery-Image aus dem Samsung-Update gesplittet und mit der passenden cmdline rübergeschickt, aber ausser "booting linux..." passiert dann nix mehr.
 
floe schrieb:
Hat es eigentlich schon jemand geschafft, via "fastboot boot" einen Kernel + Ramdisk direkt aus dem RAM ohne Flashen zu starten? Ich hab mal das Original-Recovery-Image aus dem Samsung-Update gesplittet und mit der passenden cmdline rübergeschickt, aber ausser "booting linux..." passiert dann nix mehr.

Genauso bei mir, ich habe das Gefühl, dass Samsungs fastboot ein paar Bugs hat. fastboot reboot funktioniert bei mir nämlich auch nicht.
 
Erbarmt sich denn keiner? So ein Kernel-Dump ist wirklich nicht schwer...

Ich glaube, ein Baseband-Downgrade könnte möglich sein, sobald wir den Kernel-Source von Samsung haben. Dann könnte man eine weitere mtd partition (mtd6) eintragen und auf den Rest vom Flash zugreifen. Man kann natürlich auch das Binary patchen, das ist aber umständlicher (weil bei der kernel command line [vermutlich, hab noch nicht geschaut] nicht genug Platz ist).

Damit wären wahrscheinlich die Market-Probleme gelöst.
 

Ähnliche Themen

E
  • Gesperrt
  • Angepinnt
  • email.filtering
Antworten
0
Aufrufe
1.602
email.filtering
E
F
Antworten
3
Aufrufe
1.678
email.filtering
E
T
  • Ternalo
Antworten
5
Aufrufe
2.763
coolfranz
coolfranz
Zurück
Oben Unten