Root-Shell?

  • 10 Antworten
  • Neuester Beitrag
Diskutiere Root-Shell? im Root / Hacking / Modding für Samsung Galaxy S im Bereich Samsung Galaxy S (I9000) Forum.
D

droide23

Neues Mitglied
so hatte mich für die app variante zum testen entschieden ...
z4root ...jedoch war mein eigentlichen ziel eine rootshell bzw. den terminalemulator als rootuser zu bekommen aber leider sagte er mir
nicht das was ich dachte who kannte er garnich

id gab mir auch nicht die info das ich su bin ...
befehle wie ifconfig etc..selbes ergebniss???

wie kann ich denn testen in einem android system das ich rootrechte habe ?

einfach mkdir *** im systemordner via shell ???

oder hab ich totall jetzt ein denkfehler?
weil wenn ich das app ausführe sollte ich doch su rechte haben demzufolge auch jegliche aktionen die ich am phone ausführe auch mit su rechten, ergo
wenn ich die shell starte dann als root ergo ist es ne root shell ....


richtig
 
scheichuwe

scheichuwe

Guru
Welche Firmware hast du drauf?
 
D

droide23

Neues Mitglied
froyo 2.2 jp0
 
scheichuwe

scheichuwe

Guru
Was passiert denn wenn du im Terminalemulator su eingibst?
 
tron12

tron12

Ambitioniertes Mitglied
nein, so ist das nicht. wenn du den terminal-emulator startest, bist du noch nicht root. du musst nur su eingeben, dann sollte sich der prompt auf # ändern. ausserdem, um am system selber was zu verändern musst du zusätzlich noch die partitionen read/write mounten, die sind standardmäßig read-only gemountet.

was noch anders wie in einem linux-system ist, ist dass du, jenachdem wie du zu root gekommen bist, noch nicht alles machen kannst, du brauchst für viele sachen noch busybox. was mit vorsicht zu behandeln ist, jenachdem wie du zu root geworden bist. ich persönlich verwende den cf kernel ( xda-developers - View Single Post - [21.12.2010][CF-Root v1.3] JPH/K/6/M/A/O/U/X/Y - su+busybox+2e, CWM compat!) weil da alles drin ist was ich brauche. ( CWM + 2e recovery etc ). ich habe mal z4root und busybox genommen, und hab dann den cf-kernel geflasht weil ich 2e wollte, und schon ist alles durcheinander gewesen. vorsicht mit dem mischen :)

auf jedenfall: wenn du busybox hast, ist je nach pfad trotzdem das toolbox kommando mit dem gleichen namen in einem früheren pfad, am besten vergleichen: z.b. mount und busybox mount sind unterschiedlich. zum remounten am besten busybox nehmen.
 
D

droide23

Neues Mitglied
ahhaaa.....

jipeee...danke leute , wie hab ich mich früher gefreut wenn nach langen
nächten ...ein "id" root ergab ...:scared:

das mit dem su hats gebracht....dachte halt wenn man root ist und als root die shell ausführt man dann auch ne root shell hat wie bei unix üblich....etc..

auch ein guter tip mit dem ro mounted ...also wenn ich z.b. die init.rc anpassen will ...z.b. shellscripts sollen gestartet werden ....muss ich die partition rw mounten , init anpassen gegebenfalls init.rc von ro auch auf rw um zu ändern und danach alles wieder so wie es war machen ....?

kernel will ich erstmal so lassen ...

muss mich erst etwas in das android reinfuchsen aber trotzdem noch ein paar fragen...

diese shell ist die eine vollwertige linuxshell (sh) mit allen standardkommandos wie bei linux?
oder haben die androidmacher diverse kommandos entfehrnt ?
wo kann ich über dieses android lernen bzw. in wie weit es mit linux(kommandos) übereinstimmt

edit...
hatte probleme mit dem ifconfig aber hat sich alles geklärt
ifconfig ist halbwegs implementiert, etwas anders als bei linux aber hey wenigstens was..
es zeigt nicht alle divices an sondern man muss expleziertdas jeweilige device angeben wie z.b. ifconfig wl0.1 für wlan
ebenfalls ist es möglich wie in linux ip und mac zuändern etc...

aber erstmal danke für den su tip...
 
Zuletzt bearbeitet:
tron12

tron12

Ambitioniertes Mitglied
wie ich schon oben geschrieben habe, es ist nicht genau wie ein normales linux-system. generell, das ist nicht nur bei android so, sondern unter sehr vielen anderen embedded-typ systemen mit arm auch. du kanns davon ausgehen, dass du bei solchen systemen einen kleinen systemspeicher und wenig ram hast. deshalb sind nicht wie bei einer normalen linux distri alle binärdateien separat vorhanden. das problem ist eigentlich einfach erklärt. ein normales linux-system hat shared libraries, das sind die *.so dateien in z.b. /lib.

ein dynamisch gelinktes programm greift dabei immer auf diese libraries zurück, und ist deshalb schlank, aber wie gesagt, braucht es immer die eine oder andere library, z.b. libc.6.so . die ist dafür natürlich sehr groß, weil sie nicht nur für eine datei da ist, sondern für so ziemlich alle linux binaries. hat den nachteil, wenn eine der benötigten libaries fehlt, geht nix.

ein statisch gelinktes programm hingegen funktioniert auch ohne libraries, muss aber dann alle funktionen der library einbinden, und ist dann dadurch viel größer.

beides ist für ein embedded system nicht optimal. deshalb gibt es das ding busybox, welches alle benötigten kommandos enthält, ebenso alle ( abgespeckten funktionen ) der libraries beinhaltet.

standardmäßig ist in android das toolbox binary installiert, mit den einzelnen kommandos als link auf toolbox, so ist z.b. mount auch nichts anderes als ein link darauf.

wenn du jetzt busybox installiert hast, gibt es von vielen kommandos 2 davon, einmal toolbox, einmal busybox. welches davon verwendet wird, ist nur die frage des suchpfads. ( echo $PATH )

wenn du sichergehen wills welches verwendet wird, einfach mit dem präfix tool- oder busybox aufrufen, z.b.

busybox mount -o remount,rw /system

oder

toolbox mount etc.etc.

probier auch

busybox ifconfig


welches der kommandos prezädenz hat, das kommando which gibts nur unter busybox, einfach which 'kommando' aufrufen, und dann ls -l '/ganzer/pfad/kommando'

oder ls -l `which kommando`
 
Zuletzt bearbeitet:
D

droide23

Neues Mitglied
erstmal nochmal danke für den beitrag, hat mir ne menge fragen beantwortet,

könnte sogar als erklärungs-howto genutzt werden, für viele andere user

besonders in bezug auf linux/unix user und der umstieg bzw. benutzung
von androidsystemen und worin es sich unterscheidet bei befehlen und kommandos
in einer shell.......

da du ja dich in einem android gut auskennst gleich noch eine frage...

da in einem terminal/shell wie ich mitbekommen habe primär die kommandos
bzw. befehle wie z.b. ls zur toolbox gelinkt sind d.h. wenn ich busybox installiert
habe ausm market und ich es nicht expliziert angebe wie z.b.

busybox ls -l
das ls aus der toolbox genommen wird weil der path dort hin gesetzt ist wie ich gerad gelernt habe.....
die frage ist jetzt wie kann ich dies so einrichten das erst die programme von der
busybox kommen, also wenn ich z.b. ls -l eingebe es dies von der busybox ist und nicht
von der toolbox....
denke das mus ich den path neu setzen, zur busybox oder?
mit export temporär, aber wo statisch in einem android froyo...
 
tron12

tron12

Ambitioniertes Mitglied
das mit dem pfad ist einfach:

terminal emulator starten, menü-taste, einstellungen, dann ganz unten startkommando auswählen, ich habe da:

export PATH=/data/local/bin:$PATH

normalerweise sind die links von busybox in /system/xbin ... einfach den eintrag in

export PATH=/system/xbin:$PATH

umändern, voila, schon gehts.

android ist bezüglich der multiuser-kapabilität naturgemäß eingeschränkt, es gibt ja auch keine userverwaltung, deshalb gibt es keine homedirectories, etc. deshalb macht das der terminal-emulator
 
Zuletzt bearbeitet:
D

droide23

Neues Mitglied
so ...schwere geburt , weiß garnicht wo ich anfangen soll....
als ich dein post gelesen hab war ich froh und dachte mir ja schon da s ich
irgendwo die variable ändern muss, also gemacht getan jedoch ohne erfolg
er benutzte immer noch die von der toolbox, also begann ich mich auf die suche zu machen wo busybox eigentlich ist,sie war in dem verz. /system/bin da wo ichauch
toolbox fand.
also anderte ich den pfad dort hin , aber wieder nix und jetzt wirds komisch
als default wert der shell stand dort ja /data/local/bin(einstellung in der shell-startkomando) aber dieses verzeichnis gibt es garnicht , bei local ist schluss ist
nur ein ordner tmp drin und versteckte datein....hmmm schon sehr komisch

also hab ich busybox neu installiert nach /system/xbin dieses in der shell einstellungen
nochmals geändert.
jetzt habe ich aber in xbin und bin verzeichnis sowohl busybox und seine ganzen komandos als auch toobox aber was soll ich sagen jetzt klappt es brauch kein busybox
mehr voran stellen , komandos wie top,ifconfig etc kommen definitiv von der busyb.
sieht man ja schon an der ausgabe, achso
also endlich so wie ich es wollte bis auf das es in 2verzeichnissen existiert

aber kannst du dir ein reim drauf machen oder ein anderer, pfade die nich existieren
, etc...
und bei zu verwendene shell stand auch ein minus zum schluss was ich entfernt
habe....sehr komisch alles
 
tron12

tron12

Ambitioniertes Mitglied
naja, ich kann zumindest ein wenig herumspekulieren.

der "falsche" pfad im terminal emulator: der ist wahrscheinlich nur ein platzhalter, das irgendwas da steht.

die busybox kann auf verschiedene art und weise installiert werden, ich machs mit dem CF-Root, und das legt die links in /system/xbin an. wenn du die busybox als app installierst, kann es ja sein, dass die links wo anders hinkommen.

das mit dem - am ende der shell da bin ich mir nicht sicher, ist nicht unbedingt relevant.

ich hab mal zwischendurch mit der z4root app gerootet, dann busybox per app installiert, dann hab ich das 2e recovery gebraucht, und den CF-root kernel installiert, der hat auch die busybox mitgebracht, und finalerweise dann den speedmod kernel installiert. und dann war irgendwie alles komplett durcheinander :) dann hab ich alles platt gemacht, ( JM8+repart -> JPO ) und nochmal angefangen, nur mit CF-root, und alles war ok.