Ich verwende derzeit Link2SD, da der integrierte Speicher meines Telefons für mehr als ein paar wichtige Apps nicht ausreicht. Es ist sehr effektiv, aber nur bei eingeschaltetem Telefon.
Beim Wechseln von ROMs wird der Dalvik-Cache gelöscht und wenn das Telefon neu gestartet wird, sehen Sie einen Fortschrittsbalken, der besagt, dass Android Anwendungen optimiert. Bei einer angemessenen Anzahl von Anwendungen füllt der Dalvik-Cache also den Speicher, lange bevor link2sd etwas dagegen tun kann.
Gibt es also eine Möglichkeit, einen SD-Kartenordner als geeigneten Cache-Speicherort bereitzustellen, bevor das System mit dem Booten und seiner Arbeit fortfährt? Ich weiß, dass es das Erstellen eines symbolischen Links beinhalten könnte, aber ich weiß einfach nicht, wann die Dinge gemountet werden und in welcher Reihenfolge.
Natürlich kannst du. Obwohl es kein Problem zu sein scheint, dalvik-cache auf ein normales SD-Karten-Dateisystem (das gebräuchlichste, vfat) zu migrieren, wird dennoch dringend empfohlen, dass Sie Ihre SD-Karte auf ext4 (oder dasselbe wie Ihre /data
) formatieren, um sicherzustellen, dass alles funktioniert fein.
So lass uns gehen. Eine vollständige Sicherung aller Ihrer Apps wird empfohlen, bevor Sie fortfahren. Wenn Sie Glück haben, ist dies jedoch nicht erforderlich. Angenommen, Sie haben einen Terminalemulator, um die erforderlichen Aufgaben zu erledigen.
Erstellen Sie zunächst einen Ordner, in den Sie Ihren Dalvik-Cache migrieren möchten. Dann chmod
und chown
den neuen Ordner anpassen /data/dalvik-cache
. Wenn Sie ein SELinux-fähiges Android-Betriebssystem ausführen, vergessen Sie nicht, die Sicherheitskontexte entsprechend zu ändern. Laufen
ls -dlZ /data/dalvik-cache
ls -lZ /data/dalvik-cache
um die ursprünglichen Berechtigungen, Eigentümer/Gruppen und Sicherheitskontexte des dalvik-cache-Ordners anzuzeigen.
Kopieren Sie als Nächstes alle Dateien von /data/dalvik-cache
an Ihren neuen Speicherort, z. B. /storage/sdcard1/dalvik-cache
. Sie können den cp -a
Befehl verwenden, um Dateiattribute beizubehalten, was die Dinge einfacher machen würde.
Stellen Sie sicher, dass während des folgenden Schritts keine neuen Apps gestartet werden.
Erstellen Sie dann mit rm -r /data/dalvik-cache
einen symbolischen Link zum neuen Standort
ln -s /storage/sdcard1/dalvik-cache /data/dalvik-cache
Das ist alles. Wir sind fertig. Starten Sie Ihr Telefon neu (nicht erforderlich, aber empfohlen).
Einige Hinweise zu diesem Vorgang:
Die busybox funktioniert möglicherweise nicht immer gut, da Android auf einem stark modifizierten Linux-Kernel basiert. Beispielsweise funktionieren fast alle SELinux-bezogenen Funktionen nicht richtig. Sie können es wie unten gezeigt testen.
toolbox ls -Z /data
busybox ls -Z /data
toolbox getenforce
busybox getenforce
Diese können jedoch je nach Android-Version ordnungsgemäß funktionieren:
busybox chcon <context> <files...>
busybox runcon <context <program> [args...]
Entfernen Sie niemals Ihre SD-Karte. Wenn Sie Ihre SD-Karte neu formatieren, vergewissern Sie sich, dass sie immer noch ext4 ist UND erstellen Sie den dalvik-cache-Ordner wieder, bevor Sie Ihr Telefon zum ersten Mal starten.
Es gibt einige nette Howtos, die sich bei der Lösung Ihres Problems als hilfreich erweisen könnten:
Laut mehreren Forenthreads sollte A2SDGUI - Darktremor A2SD GUI die App der Wahl sein, um den Dalvik-Cache auf Ihre SD-Karte zu verschieben.
iBug