HOWTO: einzelne Anwendungen auf SD-Karte (benötigt root)

Dieses Thema im Forum "Android-Betriebssystem Forum" wurde erstellt von Autarkis, 7. März 2009.

  1. Autarkis

    Autarkis VIP Mitglied

    Registriert seit:
    7. Nov. 2007
    Beiträge:
    489
    Zustimmungen:
    0
    Hey Leute,

    Ich habe ein Skript erstellt, mit welchem man einzelne Anwendungen auf die SD-Karte auslagern kann, da beim Auslagern aller Apps manchmal Probleme auftreten. So kann man für sich selber ausprobieren, bei welcher App diese Probleme entstehen.

    Vorbereitungen:

    * root
    * ext2-Partition auf SD-Karte
    * modifizierte init.rc und mountd.conf einspielen (Anhang), vorher sichern, gemäss "Apps on SD card"
    * Telefon rebooten
    * Verzeichnis /system/sd/app erstellen:
    Code:
    adb remount 
    adb shell mkdir /system/sd/app
    * zu verschiebende app ausfindig machen; ich hab für mich mit den umfangreichsten angefagen die nicht im Hintergrund laufen müssen. Ich habe den Verdacht, dass da die Probleme anfagen! Mit

    Code:
    adb shell ls -laS /data/app/
    bekommt man eine nach Dateigrösse sortierte Liste der installierten Apps.

    * nun kann man die ausgewählten Sünder (z.B das neue com.slovoed.vox.spanish_spanish.apk, das man wohl selten benötigen wird, aber mit 7.1MB zu Buche schlägt) mit Hilfe des Skripts verschieben:

    Code:
    mvapp.sh com.slovoed.vox.spanish_spanish.apk
    Damit das funktioniert muss adb root-fähig sein, das war bei älteren JF-root-Flashes meines Wissens nicht immer der Fall. :)


    Noch Fragen? :D


    ----

    mvapp.sh
    Code:
    #!/bin/bash
    adb remount
    adb shell cp /data/app/$1 /system/sd/app/$1
    adb shell rm /data/app/$1
    adb shell ln -s /system/sd/app/$1 /data/app/$1
    adb shell chown 1000:1000 /data/app/$1
    
     

    Anhänge:

  2. Patrick@sw

    Patrick@sw VIP Mitglied

    Registriert seit:
    28. März 2008
    Beiträge:
    53
    Zustimmungen:
    0
    Danke echt super :D
     
  3. Autarkis

    Autarkis VIP Mitglied

    Registriert seit:
    7. Nov. 2007
    Beiträge:
    489
    Zustimmungen:
    0
    Huch, diesen Artikel hab ich ganz vergessen. :D Danke für die Blumen. :)

    Von dem Skript gibt's inzwischen ein Update, hab das in einem speziellen Android-Forum mal veröffentlicht und vergessen es hier reinzuhängen:

    --- SNIP --- COUPER ICI --- HIER SCHNEIDEN --- SNIP ---

    Okay, ich hab inzwischen weiter getüftelt. Das Skript oben funtkioniert. Ich habe jetzt ein besseres angefertigt, wobei auch direkt die Daten einer Anwendung auf die SD-Karte verschoben werden. Dabei arbeite ich mit cp -p, was die Rechte intakt lässt. Hätte ich schon von Anfang an tun sollen.

    Das neue Skript nimmt als Parameter den Namen der Anwendung und nicht den Namen des Pakets. Das heisst, man ruft es mit

    Code:
    mvappndata.sh com.mobisystems.msdict.embedded.wireless.pons.ssd
    auf. Das ".apk" am Schluss weglassen, das neue Skript fügt das selber hinzu wo nötig.

    Getestet und funktioniert, zur Vorbereitung muss ein Verzeichniss /system/sd/data/ erstellt werden. :)

    ---

    Code:
    #!/bin/bash
    # mvappndata.sh 1.1 by autarkis@faq4mobiles.de
    # GPL OpenSource
    adb remount
    adb shell cp -rp /data/app/$1.apk /system/sd/app/$1.apk
    adb shell rm /data/app/$1.apk
    adb shell ln -s /system/sd/app/$1.apk /data/app/$1.apk
    adb shell cp -rp /data/data/$1 /system/sd/data/$1
    adb shell rm -r /data/data/$1 
    adb shell ln -s /system/sd/data/$1 /data/data/$1
    
    --- SNIP --- COUPER ICI --- HIER SCHNEIDEN --- SNIP ---


    Das verschiebt auch die Daten und ist viel effektiver!

    Mein Tipp: Anwendungen die beim Booten gestartet werden oder nach dem Start einen Service ausführen, nicht verschieben. Hab so über 150 Anwendungen installiert, und WifiTether, Chomp SMS, Missed Call etc. bleiben intern, wo sie problemlos laufen. :)
     
    #3 Autarkis, 23. März 2009
    Zuletzt bearbeitet: 23. März 2009
  4. netbus

    netbus Neues Mitglied

    Registriert seit:
    17. Nov. 2008
    Beiträge:
    29
    Zustimmungen:
    0
    Bei 150 Anwendungen wäre das Script aber besser wenn es ALLE verschiebt bis auf die ein zwei apps die im system bleiben sollen. ;)
    Ist sonst sehr mühsam 150 Anwendungen einzeln zu verschieben :D
     
  5. Autarkis

    Autarkis VIP Mitglied

    Registriert seit:
    7. Nov. 2007
    Beiträge:
    489
    Zustimmungen:
    0
    Ist halt bei mir so gewachsen... ich verschieb' immer erst wenn kein Platz mehr ist.

    Grundsätzlich hast du recht.
     
  6. netbus

    netbus Neues Mitglied

    Registriert seit:
    17. Nov. 2008
    Beiträge:
    29
    Zustimmungen:
    0
    Gibts eigentlich einen Trick wie man Beispiel 20 Apps die verschoben wurden und danch nicht mehr als "installiert" angezeigt werden mit einem Schlag wieder zu "installieren"
    Oder muss man alle nochmals installieren?
     
  7. Autarkis

    Autarkis VIP Mitglied

    Registriert seit:
    7. Nov. 2007
    Beiträge:
    489
    Zustimmungen:
    0
    Es könnte einen Trick geben, aber ich kenne ihn nicht. Ich vermute, man müsste im MarketCache oder in irgendeiner sqlite-Datenbank auf dem Handy Einträge ändern.

    Der Aufwand sowas zu coden lohnt sich nicht. ;) Einfach neu installieren. ;)
     
Die Seite wird geladen...