Mehr Speicher auf dem HTC Desire ohne root (Android, Linux & Windows)

Jeder HTC Desire Besitzer dürfte das Problem mit dem Speicher kennen. Man verwendet eine gewisse Anzahl Apps und muss immer wieder entscheiden, welche Apps man nun wieder aus dem Speicher entfernt, um Platz für neue zu machen. Mit Android 2.2 (Froyo) wurde es dann ein wenig besser, da man Apps teilweise aus dem Telefon-Speicher auf die SD Karte verschieben konnte. Nun gab es nur noch das Problem, dass einige Entwickler diese Option nicht freigegeben haben. Das ist nach wie vor ein großes Problem. Abhilfe schafft natürlich das „rooten“,bei dem man sich Zugriff über das gesamte System verschafft. Dabei verfällt aber offiziell die Garantie und in einigen wenigen Fällen wird das Gerät sogar komplett unbrauchbar („bricked“). Daher ist es nur verständlich, dass die meisten Leute zögern, wenn es um „root“ auf Android geht.

Update (21.02.2011): Direkt auf dem HTC Desire

Vielen Dank an snoopy für den super Hinweis. Die nachfolgenden „alten“ Lösungen funktionen, sind aber wesentlich komplizierter als diese:

  1. App „ConnectBot“ aus dem Market kostenlos installieren
  2. ConnectBot starten und mit „local“ verbinden
  3. Befehl eingeben: pm setInstallLocation 2

Das wars schon. Via PC wird nachfolgend quasi das gleiche beschrieben, nur dass man nicht ganz so leicht an die Konsole heran kommt.

Die Lösung ohne „root“

Es gibt auch eine andere Lösung: Über das Android SDK lassen sich über den PC einige Parameter auf dem Android Telefon ändern. Problemlos und ohne root-Zugriff. Dazu braucht man das Android SDK z.b. in Eclipse integriert, oder einfach nur entpackt auf dem Rechner. Wichtig ist, dass man den Pfad für das SDK und das darin befindlichen „tools“ Verzeichnis hat (unter linux z.b. „android-sdk-linux_86/tools/“).

Linux

Nun folgt die Anleitung für Linux (openSuse 11.3 in diesem Fall).

  1. Als erstes muss das Android Telefon mit den entsprechenden Zugriffsrechten verbunden sein.
    Dazu stellt man am Telefon folgendes ein:
    Einstellungen -> Anwendungen -> Entwicklung -> USB-Debugging: Aktiv
  2. Nun verbindet man das Gerät per USB und aktiviert HTC Sync bei der Verbindungsart am Telefon. (Wenn kein HTC Sync installiert ist, was ja unter Linux nicht geht, kann man einfach danach wieder die „Zurück“-Taste drücken, um das Ladefenster auszublenden.)
  3. In /var/log/messages findet man nun einen Abschnitt, in dem die ID des Gerätes zu finden ist:
    Jan 14 12:06:33 kernel: usb 1-6.1: New USB device found, idVendor=0bb4, idProduct=0c87
    Jan 14 12:06:33 kernel: usb 1-6.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Jan 14 12:06:33 kernel: usb 1-6.1: Product: Android Phone
    Jan 14 12:06:33 kernel: usb 1-6.1: Manufacturer: HTC

    Uns interessiert daran in erster Linie die Vendor ID (fett markiert).

    Wer die Vendor ID nicht in /var/log/messages findet, kann es auch mit lsusb versuchen.

  4. Diese Vendor ID benötigen wir nun, um damit den chmod in udev zu deklarieren. Dazu legt man folgende Datei an:
    /etc/udev/rules.d/99-android.rules

    Dann fügt man folgenden Inhalt dort ein:
    SUBSYSTEMS==“usb“, ATTRS{idVendor}==“0bb4„, MODE=“0666″, SYMLINK+=“android_adb“
    SUBSYSTEMS==“usb“, ATTRS{idVendor}==“0bb4„, MODE=“0666″, SYMLINK+=“android_fastboot“
    Hier muss nun wieder die Vendor ID eingetragen werden.

  5. Um das Gerät nun richtig zu erkennen, startet man einmal udev neu. (Den Neustart des Rechners kann man sich sparen.)
    /etc/init.d/boot.udev restart
  6. Nun muss das Android Telefon wieder verbunden werden (wieder mit HTC Sync als Verbindungsart).
  7. Jetzt kommt das Android SDK ins Spiel:
    Wechsel ins SDK Tools Verzeichnis z.b. ~/android-sdk-linux_86/tools/
  8. Mit dem folgenden Befehl wird nun die SD Karte als Standard-Installationsort aktiviert:
    ./adb shell pm setInstallLocation 2
    Eine Rückmeldung kommt nicht. Ein Fehler sollte aber auch nicht erscheinen.
    Um diese Einstellung rückgängig zu machen, reicht ein: ./adb shell pm setInstallLocation 0
  9. Fertig!

Windows

Unter Windows benötigt man ebenfalls natürlich das SDK. Zusätzlich muss man den Pfad des Tools-Verzeichnisses noch unter Systemsteuerung in die Umgebungsvariablen eintragen.

  1. siehe 1. Linux
  2. siehe 2. Linux
  3. Das Android SDK und die Treiber müssen installiert sein. Siehe
    Danach sollte es im Gerätemanager angezeigt werden.
  4. Pfad in Systemsteuerung eintragen:
    Systemsteuerung->System->Erweiterte Systemeinstellungen->Umgebungsvariablen-> im unteren Fenster „Path“ -> Doppelklick
    Hinter dem letzten Semikolon nun den vollständigen Pfad zum Tools Verzeichnis angeben
    z.B. c:\android-sdk-windows\tools\
  5. Nun wird der gleiche Befehl wie unter Linux per adb übermittelt.
    Start -> Ausführen -> cmd:
    adb shell pm setInstallLocation 2
    Auch hier sollte natürlich kein Fehler kommen. Eine positive Rückmeldung aber auch nicht.
  6. Fertig!

Eine genaue Anleitung dazu findet Ihr hier.

Das Resultat

Astro Filemanager mit Installation auf dem Telefon

Astro Filemanager mit Installation auf dem Telefon

Astro Filemanager mit Installation auf der SD Karte

Astro Filemanager mit Installation auf der SD Karte

So kann man nun fast alle Apps in den SD Karten Speicher verschieben und dadurch wesentlich mehr Speicher auf dem Telefon freihalten.
Wichtig: Apps die ein Widget haben, das man auch benutzt sollte man im Telefonspeicher lassen, sonst kann es zu Problem kommen!

App Speicher Verwaltung

Zu Verwaltung der Apps im Speicher eignet sich „Apps To SD“ sehr gut. „Apps To SD“ funktioniert natürlich ohne root. Es hat 3 Tabs „On Phone“ (Hier werden Apps aufgelistet, die auf dem Telefon installiert sind, aber auf die SD Karte verschoben werden können.), „On SD Card“ (Apps die bereits auf der SD Karte installiert sind) und „Phone only“ (Apps die nicht auf die SD Karte verschoben werden können z.b. Maps und der Android Market).

Die App funktioniert auch schon ohne dieses Tutorial sehr gut, nachdem man aber diese Einstellung geändert hat, findet „Apps To SD“ noch wesentlich mehr Apps die verschoben werden können.

Zusätzlich hat „Apps To SD“ noch einen nützlichen Hintergrund Dienst. Es zeigt bei der Installation neuer Apps automatisch in der Statusleiste an, ob diese App in den SD Karten Speicher verschoben werden kann.

Details zu Apps To SD auf appbrain

Euer Feedback

Was haltet Ihr von dieser Lösung? Reicht euch diese Umstellung, oder ist nur root für euch die echte Lösung des Speicher-Problems?

via & via

About the author

Webentwickler, Autor & Gründer von TeamAndroid.de Immer interessiert an guten brauchbaren Android Apps und neuen Android Geräten, vom Smartphone bis zum Tablet.

  • Follow Hendrik on Twitter
  • propakanti

    Keine Ahnung ob es geklappt hat. Kann mir mal jemand ne App nennen, die man vorher net verschieben konnte, bei der es danach geht?

  • propakanti

    Leider scheint es nicht zu klappen. Astro lässt sich nicht verschieben.

    Hab mal ein Screenshot von CMD gemacht:
    http://twitpic.com/3q9986
    Einmal ohne Gerät am PC.

    Zweites mal mit.

    • admin

      "Device not found" sieht nicht gut aus.

      Geh am besten mal alle Anleitungen im Detail durch, auch die von pocket.ch

  • propakanti

    Moment, ich habs ja extra einmal ohne Geraet am Pc probiert um die potentielle Fehlermeldung zu bekommen und dann habe ich es angeschlossen und den Befehl ausgefuehrt – dann kam kein Fehler. Also hat das doch geklappt, oder?
    Ich guck mir mal das von PocketPC an.
    Danke fuer die Aufmerksamkeit.

  • propakanti

    Möglicherweise hats schon beim ersten mal geklappt. 😉

    Apps To SD hat mir nur nicht angezeigt, dass Astro movable ist… per Einstellungen –> Anwendungen verwalten gings dann doch.

    Also schön dank für die Anleitung.

    • admin

      Hast du zwischendurch das Desire mal neu gestartet?

      Ich meine Apps To SD hat die erst alle nach dem Reboot angezeigt.

  • Mr.castle

    Bei mir wird in messages keine genaueren Daten angegeben, also keine ID oder ähnliches. Ich habe Ubunut Netbook.

    • admin

      Hast du das Desire auf Verbindungsart "HTC Sync" gestellt?

      Und was sagt lsusb ?

  • theaui

    Funktioniert einwandfrei.

    Einzigste Problem war der Treiber den man von SDK herunterlädt. Den muss man anpassen sonst findet er das Desire nicht.

    Another way, using the android SDK drivers is to modify the android_winusb.inf file – add the following lines:

    under the [Google.NTx86] section

    ;HTC Desire

    %SingleAdbInterface% = USB_Install, USBVID_0BB4&PID_0C87

    %CompositeAdbInterface% = USB_Install, USBVID_0BB4&PID_0C87&MI_01

  • snoopy

    cool – vielen Dank für den Tip! Funktioniert prima!

    noch etwas einfacher – ohne Installation der ganzen SDKs + USB-Treiber etc. gehts direkt über eine Shell auf dem Handy (keine PC-Verbindung notwendig):

    – z.B. über App "ConnectBot" –> App starten

    – local verbinden

    – direkt auf dem Handy "pm setInstallLocation 2" eingeben

    – fertig 🙂

    • admin

      Vielen Dank für den Hinweis. Das habe ich gleich mal als Update in den Artikel geschrieben.

    • CuSith

      Hmm, ich kann unter connectBot den Befehl pm aufrufen – da sehe ich auch die Option -setInstallLocation

      Aber leider leider ist das Ergebnis auf meinem Desire immer nur:

      (1) killed pm setInstallLocation 2

    • Marc

      Hey snoopy, kannst du mir das bitte mal von A bis Z erklären was ich da genau machen muss, quasi deine kurzform, mich nervt das mit dem speicher sowas von, das kann ich keinem sagen.

      danke im voraus

      gruss Marc

    • Bernd

      hallo, ich bekomme auch immer die fehlermeldung "kill……", hast du eine idee woran das liegen könnte, das kann ich noch machen? muss ich vorzeichen oder so eingeben? ganz am anfang steht ein $, muss das dort bleiben?

    • Seth

      Hey, das mit ConnectBot und pm setInstallLocation 2 funktioniert aber doch nur, wenn man root-rechte auf dem gerät hat…
      d.h. mit einem ungerootetem gerät kann ich damit nichts anfangen.
      siehe Post von der anderen: (1) killed pm setInstallLocation 2

  • Super Anleitung, kann man nur Empfehlen!!

    Da ich gerade eh das ganze SDK Zwecks Gehversuchen im Android-Programmieren installiert hatte habe ich das gleich mal nach der "langen" Anleitung ausprobiert.

    Eine Änderung gab es: adb ist nicht mehr im Verzeichnis …/tools sondern…/platform-tools

    Hat alles funktioniert, ohne reboot vom Desire, ich konnte gute 6MB auf Anhieb "umschaufeln".

    Einige Systemnahen Sachen (Flash?), gehen wohl immer noch nicht, was auch ok ist.

    Aber z.B. Google Maps, YouTube und der Market gehen leider nicht. Andere mit Widgets (die ich nicht in der Scene habe) gingen ohne Probleme (Web.de mail, flickr, .

    Weiss jemand ob das gerootet (sinnvoll) funktionieren würde?

    Was ich gefühlsmässig lieber nicht verschieben würde sind HTC-Sync oder Apps, die nach dem Telefonieren den HomeScreen aufrufen etc.

    Gruss

    Fritz

  • george

    Hi, ich habe das mit dem Befehl probiert,

    bekam dann als Rückmeldung

    kill pm setInstallLocation 2

    zurück und mehr bekomme ich nun auch nicht gemoved

    was habe ich falsch gemacht ?

    • george

      kann keiner helfen ?

      • Hatte auf meinem HTC Desire das gleiche Problem, hab dann doch den langen Weg gewählt….

  • george

    kan keiner helfen ?

  • Philipp

    Hatte selbiges (über connectbot) auch mal auf einem anderen Desire probiert. Klappte nicht.

  • Peter

    In Ubuntu einfach in …/android-sdk-linux_x86/platform-tools$ gehen und ./adb shell pm setInstallLocation 2 eingeben. Der ganze Kram mit Vendor-Id (1.-7.) ist nicht notwendig. Die Methode direkt auf dem Desire hat bei mir nicht funktioniert.

  • Hallo,

    ich hatte heute plötzlich und überraschend das Problem, dass fast keine App mehr installiert werden konnte. Sprich alle Installationen aus dem Market sind beim Installieren mit Fehler -18 abgebrochen.

    Nach einigem rumggogeln bin ich darauf gestossen

    http://code.google.com/p/android/issues/detail?id

    Scheint irgendwie mit dem installieren von Apss auf SD zusammenzuhängen. Warum das plötzlich passiert ist (heimlicher google update??) hab ich nicht verstanden, aber die Lösung hat funktioniert (ohne root, bin noch nicht soweit).

    SD Karte muss über USB am PC gemounted werden, sonst sueht man die Datei wohl nicht.

    Hatte sonst jemand auch schonmal das Problem??

    Gruss

    Fritz

  • CBS

    Bei mir hat die ConnectBot Variante auch nicht funktioniert. Schade, denn der Rest ist mir zu aufwändig.

  • Servus,

    nach einem Garentie-Einschicken-Factory-Reset musste ich das ganze ja nochmal durchexerzieren. Ich habs dann diesmal mit connectBot versucht und bekomme auch die bereits genannten Fehlermeldungen 🙁
    (HTC Desire Froyo Update, Stock ROM, nicht gerooted)

    Schade, habs dann doch über adb usw. gemacht, was allerdings unter Win XP64 (bei mir auf der Arbeit) definitiv nicht(!) funktioniert, weil die HTC Treiber nicht mit XP64 mögen.

    Gruss Fritz

  • Marco

    also Grundsätzlich hat es bei mir funktoniert [HTC DESIRE]…
    habe nun aber das Problem das ich mir per HTC Sync Apps laden wollte dies auch getan habe und diese leider nicht instalieren gingen..so jetzt habe ich nur noch 4mb auf dem Handy frei…und weiß nicht wieso 🙁

  • Tim

    Kann man die Einstellung (bei der Variante mit ConnectBot) auch wieder rückgängig machen, z.B. falls es nicht funktioniert oder unerwartete Probleme auftreten?

    • Man kann jederzeit wieder "pm setInstallLocation 0" setzen. Probleme treten dadurch nicht auf. Wenn Widgets nicht funktionieren, kann man sie wieder auf den Telefonspeicher schieben, dann läuft wieder alles. Man muss nur mehr überlegen welche Apps Widgets nutzen, die dürfen nicht auf die SD Karte.

  • Thomas

    Hallo, leider habe ich weder über abd noch über connect bot Erfolg, bekomme bei beiden Varianten nur die Fehlermeldung "permission denied" – was habe ich übersehen?

  • Hallo, danke für den super Tip mit ConnectBot. Bei mir klappte es anfangs nicht. Ich habe dann einfach mal ins blaue auf der Console ein 'su' abgesetzt, danach klappte es ohne kill und funktioniert nun einwandfrei. Danke hierfür.

  • anonymer Helfer

    Also ich habe es mit App "ConnectBot" geschafft!!

    Wie oben schon erwähnt, App herunterladen,…starten,… local auswählen,…beliebigen Spitznahmen eingeben,…ENTER!!
    Danach "su" eingeben ENTER und dann die berüchtigte Zeile: "pm setInstallLocation 2" !!!!!!!!

    Verwende HTC Desire.
    Kann jetzt die meisten Apps auf die SD verschieben.

    Hoffe ich konnte helfen.

  • Pingback: Anonymous()

  • Je oller, je doller

    Ich bekomme auch die Fehlermeldung "killed pm setInstallLocation 2".
    Meine Vermutung: Ich habe mein Desire bei T-Mobile gekauft. D.h. das Froyo darauf ist vorher von T-Mobile "angefasst" worden. Die verhindern eventuell derartige Eingriffe in das System.

  • Lucky

    Hallo zusammen,

    meine Frage ist, ich hab diese Seite zum erstem Mal gesehen, wenn ich den ConnectBot ausführe, gehen da Daten verloren?
    Ich würde es gerne mal ausprobieren, wäre aber blöd wenn auf einmal alle Daten weg sind.

    Gruß

  • Lina

    Superklasse..wenn man das alles mal verstehn würde wäre das gewiss ne prima Sache:'( Scheitert bei mir leider schon an der " Idee" Nummer 1… denn nach: ConnectBot starten und mit “local” verbinden Kann man leider nicht …..
    Befehl eingeben: pm setInstallLocation 2

    So bin ich wieder am Anfang. Speicherplatzproblem nach wie vor vorhanden! Aber habe 'ne Menge schöner Sachen installiert von denen ich leider nicht weiß wofür? Wo ist die Anleitung für Blondinen???? Huuuäääh!

    • Lina herself

      Okaaay—- das Beschriebene hat geklappt aber ändern tut sich trotzdem nichts… Ich habe jetzt nu8r eine weitere App mehr die Speicher frisst… sowie die Üblichen die mier weiterhin den Speicherplatz fressen obwohl ich sie nicht haben will!!!

  • Berthold Kynast

    Ich würde die Lösung so gerne nutzen, aber ich bin so ein totaler Laie dass ich mich an sowas nicht rantraue. ich habe außerdem ein Viewsonic V350 Dual Sim, kein HTC Desire, aber mit Android 2.3. Das Handy hat nur 150 MB internen Speicher, was eine Katastrophe ist, die mich täglich ärgert, ich muss z. B. täglich google maps löschen, weil sich das immer wieder automatisch installiert. Wenn es sich aber installiert, dann fällt mein freier interner Speicher unter 20 MB, und sobald die unterschritten sind, kommen keine Mails mehr auf meinem Handy an, und das darf absolut nicht sein.

  • I read a lot of interesting posts here. Probably you
    spend a lot of time writing, i know how to save you a lot of
    work, there is an online tool that creates unique, SEO friendly posts in seconds, just
    search in google – laranitas free content source

  • Wow! After all I got a website from where I know how to genuinely take helpful data concerning my study and knowledge.

  • whoah this blog is wonderful i like reading your articles.
    Stay up the great work! You understand, a lot of individuals are
    looking around for this information, you could help them greatly.

  • Nice stuff, thank you for sharing with us..