Puis-je modifier l'emplacement du cache dalvik, par exemple avec un lien symbolique?


9

J'utilise actuellement Link2SD car le stockage intégré de mon téléphone est insuffisant pour plus de quelques applications essentielles. Il est très efficace mais limité au moment où le téléphone est allumé.

Lors du changement de ROM, le cache dalvik est effacé et lorsque le téléphone redémarre, une barre de progression indique que Android optimise les applications. Donc, étant donné un nombre raisonnable d'applications, le cache dalvik remplit le stockage bien avant que link2sd ne puisse rien y faire.

Existe-t-il un moyen de monter un dossier de carte SD comme emplacement de cache approprié avant que le système ne démarre et ne fasse ses affaires? Je sais que cela pourrait impliquer la création d'un lien symbolique, mais je ne sais tout simplement pas quand les choses sont montées et dans quel ordre.

Réponses:


2

Bien sûr vous pouvez. Bien qu'il semble qu'il n'y ait aucun problème à migrer dalvik-cache vers un système de fichiers de carte SD normal (le plus courant, vfat), il est toujours fortement recommandé de formater votre carte SD en ext4 (ou la même que la vôtre /data) pour vous assurer que tout fonctionne bien.

Alors allons-y. Une sauvegarde complète de toutes vos applications est recommandée avant de continuer, mais si vous vous sentez chanceux, ce n'est pas nécessaire. En supposant que vous disposez d'un émulateur de terminal pour effectuer les tâches nécessaires.

Tout d'abord, créez un dossier vers lequel vous souhaitez migrer votre cache dalvik. Ensuite chmodet chownle nouveau dossier pour correspondre /data/dalvik-cache. Si vous exécutez un système d'exploitation Android compatible SELinux, n'oubliez pas de modifier les contextes de sécurité en conséquence. Courir

ls -dlZ /data/dalvik-cache
ls -lZ /data/dalvik-cache

pour voir les autorisations, propriétaires / groupes et contextes de sécurité d'origine du dossier dalvik-cache.

Ensuite, copiez tous les fichiers de /data/dalvik-cachevotre nouvel emplacement, par exemple /storage/sdcard1/dalvik-cache. Vous pouvez utiliser la cp -acommande pour conserver les attributs de fichier, ce qui simplifierait les choses.

Assurez-vous qu'aucune nouvelle application ne démarre pendant le processus de l'étape suivante.

Ensuite, rm -r /data/dalvik-cacheet créez un lien symbolique vers le nouvel emplacement à l'aide de

ln -s /storage/sdcard1/dalvik-cache /data/dalvik-cache

C'est tout. Avaient fini. Redémarrez votre téléphone (non requis mais recommandé).

Quelques remarques sur ce processus:

  1. La busybox peut ne pas toujours bien fonctionner car Android est basé sur un noyau Linux hautement modifié. Par exemple, presque toutes les fonctions liées à SELinux ne fonctionnent pas correctement. Vous pouvez le tester comme indiqué ci-dessous.

    toolbox ls -Z /data
    busybox ls -Z /data
    toolbox getenforce
    busybox getenforce
    

    Cependant, ceux-ci peuvent fonctionner correctement, selon la version d'Android:

    busybox chcon <context> <files...>
    busybox runcon <context <program> [args...]
    
  2. Ne retirez jamais votre carte SD. Si vous reformatez votre carte SD, assurez-vous qu'elle est toujours ext4 ET recréez le dossier dalvik-cache avant de démarrer votre téléphone pour la première fois.


Je ne savais pas comment a écrit cette réponse complète quand je la revois après un an. Je suppose que j'ai beaucoup oublié Android (ce qui est bien sûr impossible).
iBug

1

Il existe de jolis Howtos disponibles, qui pourraient s'avérer utiles pour résoudre votre problème:

Selon plusieurs discussions du forum, A2SDGUI - Darktremor A2SD GUI devrait être l'application de choix pour déplacer le cache Dalvik sur votre carte SD.


1
Ce serait bien si vous pouviez ajouter des informations à partir des liens dans votre message
Flow

C'est un peu trop de choses à intégrer à ma réponse - c'est pourquoi je n'ai extrait que le conseil de base, c'est-à-dire l'application avec laquelle faire le travail.
Izzy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.