9 votes

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

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

En changeant de ROM, le cache dalvik est effacé et lorsque le téléphone redémarre, vous voyez une barre de progression indiquant qu'Android optimise les applications. Ainsi, avec un nombre raisonnable d'applications, le cache dalvik remplit le stockage bien avant que link2sd ne puisse faire quoi que ce soit.

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 son travail ? Je sais que cela peut impliquer la création d'un lien symbolique mais je ne sais pas quand les choses sont montées et dans quel ordre.

2voto

Guillermo Gomez Points 423

Bien sûr que vous le 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 commun, vfat), il est toujours fortement recommandé de formater votre carte SD en ext4 (ou le même que celui de votre carte SD). /data ) pour s'assurer que tout fonctionne bien.

Alors, allons-y. Une sauvegarde complète de toutes vos applications est recommandée avant de commencer, mais si vous avez de la chance, ce n'est pas obligatoire. En supposant que vous ayez un émulateur de terminal pour faire le travail nécessaire.

Tout d'abord, créez un dossier dans lequel vous voulez migrer votre dalvik-cache. Ensuite, chmod y chown le nouveau dossier pour correspondre /data/dalvik-cache . Si vous utilisez un système d'exploitation Android compatible avec SELinux, n'oubliez pas de modifier les contextes de sécurité en conséquence. Exécuter

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

pour voir les permissions originales, les propriétaires/groupes et les contextes de sécurité du dossier dalvik-cache.

Ensuite, copiez tous les fichiers de /data/dalvik-cache à votre nouvel emplacement, par exemple /storage/sdcard1/dalvik-cache . Vous pouvez utiliser cp -a pour préserver les attributs des fichiers, ce qui rendrait les choses plus simples.

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

Ensuite, rm -r /data/dalvik-cache et créer un lien symbolique vers le nouvel emplacement en utilisant

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

C'est tout. Nous avons terminé. Redémarrez votre téléphone (non obligatoire mais recommandé).

Quelques avis sur ce processus :

  1. La busybox ne fonctionne pas toujours bien 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, il se peut que ceux-ci fonctionnent correctement, selon la version d'Android :

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

0 votes

Je n'avais aucune idée de la façon dont j'ai écrit cette réponse complète quand je la revois après un an. Je suppose que j'ai oublié beaucoup de choses sur Android (ce qui est bien sûr impossible).

1voto

Milner Points 533

Il existe de bons guides pratiques qui pourraient vous aider à résoudre votre problème :

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

1 votes

Ce serait bien si vous pouviez ajouter des informations sur les liens dans votre message.

0 votes

C'est un peu trop de choses à intégrer dans ma réponse - c'est pourquoi je n'ai extrait que l'indice de base, c'est-à-dire l'application pour faire le travail.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X