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