Aller au contenu

Création fichier à flasher


Midas2

Recommended Posts

Bonjour à tous

J'utilise une ROM AOSP Novastock 1.4

Or le concepteur n'a pas installé LGLiveWallpapersPicker. J'en ai besoin pour pouvoir utiliser KLWP.

Je mets bien ces fichiers à la main, mais si quelqu'un pouvait me faire un fichier zip à flasher en Recovery, cela serait bien plus pratique.

Voilà les fichiers à mettre dans le zip à Flasher : http://uploaded.net/file/qnchpa24

Je vous remercie d'avance pour votre aide

Amitiés et bonnes fêtes de fin d'année

Lien vers le commentaire
Partager sur d’autres sites

Bien allez c'est parti pour la petite explication concernant la création d'un zip pour flasher un dossier ou même juste un fichier depuis le recovery.

 

Alors je précise bien que là sont décrites uniquement les bases de manière simplifiée car il y a une multitudes d'autres choses qui peuvent être faites.

 

Commençons par le tout début : 

1 - D'abord il y a eu les dinosaures, puis ensuite les hommes sont apparus, suivi d'une catastrophe naturelle "ma belle mère"  :o :P

 

2 -Un fichier zip à flasher, lorsqu'on le décompresse ou l'explore, on voit qu'il est constitué à sa racine

 

   * d'un dossier META-INF qui contient le nécessaire pour effectuer les commandes de flashage

   * de fichiers ou/et dossiers qui seront eux installés durant le flash

 

830297tutoflashexplorerlezip.png

ici dans mon exemple  le répertoire Dossier_exemple" et l'application "fichier_exemple.apk" sont destinés à être flashés

 

3 - L'opération d'installation se réalise grâce à 2 fichiers qu se trouvent dans META-INF/com/google/android/

    * updater-script qui contient les commandes que vous entrerez afin d'indiquer la destination mais aussi donner les bonnes permissions

 

    * update-binary qui lui va traduire au recovery les commandes que vous avez entré dans updater-script

Depuis ce dernier vous pouvez par exemple lui demander d'installer un dossier ou/et fichier mais aussi tout simplement de supprimer un élément de la rom.

 

Donc le seul fichier auquel vous toucherez c'est updater-script

190498tutoflashfichiers.png

 

4 - Les outils nécessaires

            * un gestionnaire de fichiers compressés Zip avec une grande préférence pour 7-zip

 

            * un éditeur : Notepad++

 

            * Le Fichier zip exemple que j'ai confectionné pour ce tuto. Il contient déjà les 2 principaux fichiers cités plus haut c'est à dire updater-script et update-binary.  Bien entendu ce fichier zip ne doit en aucun cas être flashé tel qu'il est. Vous devez l'éditer en ajoutant les fichiers ou dossiers que vous souhaitez installer, ainsi que updater-script modifié par vos soins.

 

 

5 - Les petites règles à suivre :

 

          * Pour s'y retrouver plus facilement au départ, mettez les dossiers et fichiers à flasher à la racine c'est à dire juste à coté du dossier META-INF. Il est plus facile ensuite d'indiquer le chemin du dossier ou fichier source dans la commande de flash.

Ensuite lorsque vous maîtriserez un peu plus vous pourrez, si vous le souhaitez,  aménager ça comme bon vous semble. mais là on reste sur du basique.

 

          * Lorsque vous aurez édité updater-script et mis les fichiers/Dossiers nécessaires à flasher vous devrez ensuite créer le fichier Zip. Mais pour cela il vous faut le faire en choisissant uniquement le dossier META-INF et les fichiers/dossiers à flasher . Je m'explique, si par exemple vous avez déposé le tout dans un dossier pour ne pas que ce soit mélangé avec le reste de vos docs ou autres, vous ne devez pas compresser ce dossier lui même mais uniquement son contenu.

 

6 - Les commandes

ici je vais décrire uniquement celles de bases. Vous pensez bien qu'il en existe une multitude d'autres. Mais là on reste uniquement sur le thème de flash de fichiers/dossiers ou leur suppression dans le système afin de ne pas trop se disperser.

 

        * ui_print(" ");

Elle écrit sr l'écran le message que vous indiquerez entre les guillemets " "

Ne mettez pas de caractères avec accents dans ces messages (é, è, à ...) . Dans mon fichier exemple il y en a mais c'est juste pour plus de compréhension.

 

exemple :

ui_print(" Bla bla bla bla bla ");

 

       * mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

 

Pour installer ou supprimer quelque chose dans le dossier /system vous devez d'abord le monter en lecture/écriture depuis le recovery.

Personnellement j'ai pris l'habitude de d'abord le démonter puis ensuite le monter car @@6riloo et moi nous avons eu quelques soucis lors de nos premières versions de la SExY Rom que nous avons réglé tout simplement en démontant puis remontant le /system.

 

Donc cela ce traduit de la sorte:

     unmount("/system");

     mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

 

     * unmount("/system");   

 

Vous l'aurez compris, cette commande sert à démonter le /system et sera à mettre d'abord avant le montage de ce dernier (là c'est juste mon conseil) et à la fin de l'updater-script pour clore les commandes effectuées.

 

     * delete(" ");

Avec cette commande vous pouvez supprimer un fichier précis dans un endroit précis

Entre les guillemets " " vous entrerez le chemin complet menant à ce fichier.

Exemple:

ui_print(" ");
ui_print(" Suppression du fichier Hosts ");

ui_print(" ");

ui_print("   Montage du systeme   ");

ui_print(" ");

  unmount("/system");

  mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

ui_print(" ");

ui_print(" commande de suppression ");

  delete("/system/etc/hosts");

ui_print(" ");

ui_print(" je demonte le systeme ");

  unmount("/system");

ui_print(" ");

ui_print(" Fini ");

 

     * delete_recursive(" ");

Ici c'est carrément un dossier et tout son contenu qui est supprimé.

Les règles sont les mêmes que la commande précédente, c'est à dire entrer le chemin qui mène à ce dossier entre les " "

Exemple:

ui_print(" ");
ui_print(" Suppression de Google Chrome ");

ui_print(" ");

ui_print("   Montage du systeme   ");

ui_print(" ");

  unmount("/system");

  mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

ui_print(" ");

ui_print(" commande de suppression du dossier et tout son contenu ");

  delete_recursive("/system/app/ChromeWithBrowser ");

ui_print(" ");

ui_print(" je demonte le systeme ");

  unmount("/system");

ui_print(" ");

ui_print(" Fini ");

 

    * package_extract_file(" ", " ");

       set_perm(0, 0, 0644, " ");

 

2 commandes que je qualifie d'indissociables.

la première sert à extraire un fichier à l'endroit voulu. Dans les 1er " " vous indiquerez le fichier source c'est à dire celui qui est à la racine de votre zip. Dans le 2ème " "  ce sera l'endroit où il devra être placé dans le système.

 

La commande suivante donnera les permissions adéquates. Ici celles indiquées sont les plus courantes utilisées dans le dossier /system. Bien entendu il en existe d'autres mais plus rarement sollicitées.

 

Exemple:

ui_print(" ");
ui_print(" Flash des emoticones MM 6.0.1 ");

ui_print(" ");

ui_print("   Montage du systeme   ");

ui_print(" ");

  unmount("/system");

  mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

ui_print(" ");

ui_print(" commandes de extraction et permissions ");

  package_extract_file("NotoColorEmoji.ttf", "system/fonts/NotoColorEmoji.ttf");
  set_perm(0, 0, 0644, "system/fonts/NotoColorEmoji.ttf");

ui_print(" ");

ui_print(" je demonte le systeme ");

  unmount("/system");

ui_print(" ");

ui_print(" Fini ");

 

   * package_extract_dir(" ", " ");

     set_perm_recursive(0, 0, 0755, 0644, " ");

 

Même chose que précédemment mais ici il s'agit d'un dossier et tout son contenu

Une petite différence concernant les permissions car celles données aux dossiers et sous-dossiers sont différentes de celles des fichiers qu'il contiennent. 0755 est destiné aux dossiers et sous-dossiers tandis que 0644 cible les fichiers.

 

Autre précisions:

  - Si le dossier à flasher n'existe pas déjà on peut uniquement se contenter des 2 commandes.

  - Par contre si le dossier existe dans le système et que vous souhaitez flasher une version différente de l'application déjà en place par dessus, il peut être judicieux de supprimer celle déjà en place auparavant avec un delete_recursive(" ");

Pourquoi ? Car si l'apk déjà présente à un nom différent ou qu'elle dispose de lib différents dans ses sous-dossiers, il pourrait avoir un effet doublon d'apk ou d’interactions de libs entre eux. Donc perso, j'efface toujours dans un premier temps le dossier cible pour remettre le nouveau à la place.

 

Exemple:

ui_print(" ");
ui_print(" Flash nouvelle version de Horloge ");

ui_print(" ");

ui_print("   Montage du systeme   ");

ui_print(" ");

  unmount("/system");

  mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

ui_print(" ");

ui_print(" commandes de suppression puis extraction et permissions ");

     delete_recursive("/system/priv-app/LGAlarmClock");
     package_extract_dir("LGAlarmClock", "system/priv-app/LGAlarmClock");
     set_perm_recursive(0, 0, 0755, 0644, "/system/priv-app/LGAlarmClock")
;

ui_print(" ");

ui_print(" je demonte le systeme ");

  unmount("/system");

ui_print(" ");

ui_print(" Fini ");

 

 

Alors tout ça n'est qu'une toute petite partie de ce qu'on peut faire bien entendu. J'ai voulu cibler uniquement l'installation, suppression de fichiers et dossiers dans le /system en donnant des exemples concrets. Si je devais décrire tout ce qu'il est possible de faire, il me faudrait un site entier lol.

Peut être que certains seront en désaccord avec une ou plusieurs descriptions que j'ai pu donner ici mais en tout cas c'est ainsi que je procède et  cela sans problème.

 

7 - La compression en Zip

 

Une fois que votre udapter-script est édité et que les fichiers et dossiers sources sont placés à coté du dossier META-INF, il ne vous reste plus qu'à sélectionner le tout et le compresser avec 7-zip dans le format ZIP.

Ensuite il ne vous reste plus qu'à copier le fichier dans votre téléphone et le flasher.

 

8 - Les erreurs lors du flash

 

Dans 95% des cas il s'agit d'une erreur de syntaxe . Un ; ou  une ) par exemple qui manque et c'est le message d'erreur et le flash ne s'exécute pas. Lorsqu'il s'agit d'un flash tout simple qui demande que quelques lignes de commande, on retrouve assez vite la cause. Mais par contre s'il s'agit de quelque chose de plus complexe, une rom par exemple, là ça devient de la torture à trouver lol.

Modifié par monpseudo
  • Like 2
Lien vers le commentaire
Partager sur d’autres sites

Salut les copains,

Un petit complément (copier-coller d'un tuto que j'avais fait, qui concerne l'updater-script):

Ce fichier est modifiable par le biais d'un éditeur de texte, et je conseille à ceux qui travaillent sur windows, d'utiliser le logiciel gratuit notepad++. En dehors de la rigueur syntaxique qu'il faudra respecter, une importance particulière sera à porter sur le formatage de ce fichier pour ce qui concerne les marques de saut de ligne. En effet ces dernières devront être au format UNIX, et notepad++ propose, dans son menu édition, une option permettant la conversion de saut de ligne au format UNIX. N'oubliez pas d’effectuer cette conversion sur ce fichier. On peut voir ces symboles de fin de ligne dans notepad++, grâce au menu affichage, symboles spéciaux, afficher les symboles de fin de lignes (le symbole LF correspond à UNIX, ce que nous souhaitons obtenir).

 

Bonnes fêtes de fin d'année à toutes et à tous.

  • Like 2
Lien vers le commentaire
Partager sur d’autres sites

Merci pour ces infos, 6riloo

Si on ne possède qu'un MAC, quel logiciel conseilles-tu ?

Aucune idée, je n'utilise pas de mac, mais tout bon éditeur de texte possède ces fonctionnalités (afficher les marques de saut de lignes et pouvoir les convertir si besoin)

  • Like 1
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...