1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Root-Shell?

Dieses Thema im Forum "Root / Hacking / Modding für Samsung Galaxy S" wurde erstellt von droide23, 19.01.2011.

  1. droide23, 19.01.2011 #1
    droide23

    droide23 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    16.01.2011
    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
     
  2. scheichuwe, 19.01.2011 #2
    scheichuwe

    scheichuwe Android-Ikone

    Beiträge:
    5,441
    Erhaltene Danke:
    2,541
    Registriert seit:
    09.09.2009
    Phone:
    LG G4
    Welche Firmware hast du drauf?
     
  3. droide23, 19.01.2011 #3
    droide23

    droide23 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    16.01.2011
    froyo 2.2 jp0
     
  4. scheichuwe, 19.01.2011 #4
    scheichuwe

    scheichuwe Android-Ikone

    Beiträge:
    5,441
    Erhaltene Danke:
    2,541
    Registriert seit:
    09.09.2009
    Phone:
    LG G4
    Was passiert denn wenn du im Terminalemulator su eingibst?
     
  5. tron12, 19.01.2011 #5
    tron12

    tron12 Android-Hilfe.de Mitglied

    Beiträge:
    60
    Erhaltene Danke:
    14
    Registriert seit:
    30.10.2010
    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.
     
  6. droide23, 19.01.2011 #6
    droide23

    droide23 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    16.01.2011
    ahhaaa.....

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

    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: 20.01.2011
  7. tron12, 23.01.2011 #7
    tron12

    tron12 Android-Hilfe.de Mitglied

    Beiträge:
    60
    Erhaltene Danke:
    14
    Registriert seit:
    30.10.2010
    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: 23.01.2011
    droide23 bedankt sich.
  8. droide23, 23.01.2011 #8
    droide23

    droide23 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    16.01.2011
    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...
     
  9. tron12, 24.01.2011 #9
    tron12

    tron12 Android-Hilfe.de Mitglied

    Beiträge:
    60
    Erhaltene Danke:
    14
    Registriert seit:
    30.10.2010
    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: 24.01.2011
  10. droide23, 25.01.2011 #10
    droide23

    droide23 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    16.01.2011
    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
     
  11. tron12, 25.01.2011 #11
    tron12

    tron12 Android-Hilfe.de Mitglied

    Beiträge:
    60
    Erhaltene Danke:
    14
    Registriert seit:
    30.10.2010
    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.
     

Diese Seite empfehlen