FlyinGrub Posté(e) 23 août 2013 Share Posté(e) 23 août 2013 (modifié) Modifier un Updater-script Voici un petit guide que je créer pour vous aider a comprendre le fonctionnement du recovery et comment lui faire faire tout ce que l'on veut. :) Qu'est ce que l'updater-script ?L'updater-script est un fichier donnant l'ordre au recovery d'effectuer telles ou telles actions, Il possèdent une syntaxe particulière et des commandes spécifiques que je vais décrire le long de ce guide :). Il se trouve dans chaque .zip que vous flasher avec votre recovery dans /META-INF/com/google/android/ . Qu'est ce que l'update-binary ?L'update-binary est indispensable au recovery pour traduire le langage "humain", en langage lisible par une machine (le recovery) pour exécuter l'updater-script. Requis : - Notepad ++, pour éditer l'udater- script Paramétrage de Notepad ++- Aller dans paramètres>préférences - Changer le format de saut de ligne pour UNIX - Changer la tabulation par 4 espaces Syntaxe : * Vous pouvez commenter une ligne (qui ne sera donc pas pris en compte par le recovery) en précédant cette ligne par un # * Toutes les commandes de l'updater-script doivent se terminer par un ; * Vous devez toujours laisser une ligne vide à la fin de votre updater-script * la comparaison de deux arguments ce fait via == (egal) ou != ( différent) * Les opérateurs logiques sont || (ou) ; && (et) ; ! (non) * Les conditions s'effectue via les mots : if, then, else, endif Commandes les plus courantes : assert(); Annule l'installation si la conditions qui suis est fausse. ui_print("Format Completed"); Ecrit dans le recovery le message entre guillemets (obligatoire). mount("ext4", "EMMC", "/dev/block/mmcblk0p35", "/data"); Monte une partition : "ext4" type de formatage ; "EMMC" type de la partition utilisé par le système ; "/dev/block/mmcblk0p35" chemin de la partition (il change en fonction du téléphone) ; "/data" point de montage. format("ext4", "EMMC", "/dev/block/mmcblk0p33", "/system"); Formate une partition : "ext4" type de formatage ; "EMMC" type de la partition utilisé par le système ; "/dev/block/mmcblk0p33" chemin de la partition (il change en fonction du téléphone) ; "/system" point de montage. package_extract_dir("system", "/system"); Extrait le dossier "system" à la racine du .zip vers la partition (précédemment monté via la commande mount() ;) "/system". package_extract_file("autoroot.sh", "/tmp/autoroot.sh"); Extrait le fichier "autoroot.sh" vers "/tmp/autoroot.sh" (tmp doit ici aussi être précédemment monté. symlink("mksh", "/system/bin/sh"); Cette fonction créer un symlink, à la place de faire un copier coller d'un fichier à deux endroit, cette commande permet de créer un raccourci vers ce fichier dans l'un des deux dossiers.Cette ligne va donc créer un raccourci "mksh" à la racine du système qui renvoiera vers le fichier se trouvant dans /system/bin/sh.Lorsqu'une app demandera d'effectuer "mksh" le système renverra vers ce fichier. set_perm(0, 3003, 06755, "/system/bin/ip"); Cette commande donne la permission 06755 au fichier "/system/bin/ip" pour l'utilisateur 0 et le groupe 3003plus d'info sur les permissions linux ici. set_perm_recursive(0, 0, 0755, 0644, "/system"); Idem que celle du dessus à pars qu'elle appliqueras cette permissions a tous les fichiers et sous-dossiers présents dans ce répertoire. La 3eme variable décrit la permissions pour le dossier /system et la 4eme pour les sous-dossiers. run_program("/tmp/autoroot.sh"); Permet de lancer un scipt .sh précédemment extrait via la commande package_extract_file/dir(). unmount("/system"); Permet de démonter la partition /system précédemment monter. il est indispensable de démonter toutes les partitions avant la fin l'updater-script. Modifié 13 octobre 2013 par FlyinGrub 3 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
FlyinGrub Posté(e) 23 août 2013 Auteur Share Posté(e) 23 août 2013 (modifié) assert(getprop("ro.product.device") == "ST15i" || getprop("ro.build.product") == "ST15i"); Si vous avez bien suivis vous etes donc cabable de me décrire la fonction de cette commande, sachant que getprop() récupère la valeur de la variable entre guillemets. Elle permet donc de vérifier si la variable "ro.product.device" ou "ro.build.product" vaut "ST15i", l'utilisation du "ou" permet de dire, donc le assert pour que le assert annule linstallation il faut que les deux soit fausses en même temps. Modifié 1 septembre 2013 par FlyinGrub Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
FlyinGrub Posté(e) 1 septembre 2013 Auteur Share Posté(e) 1 septembre 2013 (modifié) Guide terminé également pour les commandes simples. B) Je ferais plus d'exemple de commande complexe plus tard. Modifié 1 septembre 2013 par FlyinGrub Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
evowizz Posté(e) 1 septembre 2013 Share Posté(e) 1 septembre 2013 Salut, quand on commente une ligne, il faut aussi mettre le ; ? --> Sent from my LG-P500 with Tapatalk 4 <-- ________________________________ --> Envoyé depuis mon LG-P500 avec Tapatalk 4 <-- Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
FlyinGrub Posté(e) 1 septembre 2013 Auteur Share Posté(e) 1 septembre 2013 (modifié) non :), la ligne est ignorée donc cela ne sert à rien Modifié 1 septembre 2013 par FlyinGrub Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
evowizz Posté(e) 1 septembre 2013 Share Posté(e) 1 septembre 2013 Ah, alors c'est pas ce a quoi je pensé, tempos, merci. --> Sent from my LG-P500 with Tapatalk 4 <-- ________________________________ --> Envoyé depuis mon LG-P500 avec Tapatalk 4 <-- 1 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.