hDpouet Posté(e) 7 février 2012 Share Posté(e) 7 février 2012 (modifié) Salut à tous, J'vous propose un tutoriel qui permet d'outre passer une limitation de Deezer quant à l'utilisation d'une carte SD externe sur ICS (pour ma part ICSSGS avec la RC4.1) Contexte :Je suis un utilisateur de Deezer avec un compte premium et une SD externe de 8Go, j'étais auparavant sur une ROM 2.3.6 et donc avec ma carte SD externe montée sur "/mnt/sdcard/external_sd". Vous le savez surement, Deezer scrute l'emplacement du point de montage de la carte externe constamment et propose d'y déposer les musiques téléchargées si cet emplacement s'avère plus grand que la carte SD interne. Malheureusement, sur ICS le point de montage de la SD externe est déplacé vers /emmc et par conséquent Deezer (ou tout autre application utilisant le chemin classique) est incapable de gérer cet espace supplémentaire. Comme je l'ai dit plus haut, j'ai un compte premium, j'écoute énormément de musique en voiture, je ne pouvais pas me passer de la SD supplémentaire de 8Go. J'ai donc pas mal creusé la question, ça m'a pris quelques jours, j'ai testé des solutions plus ou moins viables ou farfelues, et j'en suis arrivé à un résultat très satisfaisant donc je souhaite partager la méthode que j'ai utilisé (parce que j'en ai pas mal ch**r !) via ce tutoriel que je vais tenter de faire au plus clair. Avant toute chose, avant d'effectuer des modifications et autres manipulations sur votre téléphone, ayez bien conscience et connaissance des actions que vous allez effectuer. Ce tutoriel montre la voie pour résoudre (on va dire contourner un problème), et malgré que la solution proposée soit a priori peu dangereuse, les lignes qui suivent comportent peut-être des approximations (en fonction de votre SGS, de votre kernel, de votre ROM). Donc pour éviter de faire cette manip' pour du beurre, ne suivez pas ce tuto si : Vous n'êtes pas sous ICS Ne rencontrez pas de problème avec votre carte SD externe et Deezer (ou une autre application éventuellement) Vous êtes sur iPhone (haha on rigole bien chez moi) Allez hop on décolle... Prérequis : Avoir le mode recovery et download (en cas de pépin) Avoir un téléphone rooté Avoir Superuser sur son téléphone. Au cas où, faire une sauvegarde de votre système et de vos fichiers Avoir installé ADB (si comme moi vous avez rencontré des ennuis allez faire un tour par là http://www.flashreal...ist-of-devices/ et pour l'utilisation un p'tit tour par là http://forum.frandro...se-servir-dadb/) Posséder un editeur de texte supportant les retours à la ligne du type UNIX (notepad++ sous Windows fait l'affaire). J'ai tenté des solutions à base de modification de la fstab (dans le fichier vold.fstab) => bootloop ou inefficace La solution la plus propre aurait été de créer un lien symbolique (ln -s) de /mnt/sdcard/external_sd pointant vers /emmc malheureusement => impossibilité de créer le lien symbolique nécessaire (à cause du système de fichiers vfat je pense) Au final, la solution fonctionnelle va consister à "binder" un chemin factice utilisé par Deezer vers le répertoire /emmc. En clair, le répertoire /mnt/sdcard/external_sd sera le point de montage du répertoire /emmc (qui je le rappelle est le point de montage de la carte SD externe sous ICS). Cette méthode a pour avantage de ne pas toucher au point de montage par défaut de la carte SD externe sous ICS, elle se contente de faire pointer un autre répertoire vers ce qui est déjà existant. Allez on branche le téléphone en USB, on le place en mode debug et on commence avec ADB. On va utiliser le shell du téléphone : adb shell Une fois sous le shell, on passe root : su On créé le répertoire opt dans le répertoire /data : mkdir /data/opt Si le répertoire existe déjà la commande retournera une erreur mais c'est évidemment sans conséquences On créé également le future point de montage : mkdir /mnt/sdcard/external_sd Si ce répertoire existe déjà doit être intégralement vidé sinon on ne pourra pas le "binder" On peut à présent sortir du shell : exit exit Maintenant sous windows, vous allez ouvrir votre éditeur de texte et le placer en mode d'édition avec retour à la ligne type UNIX (cherchez dans les paramètres, ça dépend de l'éditeur que vous utilisez). Dans l'éditeur, vous creez un nouveau fichier, et vous y insérez : #!/system/bin/sh # Pousse un lien vers external_sd pour les apllications ayant besoin de ce chemin mount -o bind /mnt/emmc /mnt/sdcard/external_sd On sauvegarde ce fichier et on va le nommer autostart.sh (en fait le nom importe peu, mais il doit quand même être parlant). Ce fichier va devenir le script à exécuter pour créé notre point de montage. Il nous reste à le pousser dans le téléphone dans le répertoire /data/opt, à l'aide de ADB ... : adb push X:\<chemin_du_fichier_créé>\autostart.sh /data/opt ... et à le mettre en permission exécutable, il nous faut retourner sur le shell : adb shell Modification des permissions, et des droits d'exécution (toujours en root) : su chown root /data/opt/autostart.sh chmod 755 /data/opt/autostart.sh Et on quitte de nouveau le shell : exit exit A ce stade, si vous exécutez le script autostart.sh, le point de montage devrait être effectif, mais on ne va pas se contenter de si peu. En effet, dans l'état actuel des choses il faudrait relancer le script à chaque fois qu'on éteint le téléphone, c'est pas très confort. Alors chemise sur le bateau, on va utiliser l'application Script Manager (en version gratuite) dispo sur le market, et la paramétrer de sorte à lancer le script à chaque démarrage avec les droit super utilisateur. Une fois Script Manager installé, lancez l'application, puis parcourez l'arborescence afin de vous retrouver dans le répertoire /data/opt, vous devriez voir apparaître votre autostart.sh. "Cliquez" dessus, dans la fenêtre qui apparaît, sélectionnez Su, sélectionnez Boot, et si ce n'est pas fait sélectionnez Is script. Pour terminer, on fait Run puis Save et si tout s'est bien déroulé, le point de montage est déjà opérationnel et aux redémarrages également. Voilà voilà, y'a surement plus simple, y'a surement plus compliqué, dans tous les cas j'attends vos critiques / remarques / questions / suggestions. Merci de me corriger si vous pensez que mes explications ne sont pas ;) Dams. Modifié 7 février 2012 par hDpouet 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nass06 Posté(e) 22 février 2012 Share Posté(e) 22 février 2012 Merci ça marche nickel :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
franzyroy Posté(e) 27 février 2012 Share Posté(e) 27 février 2012 C'est pas mal ton truc mais vu que tu le fais démarré automatiquement... ne peut on pas se passer de la dernière étape? C'est à dire de faire le premier démarrage manuellement. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
hDpouet Posté(e) 28 février 2012 Auteur Share Posté(e) 28 février 2012 En fait le démarrer a la main la première fois t'evite d'avoir à redémarrer ton SGS (et éventuellement de tester la manip aussi sans redémarrer). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
franzyroy Posté(e) 1 mars 2012 Share Posté(e) 1 mars 2012 OK pour çà! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nass06 Posté(e) 6 mars 2012 Share Posté(e) 6 mars 2012 Une question, une fois le script lancé on ne peut plus monté la sd sur le pc, y'a pas une possibilité d'avoir un autre script pour faire un unmount du lien de montage? J'ai regardé un peu mais rien trouvé. Merci :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
hDpouet Posté(e) 8 mars 2012 Auteur Share Posté(e) 8 mars 2012 umount /mnt/sdcard/external_sd dans un script ça donne quoi ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nass06 Posté(e) 13 mars 2012 Share Posté(e) 13 mars 2012 Merci ça passe, j'avais essayé avec unmount au lieu de umount, bizarre. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
OpenDroid Posté(e) 23 mars 2012 Share Posté(e) 23 mars 2012 Hello, Juste un tout grand merci à hDpouet pour son tuto, il fonctionne nickel pour mon GT-I9000 tournant sous CM 7.1. J'ai également créé un script de démontage en cas de besoin. Merci encore d'avoir partagé ce tuto ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
zeddo Posté(e) 31 mars 2012 Share Posté(e) 31 mars 2012 Bonjour, Une belle épine sortie du pied, merci ! Perso c'était surtout Navigon qui m'emm... depuis le passage en ICS. J'ai une question. J'ai suivi ce tuto, et j'ai également fait un script umount, pour quand je branche mon tel à l'ordi. Ya possibilité de faire un raccourci sur le bureau plutôt que d'aller chercher le script dans /data/opt ? C'est pas bloquant, mais un raccourci sur le bureau ça serit plus facile :P sinon j'ai apporté une légère modif à la manière de procéder de ce tuto. A la base, je l'ai suivi, mais Android-SDK à mis 3 plombes à télécharger des composants, etc... et j'ai pas trouvé ça pratique. Du coup j'ai simplement utilisé WinSCP sur mon pc pour attaquer le tel. Ca revient au même, c'est juste une question de préférence. Ci dessous un ptit tuto rapide (plagiat de ce tuto et d'autres, bien sûr^^ c'est juste une synthèse) : Sur le téléphone, installer SSHDROID Sur le Pc, installer WinSCP Connecter le téléphone au Wifi, puis lancer SSHDROID Lui donner les droits SUPER UTILISATEUR Lancer WinSCP, le login et le mdp par défaut sont : Login : root mdp : admin Sur WinScp, Aller à la racine, et vérifier qu'il y a bien les répertoires /mnt/emmc et /mnt/sdcard/external_sd il devrait y avoir aussi un répertoire "data" à la racine. Dans data, créer "opt" Dans OPT, créer un fichier, qu'on va appeler par exemple "autostart.sh" Dans ce fichier, copier les 3 lignes suivantes : #!/system/bin/sh # Pousse un lien vers external_sd pour les apllications ayant besoin de ce chemin mount -o bind /mnt/emmc /mnt/sdcard/external_sd Une fois sauvé, on va modifier les droits de ce fichier. Toujours dans WinSCP, faites un clic droit sur le fichier, Propriétés, et vérifiez que Root soit bien propriétaire. Donner aussi les droits 775 (avec les cases à cocher en dessous). Sur lé téléphone, installez Script Manager (gratuit). Au cas o vous ne le trouviez pas, voici le lien : http://market.android.com/details?id=os.tools.scriptmanager Une fois Script Manager installé, parcourez l'arborescence afin de vous retrouver dans le répertoire /data/opt. Vous devriez voir apparaître votre autostart.sh. "Cliquez" dessus, dans la fenêtre qui apparaît, sélectionnez Su, sélectionnez Boot, et si ce n'est pas fait sélectionnez Is script. Pour terminer, on fait Run puis Save (Perso j'ai pas Save, mais ça a marché quand même). Si tout s'est bien déroulé le point de montage est opérationnel et aux redémarrages également. 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
froggyone Posté(e) 11 juillet 2012 Share Posté(e) 11 juillet 2012 (modifié) "Sur WinScp, Aller à la racine, et vérifier qu'il y a bien les répertoires /mnt/emmc" Si pas de repertoire emmc, que faire ? le créer ? avec quels droits... merci de votre future aide..pardon pour la nooberie :( Modifié 11 juillet 2012 par froggyone Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bass000 Posté(e) 25 juillet 2012 Share Posté(e) 25 juillet 2012 Merci à zeddo méthode simple et efficace! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.