Standardshell von Android durch vollwertige BASH Shell ersetzen

Dieses Thema im Forum "Tutorials & FAQs" wurde erstellt von Protector, 15. Dez. 2010.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Protector

    Protector VIP Mitglied

    Registriert seit:
    7. Apr. 2007
    Beiträge:
    14.565
    Zustimmungen:
    41
    Die Macher von faq4mobiles.de sowie die Ersteller der FAQ übernehmen keinerlei Haftung für Schäden am Gerät!!!


    [flink="#word"]Vorwort[/flink]
    [flink="#files"]Benötigte Dateien und Vorraussetzungen[/flink]
    [flink="#take"]Durchführung[/flink]
    [flink="#hero"]Durchführung beim HTC Hero GSM[/flink]


    [ftitle=word]Vorwort[/ftitle]​


    Die Standardshell von Android Bourne-Shell (sh) ist zwar klasse, aber hat sehr viele Funktionen nicht, die absolut nützlich sind.

    So zum Beispiel Tab-Completion. Das alles hat die Bourne-Again-Shell (bash)

    Die Bourne-Shell wird in diesem Tutorial durch die Bourne-Again-Shell ersetzt.

    Achtung: Hier kommen keine Bilder zum Einsatz, weil dies in der Regel nicht notwendig ist.

    [ftitle=files]Benötigte Dateien und Vorraussetzungen[/ftitle]


    Dateien die benötigt werden:

    Die bash selbst, diese ist unten angehangen

    Vorraussetzungen für das Androidgerät:

    • Auf jedenfall Root
    • Entweder ein installiertes Android SDK oder aber ein Terminal welches ihr vom Handy aus bedienen könnt
    • Möglichkeit ein Backup des gesamten Gerätes durchzuführen, falls etwas schief läuft

    [ftitle=take]Durchführung[/ftitle]


    Nun geht es ans eingemachte.

    In diesem Tutorial wird das Beispiel über das Android-SDK gezeigt. Wer das Terminal direkt am Gerät benutzt, kann die Anleitung teilweise analog dazu ebenfalls benutzen.

    Zuerst wird einmal die heruntergeladene Datei entpackt.

    Danach wird die "bash" mittels:
    Code:
    adb push bash /sdcard/
    aufs Gerät gepusht.

    Danach wechselt man mittels
    Code:
    adb shell
    aufs Gerät.

    dort mittels
    Code:
    su
    root rechte erlangen.

    Nun tippt man folgenden Befehl ab:

    Code:
    mount -o rw,remount /dev/block/mtdblock6 /system
    oder, wenn das nichts bringen sollte, einfach den Root Explorer, oder SUFBS nehmen und da die /system partition als beschreibbar mounten. Zur Sicherheit kann man da auch gleich noch /system/bin/ als beschreibbar mounten.

    Wenn das erledigt ist, kopiert man die bash mittels:

    Code:
    cp /sdcard/bash /system/bin/
    ins /system/bin/ Verzeichnis.

    wechseln mittels
    Code:
    cd /system/bin
    dahin und setzen die rechte ordnungsgemäß:
    Code:
    chmod 755 bash
    Nun können wir das erste mal schauen, ob das kopieren korrekt funktioniert hat. es wird nämlich jetzt zum test schlicht
    Code:
    bash
    eingegeben und es sollte uns folgende Eingabeaufforderung anlächeln:

    Code:
    bash
    bash-4.1# 
    
    Ist das erledigt, wird das Gerät zum testen neugestartet. Warum das ganze? Um zu sehen ob die bash auch da bleibt wo sie ist. Es kann nämlich unter Umständen möglich sein, dass dieser "Fremdkörper" einfach gelöscht wird.

    Ist das geschehen, loggen wir uns wieder auf shell ein, werden root und binden die system partition erneut beschreibar ein.

    Nun geht es nämlich richtig los:

    wenn man root ist und im /system/bin verzeichnis ist, löscht man mittels
    Code:
    rm sh
    die Standardshell und legt mit
    Code:
    ln -s /system/bin/bash /system/bin/sh
    einen symbolischen Link an.

    Ist dies erledigt, wird die shell mittels mehrmaligem exit verlassen, bis der eigene Desktoprompt wieder auftaucht.

    Nun wird abermals adb shell eingegeben und es sollte diesmal so ein prompt auftauchen:

    Code:
    [00:11:38][protector@protector-laptop:~/Downloads/s107]$ Ohne Akku$ adb shell
    sh-4.1$ 
    
    Wenn das der Fall ist, wird das Gerät wieder neugestartet und überprüfen dann wieder mittels adb shell ob alles seinen Gang geht.

    Ist das der Fall, wurde soeben die Standardshell durch die leistungsstarke bash ersetzt. Herzlichen Glückwunsch.

    [ftitle=hero]Durchführung beim HTC Hero GSM[/ftitle]


    Bash version 4.1.0(2) release GNU läuft nicht auf dem Hero
    Bash version 4.1.7(1) release GNU - Ist aus dem CM6.1-ROM-Hero ( /system/xbin/bash ) - ist wohl eine abgespeckte Version (432 KB) , beim aufrufen kommt schon so ne komische Meldung. Wer nicht CM6.1 hat, muss nach der obigen Anleitung vorgehen.

    Lässt sich aber mit wenigen Schritten aktivieren :

    Code:
    Bash installiern auf Hero GSM mit "CM 6.1.0 for Hero GSM"
    
    
    Enthalten im "CM 6.1.0 for Hero GSM" ist : Bash version 4.1.7(1) release GNU - /system/xbin/bash
    
    ---------------------------------------------------------------------------------------------------------------
    
    [B]adb shell[/B]                                           
    [B]su [/B]                                                
    [B]mount -o rw,remount /dev/block/mtdblock6 /system[/B]    
    [B]mv /system/bin/sh /system/bin/sh0[/B]                   
    [B]ln -s /system/xbin/bash /system/bin/sh[/B]              
    [B]exit[/B]                                                
    [B]exit[/B]                                               
    [B]adb shell [/B]  - jetzt Ausgabe : sh-4.1' 
    
    - Bash ist installiert -
    
    ---------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------

    Bash version 4.1.0(1) release GNU
    diese Version lässt sich erfolgreich nach /system/bin/bash installieren, und bash in /system/xbin löschen.

    Bash version 3.2.0(1) release GNU keine Informationen dazu.

    Bash version 3.2.0(7) release GNU lässt sich ebenfalls problemlos installieren.

    Alle Versionen im Anhang.

    Danke geht an Duron.

    Urheberrechtshinweise:
    Alle auf dieser Website veröffentlichten Beiträge und Abbildungen sind urheberrechtlich geschützt. Jede vom Urheberrechtsgesetz nicht zugelassene Verwertung bedarf vorheriger schriftlicher Zustimmung des Anbieters. Dies gilt insbesondere für Vervielfältigung, Bearbeitung, Übersetzung, Einspeicherung, Verarbeitung bzw. Wiedergabe von Inhalten in Datenbanken oder anderen elektronischen Medien und Systemen. Fotokopien und Downloads von Web-Seiten dürfen nur für den persönlichen, privaten und nicht kommerziellen Gebrauch hergestellt werden.
     

    Anhänge:

    #1 Protector, 15. Dez. 2010
    Zuletzt bearbeitet: 19. Dez. 2010
Die Seite wird geladen...
Status des Themas:
Es sind keine weiteren Antworten möglich.