[CM6] Fast unendlich viel Platz für Apps: FireRat Apps2SDEXT mit /data/data/ Bind

  • 39 Antworten
  • Letztes Antwortdatum
bemymonkey

bemymonkey

Enthusiast
530
Hallo Leute!

Einmal vorweg: Das poste ich nur hier und nicht in nem Geräte-Root-Subforum, weil das Ganze Geräteübergreifend ist. Diese Methode dürfte bei nahezu jedem Gerät laufen, für das es CyanogenMod6 gibt.

Einige (oder die Meisten) Hardcore-CyanogenMod nutzer werden das wahrscheinlich schon kennen, aber ich denke die breiten Massen kennen's noch nicht, und könnten durchaus davon profitieren :)

Kurzfassung: So viel Platz für Apps, wie die SD-Karte hergibt! :love:

Das hier ist nur für Leute, die bereits ein gerootetes Gerät mit einem CM6 ROM oder CM6-basierenden ROM besitzen! Bei anderen Geräten/ROMs könnte das Ganze laut Firerat auch funktionieren, aber ich habe es selbst bis jetzt nur mit CM6 probiert. Als Anfänger ohne Root und custom ROM wird man hiermit nur wenig anfangen können. Weitere Voraussetzung ist, dass /system/ im laufenden Betrieb beschreibbar ist, und nicht nur im Recovery (wie z.B. in nem Desire ohne S-Off).


Das Problem:

Sogar bei Geräten der letzten Generation, wie z.B. dem Desire, haben wir das bekannte Problem, dass die /data/ Partition leider nur knappe 150MB groß ist, und man somit, abzüglich Dalvik-Cache, meist nur knapp 100MB für Apps hat, und diese Zahl schrumpft ja noch weiter, da Dalvik-Cache wächst. Das ist wirklich sehr wenig, und da kommt keiner mit aus (nein, KEINER :p).

Froyo Apps2SD hilft da etwas, aber leider kommt man je nach den Apps nicht besonders weit. Manche Apps lassen sich gar nicht erst auf die SD-Karte verschieben (auch wenn man diese freischaltet, sollte man sie teilweise nicht verschieben - alles was bei Startup läuft, oder ein Widget hat...), und die, die sich verschieben lassen, hinterlassen oft trotzdem viele "Reste" in /data/data/, die eben auch viel Platz einnehmen.

Traditionelles Apps2SD-EXT, wie man es z.B. von DarkTremor kennt, macht das Ganze nur bedingt besser - man kann zwar ohne Probleme ALLE Apps auf die SD Karte packen und muss nicht aufpassen, dass irgendwelche dann nicht gehen, aber /data/data/ wird trotzdem noch zugemüllt.

Mit beiden Methoden können schon mal weit mehr Apps installiert werden, aber trotzdem ist irgendwann, und zwar meines Erachtens ziemlich schnell, Schluss.


Die Lösung:

Abhilfe bringt es, Apps2SDEXT (traditionell Verschieben von /data/app/ und /data/app-private/ auf die SD-Karten EXT Partition) zu nehmen, und zusätzlich noch /data/data/ auf die SD Karte zu verschieben. Dies macht meist ziemliche Probleme (Apps verschwinden, Updates gehen nicht mehr, usw. usf.), aber scheinbar hat es ein toller Bastler namens Firerat geschafft, ein Skript für CyanogenMod6-basierende ROMs zu schreiben, bei dem das absolut problemlos klappt. Ich nutze das Skript schon seit ner Woche und alles funktioniert absolut fantastisch - flott, zuverlässig, gar keine Probleme.


Was ist möglich?

Aktuell habe ich laut Titanium Backup auf meinem Desire also etwa 130 Apps, meine 512MB EXT Partition ist zu 70% voll, und ich habe noch 140MB Platz auf /data/ (/data/ habe ich auf 200MB vergrößert, und Dalvik-Cache sitzt da aktuell noch drauf)... Mit Vergrößern der EXT Partition könnte ich problemlos noch 400 Apps installieren. Wenn ich noch dalvik-cache auf die EXT-Partition verschieben würde, könnte ich so viele Apps installieren, wie auf die SD-Karte passen - bei ner 32GB SD Karte sind das VERDAMMT viele. Es stellt sich natürlich die Frage, ob Android mit so vielen Apps überhaupt umgehen kann, aber in den Speicher würden sie schon mal locker passen :D

desire.png


Wie Ihr seht, sind /data/app, /data/app-private, /data/data und /data/system allesamt auf der SD-EXT Partition... :)


Wie geht das? Will haben!

Also dann. Ihr habt ein Gerät mit laufendem CM6, und wollt jetzt Firerats tolles Skript verwenden? Super. Das findet Ihr hier:

FroYo a2sdext [ 2010-11-03 ] # v1.36 # in theory, supports HTC Incredible - CyanogenMod Forum

Oder alternativ hier:

[PATCH] Firerat 'all in one' patch file [ v1.4.1 beta2 - 2010-11-07 ] - xda-developers


Ersteres ist ein Skript, welches nur für A2SDEXT ist, während das Zweite ein viel dickeres Skript ist, welches auch A2SDEXT beinhaltet. Man kann sie auch problemlos kombinieren, da gibt es keine Inkompatibilitäten - so hatte ich z.B. auf meinem Dream das erste Skript für A2SDEXT inkl. /data/data/ Bind genommen, und dann noch mit dem zweiten Skript ne Swapfile aktiviert.

Die genauen Anweisungen hier gelten für das erste Skript, aber das Zweite ist ja auch selbsterklärend. Wenn man rafft, wie man ein Skript ausführt, dann kriegt man's mit dem Zweiten auch hin... und fragen kann man ja immer noch ;)


Was mach ich mit dem Skript?

Also, für die, die sich mit Shell-scripts nicht auskennen, das ist eigentlich ganz einfach. Das ist quasi ne Text-Datei in der lauter Befehle drin stehen, so wie man sie meist in eine Konsole reintippen könnte - ähnlich ner MS Batch-File im Windows Bereich, aber um Einiges umfangreicher und flexibler. Um das Ding zu starten muss man sie als Shell-Script ausführen, und zwar so:


sh *skriptDatei*

Heisst das Skript also "a2sd.sh" und liegt im SD-Karten Rootverzeichnis, führt man Folgendes aus:

sh /sdcard/a2sd.sh

Das Skript kann dann auch auf Nutzereingaben warten - es kommen dann Abfragen, die man eben durch ganz einfach gehaltene Tastaturbefehle beantworten kann - meist y/n (Ja/Nein) Abfragen oder ne Zahl eintippen um aus ner Liste eine Option zu wählen - alles easy ;)


Die allgemeine Vorgehensweise:

Bei einem nackten (frisch gewiped) ROM, oder bei einem, wo nur Froyo-A2SD aktiv ist, kann man die Skripte direkt ausführen. Es wird dann abgefragt, welche Apps von Froyo-A2SD auf die EXT Partition verschoben werden sollen (ich empfehle, alle zu verschieben).

1. Skript runterladen
2. Skript auf SD-Karte verschieben
3. Skript ausführen (wichtig: bei laufendem ROM - NICHT in der Recovery!), entweder mit ner Terminal App oder per ADB Shell
4. Bei Abfrage, ob /data/data/ verschoben werden sollte, mit y für "yes" und Entertaste bestätigen
5. Auswählen, welche Apps verschoben werden sollen
6. Freuen

Bei einer schon existierenden A2SDEXT Installation, z.B. von Darktremor, würde ich einen vollständigen Wipevorgang empfehlen, inkl. Wipe der EXT Partition. Danach beim frischen ROM das Skript ausführen, und dann erst per Titanium o.Ä. die Apps wieder einspielen.




Dann viel Spaß damit :)

Warnungszusatz: Amon_RA Recovery macht bei einem NAND+EXT Backup nur von /data/app und /data/app-private Backups - NICHT von der gesamten EXT Partition. Daher aufpassen mit Backups... Quelle: http://forum.xda-developers.com/showpost.php?p=9342788&postcount=128

Dieses Problem ist ab Amon_RA 2.0.1 (Desire) behoben. Bei anderen Geräten wird dieses Feature (Backup ALLER Dateien auf der EXT Partition) wohl auch nachgerüstet...

In Clockwork gibt es glaub ich keine Probleme.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: RodBelaFarin, Kenishi, blur und 4 andere
Wurde nicht mal irgenwo gesagt EXT2 Partitionen und CM6 nicht möglich ? Oder irre ich mich da ?

EDIT:
Nein ich Irre mich nicht ....auf dem Milestone derzeit noch nicht möglich da noch keine Kernel Module benutzt werden können!! :flapper:
 
Zuletzt bearbeitet:
Auf dem Milestone läuft ja auch kein echtes CM6, sondern nur lauter Kram aussen rum, der auf den bestehenden Motorola Kernel draufgeklatscht wird. Quasi Ferrari mit Fiat Punto Motor drin. Geräte mit offenem Bootloader können das alle... :)
 
Zuletzt bearbeitet:
Hallo,

würde mir bitte jemand den Unterschied zum aktuellen App2SD+ erläutern? Irgendwie blicke ich das nicht ...

Ich habe momentan 68 Apps auf der /ext3-Partition mittels App2SD+ installiert. Von meinem internen Speicher sind derzeit rd. 110 MB frei und außer einigen kleinere Cache-Geschichten spielt sich intern nix mehr ab.

Welcher Vorteil bieten mir dann diese Scripte?

Vielen Dank und viele Grüße
Handymeister
 
Der einzige Unterschied ist, dass es bei diesem Skript möglich ist, auch /data/data/ und /data/system/ zu verschieben. Normalerweise bleiben diese auf /data/ liegen und irgendwann ist da halt kein Platz mehr...

Wenn Du 110MB intern frei hast, dann hast Du vermutlich Dalvik-Cache schon mal verschoben, und eben keine Apps mit besonders großem Bedarf an /data/data/ Platz installiert. Je nach App können das schon mal 5-10MB sein (Copilot braucht z.B. 13MB!).

Wenn Dalvik Cache auf der SD-Karte liegt, dann sind etwa 40MB auf /data/ bei Dir belegt. D.h. wenn Du noch 70-80 MB da aufbrauchst, kriegste von Android low-memory Meldungen... bei so Apps wie Copilot entspricht das so 10 Apps, und Du bist am Limit. Ich war mit normalem A2SDEXT inkl. Verschieben von Dalvik Cache z.B. immer an der Grenze...

Apps, die kaum was auf /data/data hinterlegen, kannste natürlich noch sehr viele installieren :)
 
  • Danke
Reaktionen: Handymeister
bemymonkey schrieb:
Wenn Du 110MB intern frei hast, dann hast Du vermutlich Dalvik-Cache schon mal verschoben..

Genau. Lediglich der Cache einiger Apps müllt meinen internen Speicher noch voll. Aber wenn man da hin und wieder aufräumt ist eigentlich alles schön :)

Danke nochmal für die Info.

Viele Grüße
Handymeister
 
Dazu habe ich doch gleich mal eine Frage.
Habe gestern App2SD+ bei mir eingerichtet und nun das hier gefunden.
Nun meine Frage, was ist besser, schneller, sicherer?
Momentan habe ich app, app-private und dalvik-cache auf SD ausgelagert und 97MB frei unter data (Partition ist 512MB ext3).

Kann mal jemand die Unterschiede nennen für beide Varianten?
Habe ein Desire mit S-OFF usw.
 
Welche beiden Varianten? Das, was hier im Thread erläutert wird, wäre zusätzlich zu Deinem Setup eben nur der /data/data/ Bind (und beim Firerat Skript auch /system/data/, aber das ist nicht so wichtig :p)... wenn Du das Original-Partitionslayout hast, hast Du aktuell etwa 45MB belegt. Sprich, noch 2x so viel Apps => alles voll.

Fragt sich halt, ob Du wirklich mehr brauchst... :)
 
  • Danke
Reaktionen: Piti8576
Also ich habe das Skript (fr-a2sd_1-36c.sh.txt) benutzt, leider scheint es nicht zu funktionieren!?
Wenn das Skript einmal gestartet wurde und das Gerät neu gebootet, werden neue Apps dann automatisch auf die ext-Partition installiert? Oder muß man dann nach jeder Installation das Skript starten?

# df
df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 56488 0 56488 0% /dev
tmpfs 56488 0 56488 0% /mnt/asec
/dev/block/mtdblock3 93184 84068 9116 90% /system
/dev/block/mtdblock5 93952 88456 5496 94% /data
/dev/block/loop0 4096 4096 0 100% /system/xbin
/dev/block/mtdblock4 27648 1160 26488 4% /cache
/dev/block/mmcblk0p2 703157 155682 509960 23% /sd-ext
/dev/block/mmcblk0p2 703157 155682 509960 23% /data/app
/dev/block/mmcblk0p2 703157 155682 509960 23% /data/app-private
/dev/block/mmcblk0p2 703157 155682 509960 23% /data/data
/dev/block/mmcblk0p2 703157 155682 509960 23% /data/system
/dev/block/vold/179:1
7210496 3950100 3260396 55% /mnt/sdcard
/dev/block/vold/179:1
7210496 3950100 3260396 55% /mnt/secure/asec
#
 
Zuletzt bearbeitet:
Wieso sollte das Ganze denn nicht funktionieren? Laut df liegen /data/app, /data/app-private, /data/data und /data/system jetzt allesamt auf der EXT Partition. Ist doch wundrebar ;)

Alle Apps werden jetzt entweder auf der FAT Partition (per Froyo A2SD) oder der EXT Partition der SD Karte sein. Wo die neuen Apps installiert werden kannste unter CyanogenMod Settings festlegen, und Apps, die aktuell schon auf der FAT-Partition sind (und nicht mit dem Skript verschoben wurden) kannst Du noch manuell in Settings=>Manage Applications verschieben - hier natürlich auf den internen Speicher, da dieser ja quasi der EXT Partition entspricht.
 
Was lege ich fest wenn ich in den cyanogenmod settings auf extern schalte?
Ist hier die fat oder die ext partition gemeint?

Und weiter installiere ich jetzt alles im internen Speicher, da dieser auf ext-Partition umgeleitet ist, und Apps die laut Anwendungsmenü auf der SD(fat) liegen verschiebe ich nach intern damit diese auf der ext-Partition landen?

Wenn ich jetzt Titanium starte sollten alle meine Apps automatisch in der ext landen?
 
In Cyanogenmod gibt es eigentlich nur Froyo-Apps2SD (FAT), also ist da mit extern FAT gemeint, d.h. mit Firerat Script ist Intern=EXT und Extern=FAT.

Wenn Du mit Titanium ein Restore machst, musst Du einfach nur darauf achten, dass "Restore to original location" oder so ähnlich nicht eingeschaltet ist. Dann installiert er vermutlich alles intern => EXT.
 
bemymonkey schrieb:
Wenn Du mit Titanium ein Restore machst, musst Du einfach nur darauf achten, dass "Restore to original location" oder so ähnlich nicht eingeschaltet ist. Dann installiert er vermutlich alles intern => EXT.

Leider nicht, das restore läuft gerade und ich kann zusehen wie /data voll läuft, während /data/app sich nur wenig verändert:

direkt nach wipe und ext-wipe:
Code:
# df
df
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                    56488         0     56488   0% /dev
tmpfs                    56488         0     56488   0% /mnt/asec
/dev/block/mtdblock3     93184     84068      9116  90% /system
/dev/block/mtdblock5     93952     53348     40604  57% /data
/dev/block/loop0          4096      4096         0 100% /system/xbin
/dev/block/mtdblock4     27648      2656     24992  10% /cache
/dev/block/mmcblk0p2    703157     58124    607518   9% /sd-ext
/dev/block/mmcblk0p2    703157     58124    607518   9% /data/app
/dev/block/mmcblk0p2    703157     58124    607518   9% /data/app-private
/dev/block/mmcblk0p2    703157     58124    607518   9% /data/data
/dev/block/mmcblk0p2    703157     58124    607518   9% /data/system
/dev/block/vold/179:1
                       7210496   3951756   3258740  55% /mnt/sdcard
/dev/block/vold/179:1
                       7210496   3951756   3258740  55% /mnt/secure/asec
/dev/block/dm-0           2088       692      1396  33% /mnt/asec/se.illusionlab
s.labyrinth.lite-1
/dev/block/dm-1           2088       264      1824  13% /mnt/asec/info.lamatrice
xiste.network-1

und während des Titanium restore:
Code:
df
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                    56488         0     56488   0% /dev
tmpfs                    56488         0     56488   0% /mnt/asec
/dev/block/mtdblock3     93184     84068      9116  90% /system
/dev/block/mtdblock5     93952     73408     20544  78% /data
/dev/block/loop0          4096      4096         0 100% /system/xbin
/dev/block/mtdblock4     27648      2656     24992  10% /cache
/dev/block/mmcblk0p2    703157    123951    541691  19% /sd-ext
/dev/block/mmcblk0p2    703157    123951    541691  19% /data/app
/dev/block/mmcblk0p2    703157    123951    541691  19% /data/app-private
/dev/block/mmcblk0p2    703157    123951    541691  19% /data/data
/dev/block/mmcblk0p2    703157    123951    541691  19% /data/system
/dev/block/vold/179:1
                       7210496   3951756   3258740  55% /mnt/sdcard
/dev/block/vold/179:1
                       7210496   3951756   3258740  55% /mnt/secure/asec
/dev/block/dm-0           2088       692      1396  33% /mnt/asec/se.illusionlab
s.labyrinth.lite-1
/dev/block/dm-1           2088       264      1824  13% /mnt/asec/info.lamatrice
xiste.network-1
/dev/block/dm-2           2088       532      1556  25% /mnt/asec/de.klicktel.an
droid-1
 
Ist doch alles in Ordnung. Zwischen den zwei Screens hat sich Folgendes getan:

~65MB auf der EXT Partition wurden belegt
~20MB auf der /data Partition wurden belegt

Je nachdem, was für Apps Du installiert hast, kann das schon hinhauen. Kannst ja mal nachgucken, was auf der /data Partition so viel Platz einnimmt... der Dalvik-Cache dürfte eigentlich nicht so groß sein, und dürfte auch nicht so schnell wachsen... meiner ist auch aktuell etwa 65-70MB groß, und ich hab fast 200 Apps aufm Desire...
 
Ich Depp habe auf die Prozentanzeigen geguckt... tztz

Nichtsdestotrotz wird /data während des Restore randvoll und android meckert..

Fang grad nochmal von vorne an und schau mal nach was auf /data passiert...

EDIT2:
Scheint so als wird das Verzeichnis /data/dalvik-cache immer größer.. (>80mb)
Habe auch so ca. 200 Apps, scheint auf meinem G1 wohl zu viel zu sein für Froyo..., war bei android 2.1 kein problem...
Da muß ich wohl apps streichen, oder gibts eine andere Lösung?
 
Zuletzt bearbeitet:
Funktioniert das auch mit einem Defrost-Rom, in dem schon Apps2SD+ eingebaut ist?
 
Ufff, da fragste jetzt was. Müssteste wohl mal Richardtrip fragen... ohne Modifikationen würde ich aber eher ein Nein vermuten.
 
Danke erstmal.
Ich habe mal bei den Devs ein bisschen mitgelesen, da soll es wohl auch etwas geben, das mit Defrost funktioniert. Ich muss mir das heute Abend noch mal in Ruhe angucken.

Grüße
 
Also ich steck bei dieser ganzen "Root-Sache" noch in den kleinsten Kinderschuhen und verstehe sehr wenig von dem was da auf den vorherigen seiten erklärt wird. (shame on me but i try to learn) :winki:

Welches Script muss ich denn nun von FroYo a2sdext [ 2010-11-03 ] # v1.36 # in theory, supports HTC Incredible - CyanogenMod Forum runterladen. Da stehen so viele Sachen und ich weiß nicht welche nun genau. Wäre einer von euch so nett und schreibt mir ne Step-byStep Anleitung auf. Ich hoffe ich werde mich in Zunkunft dafür revangieren können :confused:

EDIT: habe nen Nexus one mit CM 6.1.1 die SD Karte ist schon partitioniert auf 512 EXT und rest auf FAT32

Danke :)
 
Zuletzt bearbeitet:
Hi Konnybroe, eigentlich ist das ganz einfach... das Skript, welches Du brauchst, steht in dem ersten Post des von Dir soeben verlinkten Threads unter "Install Instructions". Der Link heisst "fr-a2sd_1-36c.sh.txt".

Im Prinzip musst Du nur eine EXT Partition auf Deiner SD Karte erstellen (mit Amon_RA oder ClockworkMod in Kombi mit ROM Manager geht's am Einfachsten - aber die üblichen Methoden wie GParted gehen natürlich auch) und dann nach dem ersten Boot Deines ROMs das Skript laufen lassen.

Eine Schritt-für-Schritt Anleitung steht übrigens auch in dem verlinkten Thread (eben die oben erwähnten Installation Instructions)... :)

Falls Du sonst noch Fragen hast, frag ruhig, aber ich würde Dir wirklich gerne nahe legen, Dich noch etwas zu dem Thema einzulesen (allgemein Root und Custom ROMs), vordem Du so etwas versuchst... :)
 

Ähnliche Themen

S
Antworten
26
Aufrufe
1.482
Stabila
S
Zurück
Oben Unten