Crackmort Posté(e) 28 octobre 2012 Share Posté(e) 28 octobre 2012 (modifié) Création de fichier zip pour le ClockWorkMod Recovery Niveau: Expérimenté de la bidouille Uniquement pour utilisateurs avancés by Crackmort Bonjour/Bonsoir à tous, je viens aujourd'hui vous montrer comment créer un zip pour le CWM et ainsi vous permettre de flasher tout et n'importe quoi sur votre Nexus (valable pour tout smartphone avec le CWM) ;) J'ai appris à faire cela sur le tas à force de bidouiller donc je vais vous décrire la technique que j'utilise personnellement, ce n'est peut-être pas la meilleure mais elle ne m'as jamais fait défaut jusqu'ici, j'espère que ce sera le cas pour vous également ! ==> Un zip, c'est quoi et comment ça marche? Un zip est un fichier compressé qui permet de modifier des fichiers système via le recovery. Cela permet de modifier le système sans que celui ci soit lancer afin d'éviter les plantage pendant les manipulations. Celui ci est composé d'un script que le recovery exécutera et de fichiers système qui serviront à remplacer les fichiers actuels. Un zip se décompose de cette façon: - Un dossier "META-INF" qui va contenir le script et les fichiers d'authentification aussi appelés "signature". Remarque: Ce dossier peut aussi être visible dans les apk. - Un dossier "system" qui va contenir les nouveaux fichiers systèmes (dans le cas où on modifie des fichiers dans le dossier système, d'autres dossiers peuvent apparaître dans certains zip tout dépend de ce que l'on doit modifier) ==> Et comment on fait alors? Prérequis: - Un PC sous Windows (Je ne sais pas faire sur Linux ou MacOS) - WinRAR (ou équivalent: WinZip peut aussi faire l'affaire) - Un zip qui servira de base: Télécharger Remarque: Je fais tout sans jamais extraire le zip (et ainsi éviter d'avoir à le signer à nouveau), c'est là que WinRAR est utile. 1) Télécharger le zip que je vous est préparé. 2) Avec WinRAR, ouvrez le sans extraction. 3) Aller dans le dossier "META-INF", puis "com", "google", "android" et ouvrir le fichier "updater-script" avec le bloc note (Ou Notepad++). Vous obtenez ce script: ui_print("Nomduzip"); ui_print("By VotreNom."); ui_print("Mounting system..."); show_progress(1, 15); run_program("/sbin/busybox", "mount", "/system"); ui_print("File Replacement"); show_progress(1, 50); package_extract_dir("system", "/system/chemin dossier"); ui_print("Setting permissions for the file"); show_progress(1, 75); set_perm(0, 0, 0644, "/system/fichier"); run_program("/sbin/busybox", "umount", "/system"); ui_print("Installation is complete!") Description des commandes les plus utilisées: - "ui_print" permet d'afficher le message entre parenthèse. /!\ Chaque ui_print fait passer à la ligne suivante. - "show_progress" permet d'afficher une barre de progression entre chaque étape du script. - "run_program" lance une commande busybox. - "package_extract_dir" permet d'extraire un fichier du zip pour le mettre à l'emplacement désigné dans la commande qui suit. Ce fichier remplacera automatiquement l'autre du même noms. - "set_perm" défini les permissions à mettre sur le fichier désigné dans la commande qui suit. - "delete" permet de supprimer le fichier désigné entre parenthèse. exemple: delete("/system/fichier") Le script fourni dans le zip que j'ai fait est le plus utilisé, à vous de le modifier en fonction de ce que vous avez à faire. Il suffit de mettre les bon chemins de fichiers là où il faut. /!\ Pour la suite, je vais considérer que je dois flasher un thème que je me suis concocter en modifiant le framework-res.apk (chemin: system/framework) et SystemUI.apk (system/app). 1) Dans le zip, créer dans le dossier "system", un dossier "framework" et y placer le fichier "framework-res.apk" modifié puis toujours dans "system", créer un dossier "app" et y mettre le "SystemUI.apk" modifié. 2) Retour à la racine du zip et aller dans le dossier "META-INF", puis "com", "google", "android" et ouvrir le fichier "updater-script" avec le bloc note (Ou Notepad++). 3) Modifier le script comme suit: ui_print("Theme"); ui_print("By Crackmort."); ui_print("Mounting system..."); show_progress(1, 15); run_program("/sbin/busybox", "mount", "/system"); ui_print("File Replacement"); show_progress(1, 50); package_extract_dir("system/", "/system/"); ui_print("Setting permissions for the file"); show_progress(1, 75); set_perm(0, 0, 0644, "/system/framework/framework-res.apk"); set_perm(0, 0, 0644, "/system/app/systemUI.apk"); run_program("/sbin/busybox", "umount", "/system"); ui_print("Installation is complete!") Remarque: Pour la ligne package_extract_dir("system/", "/system/"); Le script va automatiquement suivre le chemin du zip pour localiser les fichiers à remplacer. Il est également possible de mettre le fichier modifié directement dans le dossier "system" du zip mais la ligne de commande devra ressemblé à ça : package_extract_dir("system/" , "/system/framework"); dans le cas du framework-res.apk. Chacun sa méthode. Et voilà, vous avez créer votre zip pour flasher ce que vous voulez ;) ==> Comment signer un zip? Je ne vais pas refaire un tutoriel déjà existant et assez complet sur Frandroid donc je met directement le lien: http://forum.frandro...ne-archive-zip/ (Merci à Azathot) Cas particuliers: Certains zip inclus d'autres script que le recovery exécutera comme dans celui du Air Kernel où l'on peux apercevoir un cleaner.sh dont je me pose encore quelques questions sur l'utilité. (suppression des configs d'éventuels anciens kernels pour éviter les bugs? Si quelqu'un peux m'éclairer) ;) Pour ceux que ça intéresse: #!/sbin/sh # clean modules rm -rf /system/modules rm -rf /system/lib/modules # clean boot sound rm -f /system/media/audio/poweron/PowerOn.* rm -f /system/media/audio/poweron/poweron.* # clean CMPlus stuff rm -f /system/etc/cmplus.conf rm -f /system/bin/cmplus rm -f /system/bin/list rm -f /sdcard/cmplus.conf # clean Popcorn stuff rm -f /system/etc/sysctl.conf rm -rf /data/cron # clean LeanKernelTweaks stuff rm -f /system/xbin/installbb rm -f /system/xbin/leantweaks rm -rf /data/leantweaks # clean Trinity stuff rm -f /system/bin/fix_permissions # clean init.d scripts INITD_DIR=/system/etc/init.d # GLaDOS rm -f $INITD_DIR/90logger rm -f $INITD_DIR/99nexusinit rm -f $INITD_DIR/placeholder # Trinity rm -f $INITD_DIR/95dimmers rm -f $INITD_DIR/98tweak rm -f $INITD_DIR/99complete # SG rm -f $INITD_DIR/98_startup_script rm -f $INITD_DIR/99_startup_complete # Air rm -f $INITD_DIR/89airtweaks rm -f $INITD_DIR/98airtweak rm -f $INITD_DIR/98airtweaks rm -f $INITD_DIR/99airtweaks # CMPlus rm -f $INITD_DIR/98cmplus # CM Default rm -f $INITD_DIR/00banner rm -f $INITD_DIR/90userinit # franco rm -f $INITD_DIR/13overclock rm -f $INITD_DIR/00turtle # Popcorn rm -f $INITD_DIR/99sonic # Lean rm -f $INITD_DIR/99leantweaks # Jame Bond rm -f $INITD_DIR/007tweaks # miscellany rm -f $INITD_DIR/99nstools # clean kernel setting app shared_prefs rm -rf /data/data/mobi.cyann.nstools/shared_prefs rm -rf /data/data/aperture.ezekeel.gladoscontrol/shared_prefs rm -rf /data/data/com.derkernel.[color=red][color=red][color=red][color=red]tkt[/color][/color][/color][/color]/shared_prefs rm -rf /data/data/com.franco.kernel/shared_prefs rm -rf /data/data/com.liquid.control/shared_prefs C'est le seul cas où j'ai remarqué une autre utilisation du recovery. Voilà, n'hésitez pas à faire des remarques pour améliorer ce tutoriel: Oubli, explication pas assez approfondie, erreurs, fautes, etc... Modifié 29 octobre 2012 par Crackmort 4 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
IT4ALii3EN Posté(e) 28 octobre 2012 Share Posté(e) 28 octobre 2012 (modifié) Les .sh sont des fichiers que j'utilisais beaucoup sur Galaxy Spica mais aussi NS (moins) Je les incorporait dans la ROM, ou dans des fichier .zip à flasher. Ici, la commande qui revient souvent, c'est le "rm -f" , c'est tout simplement : * "rm" = remote * "-f" = si le fichier qui correspond au chemin indiqué après ce "-f" n'est pas présent, cela évite au recovery d'émettre un message d'erreur. C'est à dire que tu peux, grâce à ce fichier, prévoir certaines choses (anticipation) qui pourrait se passer dans les ROM de certaines personnes après flashage du recovery. C'est un genre de "delete" en bref! Je regarderais ton tuto demain en détails, je n'ai fait que survolé. Sinon +1, ça en aidera plus d'un :) Modifié 28 octobre 2012 par IT4ALii3EN Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Crackmort Posté(e) 28 octobre 2012 Auteur Share Posté(e) 28 octobre 2012 Merci ce que j'avais pas compris, c'est pourquoi faire un script à part :P Mais là ça va: autre type de script, autre commande B) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kuiper Posté(e) 29 octobre 2012 Share Posté(e) 29 octobre 2012 (modifié) Cool, merci, mais tu devrais inclure comment signer ton archive. Si tu bidouille un peu ce type de fichier, je te conseille d'utiliser Notepad++ au lieu du bloc note : http://notepad-plus-plus.org/fr/ Modifié 29 octobre 2012 par Kuiper Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Crackmort Posté(e) 29 octobre 2012 Auteur Share Posté(e) 29 octobre 2012 (modifié) J'utilise justement WinRAR pour ne pas avoir à résigner le ZIP mais je le rajouterais quand j'aurai le temps. Et je testerai Notepad++, la mise en page du bloc note n'est pas des plus intuitive pour ces scripts là ;) EDIT: J'ai trouvé un tuto sur Frandroid pour signer un zip, ça ne sert pas à grand chose de le refaire donc j'ai juste mis le lien. Modifié 29 octobre 2012 par Crackmort Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
IT4ALii3EN Posté(e) 29 octobre 2012 Share Posté(e) 29 octobre 2012 J'allais te renvoyer sur ce topic .. ^^ ! NotePad++ est ce qu'il y a de mieux. J'utilise toujours celui-là. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
yohannyo Posté(e) 13 novembre 2012 Share Posté(e) 13 novembre 2012 Bonjour, Question bête, faut il etre rooté ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Crackmort Posté(e) 13 novembre 2012 Auteur Share Posté(e) 13 novembre 2012 Il suffit d'avoir le CWM, le root est "secondaire" donc non obligatoire. Mais il me semble que l'installation du recovery nécessite le root suivant la méthode d'installation choisie. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
yohannyo Posté(e) 14 novembre 2012 Share Posté(e) 14 novembre 2012 Ok merci, j'ai essayé cette méthode, mais ce n'était pas pour remplacer un fichier dans système, mais dans custpack, aucun message d'erreur dans cwm, par contre le fichier n'a pas été remplacé. Est ce que cela que venir de la signature (car je ne l'ai pas faite) ? Y'a t-il un moyen de vérifié s'il faut la signer ou pas ? Je vais essayer de remplacer un fichier système, ainsi je n'aurais pas énormément de chose a modifier dans le script. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
yohannyo Posté(e) 14 novembre 2012 Share Posté(e) 14 novembre 2012 Donc je viens d'essayer en remplaçant le fichier systemUI.apk qui se trouve dans system/, là pas de problème, le remplacement c'est bien fait. Par contre je n'y arrive pas pour un fichier qui ne se trouve pas dans system mais dans custpack Voici le script : En fait je veux remplacer la police par défaut et mettre à la place la police COMIC (renommé bien sur en roboto) J'y arrive avec root explorer sans problème en les remplaçant, mais je voudrais le faire avec un zip flashable pour en faire profiter tous le monde. Les polices se trouvent dans : custpack\JRD_custres\fonts\ J'ai donc supprimé le dossier system du zip, pour le remplacer par custpack puis JRD_custres\fonts\ et la police.ttf Et voici le script ui_print("Nom du zip"); ui_print("By Crackmort."); ui_print("Mounting system..."); show_progress(1, 15); run_program("/sbin/busybox", "mount", "/custpack"); ui_print("File Replacement"); show_progress(1, 50); package_extract_dir("custpack", "/custpack/"); ui_print("Setting permissions for the file"); show_progress(1, 75); set_perm(0, 0, 0644, "/custpack/JRD_custres/fonts/Roboto-regular.ttf"); run_program("/sbin/busybox", "umount", "/custpack"); ui_print("Installation is complete!") J'ai essayé également en laissant les 2 mêmes lignes, car je ne savais pas s'ils faillaient les changer. run_program("/sbin/busybox", "mount", "/system"); run_program("/sbin/busybox", "umount", "/system"); Si vous avez une solution ? Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Crackmort Posté(e) 16 novembre 2012 Auteur Share Posté(e) 16 novembre 2012 Je n'es pas de dossier custpack moi. Les polices sont dans system/fonts. Le problème viendrait pas de là? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
yohannyo Posté(e) 16 novembre 2012 Share Posté(e) 16 novembre 2012 Non, sur l'alcatel ot 995, il y a un dossier custpack en plus de sytem, certain fichier à modifier se trouve dans custpack et d'autre dans system. Pour le changement de police, c'est dans custpack. J'arrive à le remplacer manuellemnt via root explorer, mais j'aurais voulu creer un zip flashable. De même pour le remplacement des icones alcatel par celle stock google ics. J'ai le même soucis ils se trouvent dans custpack Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Crackmort Posté(e) 20 novembre 2012 Auteur Share Posté(e) 20 novembre 2012 Essaye de mettre le fichier sans dossier dans le ZIP, modifie le script en fonction de cela. Tu peux aussi tester en laissant les mount système en plus des mount custback. Mais c'est bizarre ton histoire... 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.