Aller au contenu

[Tuto]Déplacement du dalvik-cache vers /cache (60Mio gagnés)


Hatt.Droid

Recommended Posts

Déplacement du dalvik-cache vers /cache

Bonjour tous le monde !

J'ai cherché à travers tout internet une méthode spécifique au milestone permettant de réaliser un déplacement du dalvik-cache vers la partition /cache, mais je n'ai rien trouvé... Du coup, j'ai préparer ce tuto en me basant sur la méthode pour le G1. Après un semi-brick de mon milestone, voilà une méthode fonctionnelle pour alléger la mémoire interne de notre terminal !

Ce hack permet un gain d'environ 60 Mio sur la rom sans perte de performance en lecture/écriture car la partition /cache est du même type de mémoire que celle où était le dalvik-cache. Toutefois il empêche toutes les mise-à-jour OTA (la partition /cache n'étant utilisée que pour cela).

Pour ceux qui veulent seulement appliquer le hack, qu'il saute ce paragraphe d'explications pompeuses, même s'il est extrêmement important de savoir ce qui se passe réellement sur votre mobile.

Pour comprendre un peu ce qui sera réalisé, nous devons savoir que nous n'allons pas déplacer nous-mêmes le dalvik-cache, pour la bonne et simple raison que si nous procédions de cette manière une fois le déplacement du dalvik-cache terminé (en gros un copier-coller, une création de lien symbolique et un changement de groupe et de droit), le système android aura la fâcheuse tendance de le remettre à son emplacement original à chaque redémarrage du téléphone ! Et quand on sait que pour finaliser le déplacement, on doit redémarrer le portable, on se rend très vite compte que ce n'est pas fonctionnel !

Donc la parade va consister à modifier le script du démarrage du phone pour que notre android redéplace à chaque redémarrage notre dalvik-cache à l'endroit désiré. Ce script de démarrage c'est le fichier 'mot_boot_mode'.

Enfin bref, voilà pour les explications.

Début du guide :

Vous aurez besoin des éléments suivants pour réaliser cette opération :

- un milestone rooté

- un emulateur de terminal sur votre mobile (ou adb sur votre ordinateur même si ce tutoriel ne traitera pas ce cas)

- le fichier "mot_boot_mode" fourni avec ce guide

- un backup au cas où

[Edit0] : Etape préalable

Avant tout cela, il se peut que vous deviez monter la partition /system en lecture/écriture (chez certaines personnes elle n'est qu'en lecture, moi je n'en ai pas eu besoin). Pour cela veuillez taper :

- si vous êtes en 2.0 :

        mount -o remount,rw /dev/block/mtdblock7 /system

- si vous tes en 2.0.1/2.1 :

        mount -o remount,rw /dev/block/mtdblock6 /system

Même si vous pensez ne pas en avoir besoin, faites le quand même ça ne coute rien et ça n'est pas dangereux ! :)

A ce sujet, super tuto et script de Mikadoh pour monter cette partition rapidement en écriture, ici :

https://forum.frandroid.com/forum/viewtopic.php?id=10270

[\Edit0]

Copiez le fichier 'mot_boot_mode' à la racine de votre carte sd.

Voici les commande à exécuter sur le terminal du mobile pour déplacer le dalvik-cache vers la partition /cache :

su
cd /system/bin
cp mot_boot_mode mot_boot_mode.bin
rm mot_boot_mode
cp  /sdcard/mot_boot_mode .
chown root.shell mot_boot_mode
chown root.shell mot_boot_mode.bin
chmod 755 mot_boot_mode
chmod 755 mot_boot_mode.bin

[Edit1] : Vérification

Très important, après toutes ces opérations, vérifier bien que les bons droits aient été mis sur les fichiers créés, pour cela taper dans le repertoire /system/bin/:

    cd /system/bin/
   ls -l

(le terminal sur le mon portable ne me permettant pas de taper "ls -l mot_boot_mode*" pour n'avoir que les fichiers concernés par la modif)

Et cherchez la ligne décrivant les deux fichiers importants : "mot_boot_mod" et "mot_boot_mode.bin"

Vous devriez avoir ceci :

    -rwxr-xr-x    1 0    2000    [..]    mot_boot_mode
   -rwxr-xr-x    1 0    2000    [..]    mot_boot_mode.bin

Les informations importantes sont les droits (-rwxr-xr-x) et le propriétaire des fichiers (2000), ces informations doivent être strictement identiques à celles affichées ici.(les [..] indiquent des infos inutiles pour nous dans ce cas là).

[\Edit1]

Voilà ! Aprés redémarrez le mobile et attendez... ...attendez... ...oui c'est assez long, mais seulement la première fois (copie de l'ancien contenu du dalvik-cache dans le nouvel emplacement) ! Mais après c'est gagné ! ( hommage à Mr. Pringles ;) )

Si vous avez des problèmes, notamment un téléphone qui ne redémarre plus, pas de panique ! Le booloader est toujours accessible et il ne vous reste plus qu'a reflasher un firmware "service version", comme ça aucune perte de données.

Si vous avez des questions, ou si vous constatez des fautes dans mon post n'hésitez pas à m'en faire part, je ne suis pas très disponible mais j'essaierais de corriger et de vous répondre au plus vite.

Un peu d'indulgence s'il vous plaît, je suis un lecteur habitué du site et du forum mais ce n'est que mon premier post, je ne maîtrise pas encore la mise en forme du message et toutes ces subtilités ! :D

Bon courage à tous !

Modifié par Hatt.Droid
Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toi scope3d,

S'il te fait cette erreur c'est qu'il considère qu'il n'y a pas de fichier "mot_boot_mode.bin" et... ...c'est normal ! :)

En effet c'est le fichier que ne voulons créer avec la ligne "cp mot_boot_mode mot_boot_mode.bin" et donc il n'y est pas. Par contre le fichier "mot_boot_mode" lui, y est forcément par défaut sinon ton motorola ne démarrerais pas.

Tu as du inverser l'ordre des paramètre de la commande "cp", et donc assure de taper "cp mot_boot_mode mot_boot_mode.bin" et non "cp mot_boot_mode.bin mot_boot_mode ".

Pour info la commande "cp" est de la forme "cp source destination".

Astuce : avec certains emulateurs de terminal, tu as l'auto-complétion (comme sur une vrai console avec la touche 'tab' !) qui permet de terminer ta ligne de commande en fonction des fichiers ou des commandes déjà existantes, de cette manière tu ne pourras pas te tromper sur le nom de fichier.

Bon courage !

Modifié par Hatt.Droid
Lien vers le commentaire
Partager sur d’autres sites

Salut !

J'ai rajouté deux éditions importantes dans le tuto :

- la première concernant un problème de montage chez certaines personnes

- la deuxième pour vérifier que tout est bon et éviter de reflasher comme cela m'est arrivé :)

S'il y a un problème faites-m'en part !

Ciao !

Modifié par Hatt.Droid
Lien vers le commentaire
Partager sur d’autres sites

Yep , ce soir j'ai pas trop le temps de refaire la manip mais si tu regardes bien il ne me semble pas avoir inversé les commandes ; en fait j'ai juste fait un copié collé de mon shell adb ....

Bah je t'en dis plus demain la j'ai vraiment pas le temps .

En tous cas mille merci pour ta contribution, perso ca m'interresse carrément cette histoire de dalvvik .

a pluch

Lien vers le commentaire
Partager sur d’autres sites

j ai essayé , j'ai chercher les ligne repertoir mot boot mais elle n'y était pas , ne sachant pas quoi faire j'ai reboot et biensur il ne demarre pas , dc je vais tanter mon backup nandroid , que faire si les repertoires non pas été créés ?

Lien vers le commentaire
Partager sur d’autres sites

ps: le backup nandroid a fonctioné , maintenant que je suis moin en stress je peux reformulé ma question , j'ai suivi toute les étapes mais quand je fait l edit 1, la ligne mot_boot_mode.bin a pour repertoire fichier 5000 quelquechose et il n'y a pas la ligne mot_boot_mode , que faire dans ce cas ? merci bcp de vos réponses !!

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous,

- pour math6837 :

La commande suivante permet de copier le fichier mot_boot _mode de la carte sd vers le répertoire /system/bin:

cp  /sdcard/mot_boot_mode ./

Il faut bien voir le caractère "point" (".") à la fin de la ligne dans le tuto, sinon pour être sûr tu peut taper :

cp  /sdcard/mot_boot_mode  /system/bin/

Pour le problème de droit, revérifie les après avoir taper les commandes suivantes (bien sûr avec les deux fichiers présents dans /system/bin/) :

chown root.shell mot_boot_mode
chown root.shell mot_boot_mode.bin
chmod 755 mot_boot_mode
chmod 755 mot_boot_mode.bin

Il est vrai que pour les droits, moi aussi j'ai constaté ce phénomène : la commande parfois ne passe pas du premier coup. Il ne faut prendre cela à la légère et il vaut mieux réessayez plusieurs fois avant de rebooter, car même si les fichiers sont présents, si les droits sont mauvais le téléphone ne bootera pas.

- pour scope3d :

J'ai bien peur de ne pas comprendre, comment peut il te donner cette erreur alors que tu met "mot_boot_mode.bin" en paramètre d'écriture (destination), la commande cp n'est pas codé de manière à vérifier la non-existence du fichier de destination (j'ai étudié le code durant mes étude ;) ) par contre pour la source "mot_boot_mode", oui. C'est pourquoi d'ailleurs je pensais que tu avais inversé source et destination (sans savoir que c'était un copier-coller du shell).

Je continue à y réfléchir mais c'est vrai que je ne vois pas trop où est le problème pour l'instant...

Je rappelle que je réalise toutes mes commandes directement sur le téléphone grâce à un émulateur de terminal (chercher "terminal" sur le market il y en a des gratuits) et non avec adb, car j'ai eu des problèmes par le passé (même si il ne devrait pas trop y avoir de différences entre les deux). De plus, on a la chance d'avoir un joli clavier donc autant en profiter pour s'affranchir de l'ordinateur. :P

J'ai vérifié sur mon milestone, tous les fichiers sont bien présents au bon endroit et avec les bonts droits, je ré-éxecuterais peut-être le tuto après un restore sur mon téléphone si j'ai le temps.

J'espère que je ne répond pas à coter de vos questions, n'hésitez pas à me donner des nouvelles.

Bon courage ! :)

Lien vers le commentaire
Partager sur d’autres sites

Salut gregosor78,

Ça me rassure qu'il y ai enfin une personne chez qui sa marche, je commençais à croire que j'avais un milestone "magique" sur lequel ça fonctionne ou que mon tuto était complètement pourri... :/

En tout cas, c'est cool pour toi, content que ça marche !

Modifié par Hatt.Droid
Lien vers le commentaire
Partager sur d’autres sites

merci pour tes réponses hatt.droid !! j'ai rééssayé et ça a fonctionné nikel !!merci bcp pour le tuto , juste une quetsion comment faire la manip inverse pour pouvoir refaire des MAJ OTA au cas ou ?

Il faudrait remplacer la fin du script par un truc comme ça (puis rebooter) :

# remove old symlink, if exist
if [ -h /data/dalvik-cache ] ; then
 rm /data/dalvik-cache

 # make original dalvik-cache directory
 mkdir /data/dalvik-cache
 chown system.system /data/dalvik-cache
 chmod 771 /data/dalvik-cache

 rm -r /cache/dalvik-cache
fi

(ca teste si /data/dalvik-cache est un lien, et si oui ça le remplace par un rep comme l'origine, et supprime celui dans /cache)

Par contre il faut avoir assez de place sur /data pour que le cache y soit recréé !

D'ailleurs.... quand on deplace le cache, il est bien de désactiver les mises à jour OTA dans la config du tel !!!

Modifié par Slig
Lien vers le commentaire
Partager sur d’autres sites

Super Slig pour le script !

Mais je me dis qu'il suffirait juste de virer le "mot_boot_mode" modifié, renommer le "mot_boot_mode.bin" en "mot_boot_mode" (comme la config originale), remettre bien sûr les bons droits, et compter sur le fait qu'Android remet à chaque démarrage le dalvik-cache au bon endroit.

L'avantage c'est qu'on revient exactement dans la config originale du portable et qu'il n'y a que 3 lignes de commande à passer.

Je n'ai pas essayé encore, mais ça me parait fonctionnel. A tester !

Pour ton tuto, en effet je l'avais trouvé en recherchant les termes "dalvik-cache" sur le forum, mais j'avais un peu de mal à différencier les étapes pour le dalvik-cache et les étapes pour l'app2sd, du coup j'ai laissé tomber car j'avais un peu peur de mettre mon milestone neuf d'une semaine en l'air :mad: . Comme j'aime bidouiller, j'ai préferé recommencer du début et faire que ce qui m'intéressais : le dalvik-cache.

Ce qui est marrant c'est que maintenant quand je relis ton tuto je me rends compte de la différence entre les deux (app2sd et dalvik-cache) et je me dis que mon tuto ne sert à rien :lol:

Mais bon je me rassure en me disant que je n'étais sûrement pas le seul à ne vouloir que le dalvik-cache déplacé ;)

En continuant à bidouiller, on va pouvoir faire des trucs de fou avec nos mobiles, d'ailleurs je prépare un tuto sur comment faire le café avec son Android, et il y aura peut être une option chocolat chaud ! ;)

Plus sérieusement, merci Slig en tout cas pour ton tutos sur app2sd+dalvik-cache et ton script sur ce thread, c'est cool !

Lien vers le commentaire
Partager sur d’autres sites

Salut Hatt

Je viens de reprendre le tuto avec un terminal directement sur le téléphone et je n'ai pas rencontré de soucis de commandes particulier.

En revanche quand je fais un ls -l pour vérifier avant de rebooter, les fichiers sont bien présents mais je n'ai pas exactement la même syntaxe que décris plus haut , moi j'ai ca:

-rwxr-xr-x root shell 559 "date:heure" mod_boot_mode

-rwxr-xr-x root shell 5508 "date:heure" mod_boot_mode.bin

Avant de rebooter j'aimerais savoir si ca veut bien dire la même chose . En fait j'ai déja fait une fois la manip , la commande ls -l me renvoyait le même code mais au moment du reboot le tel est resté collé sur le logo de démarrage . Du coup j'ai reflashé vite fait et je me suis remis en 2.0.1 rooté .

A titre indicatif le déplacement du cache prends environ combien de temps ? peut etre que je n'ai pas attendu assez longtemps (40 mn environ) ?

Lien vers le commentaire
Partager sur d’autres sites

Mais je me dis qu'il suffirait juste de virer le "mot_boot_mode" modifié, renommer le "mot_boot_mode.bin" en "mot_boot_mode" (comme la config originale), remettre bien sûr les bons droits, et compter sur le fait qu'Android remet à chaque démarrage le dalvik-cache au bon endroit.

J'irai pas parier la dessus. Et de même, de manière naturelle le rep cache mis dans /cache il ne le virera pas

Après oui, tu peux aussi remettre (toutes) les choses en place à la main et rebooter

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ce tuto!

Marche nickel!

Par contre j'ai pas réussi avec "connectbot" j'ai du utilisé "better terminal emulator"

Content que ça ai pu t'aider Sakazaki !

Moi aussi j'utilise "better terminal emulator" qui est juste excellent (par contre payant malheureusement).

Pour les gratuits, comme j'ai du dire quelques messages plus haut, il y en a des parfaitement fonctionnels sur le market, l'appli "Android Terminal Emulator" de Jack Palevich ou "Terminal Emulator" de ZTA Technologies, pour ne citer qu'elles, fonctionnent parfaitement.

Modifié par Hatt.Droid
Lien vers le commentaire
Partager sur d’autres sites

bon alors moi ça m'a bien fait planté mon milestone, et je sais pas trop pourquoi,

mais le market voulait plus télécharger d'appli

puis toutes les applis se sont mise à planter

heureusement j'avais fait un backup nandroid juste avant

Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...

@Orsetd mist : Sympa ton premier post , premierement t'as aucune crédibilité par le simple fait que ce soit ton premier post , deuxièmement ce hack déplace le dalvik cache de /data a /cache , ce qui te permet un gain de mémoir interne sans endommager du tout ton mobile , mais ça tu le sait pas parce que t'es inscrit depuis hier.

En bref tu débarques , tu tentes d’humilier un vrai membre du forum , tu te rates , c'est quoi la suite ? tu te désinscrit et tu revend ton milestone ?

Ps: Hatt droid ne voulait pas passé pour un virtuose , mais faire un petit tuto simple pour les gens en galère de mémoire... toi en revanche si par ton post tu voulais essayer de montrer que t'avais "des connaissances" saches que c'est raté , t'es juste passé pour un bouffon.

Modifié par math6837
Lien vers le commentaire
Partager sur d’autres sites

Salut Orsted Mist,

Bon pour dire vrai, vu la forme objectivement impolie et non constructive de tes messages j'hésite entre répondre ou pas.

Bon allez, on va répondre quand même. :P

Pour répondre rapidement aux premières accusations :

- je ne prétend pas être un virtuose.

- ok si le mot "hack" ne te plait pas, c'est pas grave ! C'est pas ça qui va changer le fond du tuto !

- je n'ai de compte à rendre à personne concernant la compréhension des commandes que je propose.

- les commandes sont expliquées (du mieux que je peux) dans le tuto pour les néophytes aux commandes de type sh (bash, csh & cie - généralement ce qui a sur GNU/Linux -)

- j'ai essayé d'assister les personnes quand elles avaient un problème sur le téléphone

Je suis d'accord que la manipulation n'est pas difficile, mais ce n'est pas le but du tuto, le but c'est juste de proposer de manière très simplifiée et didactique comment gagner de la place sur la rom pour installer plus d'applications. Rien d'autre !

Au fond que ce soit facile, tant mieux ! Il y a un tas de personnes qui débutent sur Android sans même connaître le lien avec GNU/Linux voire même l'existence de ce système, donc proposer un tutoriel m'a parut utile (ne serait-ce que pour faire savoir qu'il est possible de gagner de la place sur la rom du Milestone). Apparemment, d'autre membres du forum ont trouvés ça utile... Si mon utile est nase et sans intérêt j'en appelle aux modérateurs pour supprimer tout le post et ce sera réglé.

Je ne donnerais pas suite à cette conversation, je pense avoir répondu à toutes accusations concernant ce tuto et me concernant, trouver d'autres problèmes serait vraiment de la mauvaise foi.

Cordialement,

Un gros nul avec "juste" 10 ans d'Unix dans les pattes sur a peu près le double de vie humaine mais à part ça je comprends rien à ce que je tape. :P

PS : - Il ne faut pas se fier à mon nombre de post, je n'en ai qu'une dizaine pourtant je suis sur le forum (section Milestone) quasiment tous le temps.

- J'en appelle aux modérateurs pour la suppression des derniers messages qui ne servent à rien au fil de discussion.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...