Aller au contenu

[root] Déplacer les applis de /data/app vers /system/data/app


Recommended Posts

Hello tout le monde,

Actuellement j'ai la rom de fab et mon /data est full, hors quand je regarde la place restante, je vois 65Mo sur le /system. Je voudrais savoir si quelqu'un avait deja deplace des applis de /data vers /system pour recuperer de la memoire facilement ?

J'ai vu sur le net que oui, mais j'ai pas trouvé différentes réponses à différentes questions :

- Est ce que /data et /system/data sont lu de la meme maniere, cad que android va lire les deux reps en meme temps pour connaitre les applis disponibles ?

- les applis ont un hardlink pour sauvegarder leur donnée dans /data ou il y a un risque qu'une appli fasse un cd .. pour acceder à ses infos ?

- quid des majs ?

mici d'avance

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

  • Réponses 175
  • Créé
  • Dernière réponse

Top forumeurs sur ce sujet

J'ai vu passer deux méthodes dont une que j'utilise.

La première c'est ce qu'a dis nounours un point de montage d'une partition ext2 de ta SD sur /system/xxx.

J'ai vu qu'un mod de Leshak permettais de jouer avec les points de montages mais sa signifie rooter le spica et pas se rater sur la config du mod :P.

La deuxième est beaucoup plus user friendly avec le LK2.02-1 tu lances le recovery (volume bas + appel + éteindre) et tu utilise apps2sd.

Il partionne ta carte SD en 2 avec une première partie en FAT32 classique et la 2eme en ext2

Il te demande la taille de la partition ext2 entre 128 et 512Mo, formate, copie les applis que tu avais dans /data dessus et s'occupe de gérer les points de montage ( /system/sd chez moi)

Si tu utilise cette dernière solution sauvegarde le contenu de ta SD car il y a un reformatage au milieu.

# mount
# df

Juste pour se rassurer ;)

Lien vers le commentaire
Partager sur d’autres sites

Oui un simple

# mount
...
/dev/memblckxxx           /system/sd
...

pour connaitre le point de montage et

# remount rw
# cp /system/sd/* /data/
# remount ro

remet tout en place après je pense que ça fait péter les configurations des applis en question mais je ne connait presque rien du cache donc je préfère pas dire de bêtises, faut vérifier :)

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

Si tu utilises le samdroid backup du recover pour faire des backups pense à ça aussi

Les applis dans ce point de montage ne seront pas sauvées, faut le faire à la main, à coup de tar ou faire le cp qui va bien avant

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

@nounours :

En faite je voulais dire /data/app vers /system/data/app, je modif le topic et mon post pour que ce soit plus clair ;)

Sinon de manière general, je suppose qu'il n'y a pas de mount --bind, est ce que un ln permet de faire un link et est géré comme il faut ?

Car à ce moment là, un simple rename de /data/app en /data/app.bak, puis un ln vers la SD et hop la, torché en 10s.

Sinon, on peut pas mount directement la SD sur /data/app ? On est oblige de passer par un kernel special ?

Par contre, il y a une limitation sur la taille de la fs ext2 sur la SD ? si je veux mettre 1Go, cela passera pas ?

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

A priori cela devrais marchais puisque tout est monté par le kernel de base. Mais j'ai pas testé :P

Le fait de rooter / moder et le seul moyen que je connaisse pour automatiser le montage d'une partition non prévue (ext2 sur la SD par ex) dans le système à chaque démarrage. Après ça fait que 2 semaines que j'ai commencer à faire ma rom maison donc il y a surement des moyens plus simples / intelligents.

La SD peut être formatée à la main avec les outils classiques comme parted mais sa sort de l'automatisation faite par app2sd (128 à 512Mo) dispo dans le recovery et il faut donc utiliser le mod dont je ne me rappelle plus le nom pour configurer le point de montage manuellement.

Lien vers le commentaire
Partager sur d’autres sites

dans un premier temps Oui tu peux déplacer simplement tes applications vers ton repertore system/app

mais comme precicer + haut pas de mise a jour possible ni effacement classique masi pour les applis les + frequente c'est super ....(c'est comme les apk installer sur les rom operateur)

si besoins a mon retour de vacance en fin de semaine je ferais le point sur le transfert de apk

Lien vers le commentaire
Partager sur d’autres sites

Le coup du app.bak puis ln, je sais pas, tu nous dit dès que tu as testé ?

Je voulais le faire hier, mais je retrouve plus le convertisseur pour pouvoir lire la SD sur le PC.

En pratique j'ai pas trop le temps en ce moment, je pensais que quelqu'un avait teste les commandes de base histoire d'utiliser le linux embarqué.

Enfin bon, en pratique, je vais voir à faire un chtit suivi quand j'aurais retrouve le convertisseur et quand j'aurais du temps (tetre semaine prochaine, faut pas que j'oublie ^^)

Lien vers le commentaire
Partager sur d’autres sites

Qu'est ce que app2sd et que fait-il?

ATTENTION Je parle du script app2sd disponible dans la mise à jour du kernel de leshak à savoir : le LK2.02-1 et suivants (dispo dans le zip de l'update LK2-02-1 sous forme de script init.d)

Si vous n'utilisez pas cette version de l'app2sd veuillez ne pas tenir compte de ces lignes!!!

C'est le deuxième script à se lancer après celui qui gère le premier boot du spica.

Que fait-il?

Il cherche si la carte SD possède une deuxième partition ext2 qu'il cherche grâce au point de montage suivant :

/dev/block/mmcblk0p2

===================

Si une partition ext2 existe

il monte cette partition au bon endroit

busybox mount -o noatime,nodiratime -t auto /dev/block/mmcblk0p2 /system/sd;

Change les droits de /system/sd pour qu'il appartienne à l'utilisateur,

Efface les anciens liens symboliques existants dans /data/,

Crée les dossiers correspondants aux liens effacés et change le propriétaire de ces dossiers (root => utilisateur)

A ce moment la on dispose d'un /data/ propre et reproduisant l'arborescence des applis précédemment installées mais vide.

Ensuite les applications de la mémoire interne (app et app-private) sont déplacées vers /system/sd (la partition ext2 de la carte SD)

Crée les liens symboliques des dossiers de /system/sd vers /data

Efface les fichiers .odex présent dans /system/sd/app car ils causent un plantage de dexopt.

Dit au système que app2sd est actif

setprop lk.a2sd.active 1;

===================

Si pas de partition ext2

Efface les anciens liens symboliques existants dans /data/,

Crée les dossiers correspondants aux liens effacés et change le propriétaire de ces dossiers ce qui permet de booter sans SD ou sans partition ext2 externe.

CONCLUSION

  • Les scripts init.d permettent de jouer avec les points de montage et les liens symboliques
  • Les mises à jours des applications déplacées puis linkés vers les dossiers classiques fonctionnent
  • Les applis déplacées restent sur la carte SD
  • Pour changer de rom vers une autre disposant d'App2sd on serait donc tenté de juste laisser les applis sur la SD, flasher factory et data puis rebooter MAIS ne pas oublier de recréer l'arborescence (dossiers ou symilink au choix) dans /data de toutes les applis présentes sur la SD et de sauver les réglages(cache) séparément.

En espérant que ça aura éclairé du monde.

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

bon relou, j'ai que le pseudo root avec le rom de fab, ce qui fait que toutes les options interessantes sont inaccessibles et si j'ai bien compris, il faut que je change la rom, par contre j'ai pas trop lu de howto à ce sujet.

Histoire de voir, est ce que quelqu'un peut ouvrir un shell en vrai root et faire comme suit histoire de voir :

cd /sdcard

mkdir test1

mkdir test2

cd test2

mkdir truc

busybox mount --bind /sdcard/test2 /sdcard/test1

Ensuite aller dans /sdcard/test1 et il devrait y avoir le rep truc

Parce que j'ai teste le bind et le loopdevice, et dans les deux cas j'ai pas les droits pour et comme je retrouve pas l'adapteur, bah pas de formatage possible :/

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

@Froggy

J'ai testé j'ai droit à un joli

unknown option -- -mount: invalid option --

Sinon j'ai un soucis avec App2sd. Je l'ai activée sur ma JD1 rooté LK2.02. En fait je ne peux plus installer d'application depuis le market... c'est déjà arrivé à quelqu'un ? Un piste ?

Lien vers le commentaire
Partager sur d’autres sites

@froggy Le mount --bind marche très bien chez moi je viens de retester depuis adb shell.

@kendael J'ai utilisé App2sd du LK2.02 2 semaines sans aucun souci avec le market il me fait même les mises à jour.

Je suis passé sur Samdroid 1.2 (root + LK2.03) ce soir. App2sd a été amélioré, toujours le même principe sauf qu'il peut aussi déplacer le dalvik-cache (les .dex) qui font en général 1/3 1/2 du poids de l'appli vers la SD.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Yeah !!

J'ai juste partitionné avec le recovery installé dans mon kernel de Leshack (SamdroidMod_update), j'ai partionné 356Mo en EXT2 et puis j'ai rebooté et puis j'ai rien eu à faire !!

C'est le Adb intégré au kernel qui fait tout le travail !

Je pensais qu'il fallait taper des lignes de code et tout et tout, ben même pas !

Quand mon Spica a rebooté, il était comme avant, toutes mes applis fonctionnent pourtant elles ont toutes été déplacées dans la partition EXT2 et au lieu de me 18 Mo de libre sur ma mémoire tel, j'ai maintenant 87Mo de libre !

Yeapee !

Et si c'est bien compris, c'est une histoire de redirection, donc mes prochaines appli iront aussi sur la µSD ?

Par contre je sais pas si mon CacheCleaner sera efficace maintenant ?

Je vais aller voir si je peux voir le contenu du EXT2 car comme ma µSD est formatée maintenant, mon PC, mon Spica, me dit qu'elle fait 7,03 Go et qu'elle est vide.

Comme j'ai fait la sauvegarde complète, faut que je vois ce que j'ai besoin de remettre et ce que j'ai pas besoin de remettre...

[Edit] Ah et une autre question... Si Adb a créé un chemin pour "tromper le téléphone" et que tout ce qui se met dans /data/app part maintenant dans la partition EXT2 du phone, c'est que sur le phone il ne doit rester que les appli natives qui elles sont sur system/data non ?

Donc pourquoi après avoir fait la manip via le recovery, je me retrouve avec 87 Mo de libre et pas les, je ne sais plus, 130 mo du Spica ?

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

Alors là je comprends vraiment pas...

J'ai exploré mes dossiers avec Root explorer et je vois donc bien la part EXT2 (enfin je suppose), elle est dans system/sd

Dossier dans lequel on trouve effectivement toutes mes applis system/sd/app

Seulement les appli sont toujours dans data/app, donc comment elle s'est gagné la place ??

Et comme je suis sous le kernel de Leshack (SamdroidMod_update), il y a une commande spéciale à faire dans le recovery pour retransférer à nouveau les appli vers la SD, sans passer par le formatage du recovery qui le fait tout seul ?

Lien vers le commentaire
Partager sur d’autres sites

En fait un lien virtuel a été créé, ce qui fait que lorsque tu explores le dossier data/app, tu es en fait redirigée vers le dossier system/sd/app (qui lui est un point de montage de la partition ext2 de ta carte SD -_-).

C'est comme si le répertoire data/app était un raccourcis vers ta partition ext2.

Alors peut-être que je me trompe, mais c'est ce que j'avais compris ^^

Et si tu n'as pas compris, eh bien... euh... joker :D

Lien vers le commentaire
Partager sur d’autres sites

Lol...

Je vois les deux, donc le data/app qui est plein de mes appli, c'est un "effet" en fait. Pour le phone il est vide d'où la mémoire libérée ?

Pour les nouvelles applis il suffit alors que j'aille "couper" celles que je vois dans data/app et dont je sais qu'elles y sont vraiment, puisqu'installées après le formatage, et je les "colle" dans system/sd/app ?

Lien vers le commentaire
Partager sur d’autres sites

Oui c'est un lien symbolique humm comment expliquer ça xD

Voila à quoi ressemble ton système de fichiers maintenant :

SPICA SD

/-

| EXT2 -> montée sur /system/sd/app

-> data (répertoire) - (physiquement les apllis sont ici tout le reste

| c'est des liens / racourcis)

-> app (lien linux = racourci windows)

=> /system/sd/app FAT32 -> /system/sd -

|

-> app (point de montage = lien

ou racourci vers la partition EXT2)

Si tu comprends bien il n'y a plus de répertoire /data/app mais c'est un racourci. Quand tu télécharge une appli sur le market le système l'install dans /data/app (donc /system/sd/app) tu n'as donc rien à faire pour déplacer les nouvelles applis.

Une appli est composée d'un .apk d'ou est extrait un .dex (code exécutable par le spica). Ce .dex est aussi stocké dans data : /data/dalvik-cache. Avec les nouvelles version de App2sd il est aussi possible de déplacer ce dossier sur la SD. Cest pour ça que tu as 87Mo et pas 130, il reste le cache de dalvik dans /data

Lien vers le commentaire
Partager sur d’autres sites

Super merci, c'est clair :)

C'est que mon kernel Leshack (SamdroidMod_update) ne comprend pas la dernière version de App2sd, il le mettra dans la prochaine version je suppose :)

En tous cas c'est super que tout se fasse automatiquement :)

Le seul truc que j'ai pas compris :p, c'est le test que je viens de faire.

Paramètres SD, j'ai 78,92 Mo de libre.

J'installe une appli depuis le market, TF1 News.

Je vais voir mes paramètres SD, ça me dit 78,39 de libre, ok.

J'ai directement supprimé l'apk de TF1 dans le dossier data/appl et je suis passée à 78,36 Mo de libre :/

Je suis allée voir dans system/sd/app et bien sûr l'apk TF1 n'y était plus.

Je suis retournée voir ma mémoire SD, et je suis revenue à 78,39 :/

Et j'ai pas récupéré les 78,92 Mo que j'avais avant l'installation de TF1News...

J'ai réinstallé TF1 depuis le market.. hop hop mémoire de libre : 78,40 Mo

Je l'ai désinstallé "proprement" via Apps Organizer, et mémoire SD : 78,79 Mo

Lol là je pige pas tout :p

Sinon je voulais dire que j'ai une carte µSD 8 Go Class 2 bien sûr et que je ne vois aucun ralentissement depuis le transfert des appli sur elle.

Sur mon Jet, c'était mon jeu UNO en mode landscape qui utilisait le plus ma ram et là j'ai essayé et c'est nickel.

Bon, sur le Jet c'était .jar en appli jeux java, sur Android, c'est une affreuse adaptation du jeu java (merci Gameloft de t'intéresser à Android :mad: ) et ce n'est peut-être donc pas comparable...

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

Oui j'ai pas parfaitement détaillé on reprend =)

SPICA SD

/-

| EXT2 -> montée sur /system/sd/app

-> data (répertoire) - (physiquement les .apk sont ici tout le reste

| c'est des liens / racourcis)

|-> app (lien linux = racourci windows)

| => /system/sd/app FAT32 -> /system/sd -

-> dalvik-cache (répertoire) |

=> contient les .dex -> app (point de montage = lien

ou racourci vers la partition EXT2)

Donc pour reprendre ton exemple une supression propre vire le .apk (SD) et le .dex (Spica) => les 0.4Mo qu'il te manques ;)

Le .apk contient l'exécutable (.dex) plus d'autre choses comme des images, du son et autres. A l'installation le .dex est copié dans dalvik-cache pour s'exécuter plus vite (sans avoir à l'extraire à chaque fois).

Donc quand tu veux supprimer des applis à la main supprime le .apk ET le .dex ;) (aussi le .odex pour les applis système mais ça c'est une autre histoire)

Dans les derniers app2sd ce cache est aussi déplacé sur la SD, on a donc vraiment plus aucune limite de place (a part la taille de la partition :p) Mais attention installer et désinstaller souvent des applis va diminuer la durée de vie de ta SD plus vite que si tu laisser tout sur le Spica ;)

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

Merci ! :)

Je copie/colle tout ça quelque part pour m'en souvenir :)

Là j'ai mon Spica depuis 10 jours, donc j'ai essayé des tonnes de choses.

Après les install/désinstall, y'en aura beaucoup moins :)

Mais je suis Android-Software et à chaque fois qu'ils parlent d'un truc susceptible de m'intéresser... :p

Par contre j'imagine que je ne peux pas sauvegarder ma partition Ext2 ?

Une SD qui meurt sans prévenir, j'ai eu souvent (enfin c'est arrivé au moins 3 fois, et la semaine dernière, la MS de mon fils pour sa PSP :( ), donc normalement je sauvegarde le contenu et hop, en cas décès, je refais ma carte sur une nouvelle et c'est reparti.

Mais là ?

J'ai lu que la sauvegarde via le recovery ne prenait pas en compte l'Ext2

Et les appli de backup comme MyBackup ou SpriteBackup ?

Ou alors, copier le contenu de system/sd/ et le contenu de data/ et si je dois changer ma carte, je reformate via le recovery, je re-remplis depuis RootExplorer system/sd/ et data/ et ça sera bon ?

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...