Samsung Galaxy S Plus I9001 rooten

  • 494 Antworten
  • Letztes Antwortdatum
Ja den rechtlichen Aspekt sollten wir/ihr definitiv berücksichtigen, wegen soetwas soll niemand juristischen Ärger bekommen. Danke noch mal für deine Anleitung. Ein erster Schritt zu den eigenen Programmen :)
 
Hallo,

also erstmal vielen Dank für die Anleitung! Nach etwas längerem Rumprobieren hab ich es mit meinem sehr sehr wagen Linux Kenntnissen hinbekommen die .snd zu erstellen. Flashen werd ich sie wohl erst heute Abend in ruhe.

@Frank : du solltest vielleicht in deiner Anleitung noch dazuschreiben ( und zwar für solche Trottel wie mich ;) ) das man die .sh scripte nach dem erstellen mit sudo chmod x+ *.sh erst noch ausführbar machen muss damit es funktionierren kann.


ansonsten ein dickes DANKESCHÖN !
 
  • Danke
Reaktionen: frank_m
Azzrael schrieb:
@Frank : du solltest vielleicht in deiner Anleitung noch dazuschreiben ( und zwar für solche Trottel wie mich ;) ) das man die .sh scripte nach dem erstellen mit sudo chmod x+ *.sh erst noch ausführbar machen muss damit es funktionierren kann.
Erledigt. Danke für den Hinweis. So ist das mit den Sachen, die "selbstverständlich" sind. ;)
 
super Arbeit! riesen Dank und Respekt an frank_m.
Ich habe auf meinem Handy KF8 vom Werk. Kann ich da auch die KP4 flashen?
Ist ja beides Eu, aber ich frag' lieber vorher, als mich hinterher zu ärgern

EDIT:
noch eine Frage/Problem, ich bekomme beim sctipt immer "extract.sh: 46: length: not found" und er erstellt eine 0-Byte Datei namens 0 :/
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Towelie90
Hallo frank_m,

vielen Dank für deine Arbeit, habe heute mein SGS+ erfolgreich gerootet und erst mal alle samsung apps runtergehauen ^^. Funktioniert alles Bestens inkl. Titanium Backup.

:cool2:
 
Hallo,

ok, man kann sich das Verändern von SMD Files auch sparen. Ich habe herausgefunden, dass die guten alten TAR Files auch funktionieren. Man muss lediglich alle Files, die man flashen will, in eine TAR Datei zusammenfassen und dann "One Package" im Odin Mutidownloader aktivieren und die passende ops Datei laden.

//EDIT: So ganz klappt es doch nicht. Bei XXKP4 hat er eben nicht alle Dateien geflasht, die im TAR waren. Keine Ahnung, warum nicht.

//EDIT2: Dafür ist es mir jetzt gelungen, einzelne Partitionen zu flashen. Also z.B. nur den Kernel. Damit sollte der Weg frei sein für einen Kernel, der rootet. Jetzt muss ich nur noch den Kernel bauen ...
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: _strauch_, Azzrael und shmerlin
So kurzer Statusbericht:
Habe gestern Abend wie angesagt mein SGS+ geflashed und wie erwartet habe ich ein voll gerootetes und funktionstüchtiges Handy!

Nochmal dickes Lob an Frank!
Das mit dem Kernel hört sich super an! Sobald der verfügbar ist werden die ROMs wohl auch aus allen Löchern sprießen.

Ich habe gestern mal einiges an Samsung quatsch von meinem Handy geschmissen. Hier mal ein Link zu Darky einer wirklich genialen ROM für das SGS und SGS2 dort ist aufgeführt was ihr problemlos löschen könnt.

10.2 Final Lite Edition... made by you! | DarkyROM

frank_m schrieb:
Wie immer gilt: Jeder ist für sein Telefon selber verantwortlich. Wer sein Gerät mit Hilfe dieser Anleitung schrottet, ist selber schuld. Ich hab euch gewarnt, die Sache ist gefährlich.
 
  • Danke
Reaktionen: _strauch_
Hi Azzrael,

danke super Link, da kann ich dann ja jede Menge scheiß rausschmeißen den ich nicht brauche. Zur Zeit läuft bei mir z.B. Gmail, Email und Enhanced EMail. jedes brauch 30MB RAM, da reicht dann auch einer, ich kann den Samsung Launcher ersetzten super. Heute Abend versuch ich mich mal am rooten.

Weiß jemand wo man die Google Email App (nicht Gmail), Telefon und Kalender App bekommt?
 
Hallo,

erstmal danke für die bisherige Arbeit zum rooten.

Ich habe dir Firmware modifiziert, aber noch nicht geflasht. Denn zur Überprüfung, ob alles geklappt hat, habe ich die gerootete SMD_PDA_I9001XXKP4_....smd mit der originalen Datei verglichen, aber beide Dateien haben die selbe Größe. Dann hab ich die gerootete Version nochmal wo anders hin entpackt und die Ausgabe des extract-Shellscripts verglichen, Länge und Offset aller Dateien sind mit den Angaben beim Entpacken der originalen Datei identisch.

Müsste sich das nicht unterscheiden, wenn ich da die su und Superuser.apk drin habe?

LG Robert

EDIT: Reicht es denn, wenn ich nur die SMD_PDA bearbeite? Oder muss ich alle SMDs entpacken und zum Schluss zusammenfügen?
 
Zuletzt bearbeitet:
@TheNephilim

es reicht wenn du die PDA bearbeitest. Und ja die beiden Dateien sind identisch von der Größe hat mich auch erst stuzig gemacht funktioniert aber einwandfrei.
 
Topjob! :scared:

Vielen Dank frank_m und alle anderen, die dazu beigetragen haben! Hab erst seit ein paar Tagen mit dem SGS+ mein erstes Android smartphone und bin euch echt dankbar.

greets t
 
So ich hab mir jetzt auch die Firmware gebastelt. Mal zu Absicherung, woher kann ich die Originalfirmware herbekommen. Wenn irgendwas schief geht oder ich was falsch gemacht haben sollte. Kann ich dann die Originalfirmware wieder einflashen? Telefon ist gerade neu, da bin ich noch etwas unsicher. Aber lange Akkulaufzeit und weniger Samsungschrott ist sehr verlockend.
 
Die original Firmware bekommst du bei samfirmware.com musst dich einfach kostenlos Anmelden.
 
Ok das hab ich eh schon und damit klappen dann auch wieder automatische Updates usw?
 
Hab meins (noch? bin noch unsicher) nicht gerootet, aber bei dem, was ich so gelesen habe, steht, dass man auch mit gerooteten Geräten Updaten kann, aber dann geht der root halt flöten.
 
Funktioniert das script bei euch? ich bekomme nur eine Fehlermeldung:
Code:
nex@mathias-pc:~/galaxy/I9001XXKP4$ sh -x '/home/nex/galaxy/I9001XXKP4/extract.sh' '/home/nex/galaxy/I9001XXKP4/SMD_PDA_I9001XXKP4_CL374422_REV00_user_low_ship_EMMC.smd' 
+ base=0
+ length=1
+ length
/home/nex/galaxy/I9001XXKP4/extract.sh: 1: length: not found
Ich habe das Script unter Ubuntu 11.04 ausgeführt
 
ja hat bei mir geklappt aber ich hab das script im gleichen ordner gehjabt wie die smd datei
 
_strauch_ schrieb:
ja hat bei mir geklappt aber ich hab das script im gleichen ordner gehjabt wie die smd datei
hm im selben Ordner habe ich es auch. das muss an etwas anderem liegen
EDIT:
jetzt hat's funktioniert, ich habe 'sh' weggelassen und es genau so gemacht, wie frank_m geschrieben hat
 
Zuletzt bearbeitet:
Hallo,

ergänzend zu den vorherigen Scripten ein neues. Ich nenne es "pack2.sh". Es dient dazu, SMD Archive aus beliebigen Dateien zu erzeugen, ohne vorher ein anderes Archiv entpackt zu haben. Damit kann man SMD Archive nach belieben zusammenstellen.
Code:
#!/bin/bash

if [ "${1}" == "-p" ]
then
	echo "Creating PDA Archive"
	echo -n "PDASMDIMG" > newheader
	dd if=/dev/zero of=newheadertmp bs=1 count=7 2>/dev/null
	cat newheadertmp >> newheader
elif [ "${1}" == "-c" ]
then
	echo "Creating CSC Archive"
	echo -n "CSCSMDIMG" > newheader
	dd if=/dev/zero of=newheadertmp bs=1 count=7 2>/dev/null
	cat newheadertmp >> newheader
elif [ "${1}" == "-m" ]
then
	echo "Creating Modem Archive"
	echo -n "MODEMSMDIMG" > newheader
	dd if=/dev/zero of=newheadertmp bs=1 count=5 2>/dev/null
	cat newheadertmp >> newheader
else
	echo "Missing Parameter!"
	echo "Usage: ..."
	exit 1
fi

# We use always 2560 Bytes Header. Make it dynamic, if you want. :)

offset=2560
length=0
loop=3

#we need one loop for each file. First argument is archive type, then the filenames
let "loops = $# + 1"

while (( loop < loops ))
do
	if [ -e "${!loop}" ]
	then
		# calculate filesize
		filesize=$(stat -c%s ${!loop})
		hexsize=`echo ""$filesize" "16" o p" | dc`
		hexstring="00000000${hexsize}"
		stringlen=`echo ${#hexstring}`
		hexsize="${hexstring: -8}"
		byte1="\x${hexsize:6:2}"
		byte2="\x${hexsize:4:2}"
		byte3="\x${hexsize:2:2}"
		byte4="\x${hexsize:0:2}"
		echo -n -e "${byte1}${byte2}${byte3}${byte4}" >> newheader

		#calculate offset
                hexsize=`echo ""$offset" "16" o p" | dc`
                hexstring="00000000${hexsize}"
                stringlen=`echo ${#hexstring}`
                hexsize="${hexstring: -8}"
                byte1="\x${hexsize:6:2}"
                byte2="\x${hexsize:4:2}"
                byte3="\x${hexsize:2:2}"
                byte4="\x${hexsize:0:2}"
                echo -n -e "${byte1}${byte2}${byte3}${byte4}" >> newheader

		#next offset is after the next file
		let "offset += filesize"

		# a 1000 - why ever
		echo -n -e "\x01\x00\x00\x00" >> newheader

		# filetype. Seems to specify the partition or something
		type=`expr match "${!loop}" 'partition'`
		if (( type > 0 ))
		then
			echo -n -e "\x00\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'osbl'`
		if (( type > 0 ))
		then
			echo -n -e "\x46\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'EMMCBOOT'`
		if (( type > 0 ))
		then
			echo -n -e "\x47\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'boot.img'`
		if (( type > 0 ))
		then
			echo -n -e "\x48\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'amss'`
		if (( type > 0 ))
		then
			echo -n -e "\x49\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'dbl'`
		if (( type > 0 ))
		then
			echo -n -e "\x4D\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'adsp'`
		if (( type > 0 ))
		then
			echo -n -e "\x50\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'persist'`
		if (( type > 0 ))
		then
			echo -n -e "\x90\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'recovery'`
		if (( type > 0 ))
		then
			echo -n -e "\x91\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'emmcparam'`
		if (( type > 0 ))
		then
			echo -n -e "\x92\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'system'`
		if (( type > 0 ))
		then
			echo -n -e "\x93\x00\x00\x00" >> newheader
		fi
		type=`expr match "${!loop}" 'cache'`
		if (( type > 0 ))
		then
			echo -n -e "\x94\x00\x00\x00" >> newheader
		fi

		#filename
		echo -n "${!loop}" >> newheader
		length=`expr length ${!loop}`
		let "count = 16 - length"
		dd if=/dev/zero of=newheadertmp bs=1 count=${count} 2>/dev/null
		cat newheadertmp >> newheader

		# MD5 checksum
		checksum=`md5sum ${!loop} | tr '[a-z]' '[A-Z]'`
		echo -n ${checksum:0:32} >> newheader
	else
		echo "File not found: ${!loop}"
		exit 1
	fi
	let "loop += 1"
done
filesize=$(stat -c%s newheader)
let "size = 2560 - filesize"

dd if=/dev/zero of=newheadertmp bs=1 count=${size} 2>/dev/null
cat newheadertmp >> newheader
rm newheadertmp

loop=3

cat newheader > ${2}

while (( loop < loops ))
do
	cat ${!loop} >> ${2}
	let "loop += 1"
done
rm newheader
Syntax:
Code:
pack2.sh TYPE Archiv.smd file1 file2 file3 ...
TYPE kann dabei sein:
  • -p (für PDA Archive)
  • -c (für CSC Archive)
  • -m (für Modem Archive)
Beispiel:
Code:
./pack2.sh -p Kernel.smd boot.img
baut ein SMD Archiv, dass nur den Kernel beinhaltet, welches später im PDA Feld von Odin geflasht werden kann. Noch eins:
Code:
./pack2.sh -p SMD_I9001BOKF6_I9001BOKF6_CL319318_REV00_user_low_ship_EMMC_test.smd partition.bin dbl.mbn osbl.mbn amss.mbn EMMCBOOT.MBN adsp.mbn boot.img system.ext4 cache.ext4 recovery.img persist.ext4 emmcparam.bin
Damit baut man quasi die komplette KF6 Firmware zusammen.

Zum Thema Kernel: Wenn ich einen originalen Kernel hernehme, kann ich den in ein separates Archiv packen und flashen. Alles ok, kein Thema.

Wenn ich diesen Kernel aber entpacke (mit split_bootimg) und neu packe (mit den Tools aus dem Android GIT Repository), dann bootet das System anschließend nicht mehr. Ich braucht ihn nicht mal zu verändern, nur entpacken und packen reicht schon. Das ist natürlich ernüchternd. Solange es mir nicht gelingt, ein lauffähiges boot.img zu bauen, ist ein an rooten darüber nicht zu denken.
 

Ähnliche Themen

K
Antworten
8
Aufrufe
3.709
Nufan
Nufan
S
Antworten
0
Aufrufe
1.330
se1111
S
S
Antworten
1
Aufrufe
1.787
juni
J
Zurück
Oben Unten