5 votes

Qu'est-ce que l'outil applypatch et comment l'utiliser ?

Je suis récemment tombé sur l'outil applypatch, mais je n'ai pas trouvé de documentation en ligne à son sujet. Voici le résultat de l'utilisation (après avoir tapé adb shell )

shell@android:/ $ applypatch --help                                            
usage: applypatch [-b <bonus-file>] <src-file> <tgt-file> <tgt-sha1> <tgt-size> [<src-sha1>:<patch> ...]
   or  applypatch -c <file> [<sha1> ...]
   or  applypatch -s <bytes>
   or  applypatch -l

Filenames may be of the form
  MTD:<partition>:<len_1>:<sha1_1>:<len_2>:<sha1_2>:...
to specify reading from or writing to an MTD partition.

Que signifient les options de la ligne de commande ? Qu'est-ce que MTD ? À quoi servent tous les hachages sha1 ?

En outre, quelqu'un ayant la réputation d'ajouter un tag applypatch, ou peut-être un tag tools ? Quelque chose de plus descriptif que ce que j'ai mis.

2voto

Milner Points 533

diff y patch sont des commandes Unix/Linux utilisées pour vérifier facilement les différences, envoyer des mises à jour à des fichiers énormes en n'envoyant que les différences, etc. (voir Wikipedia ). Ils sont principalement utilisés dans le cadre du développement (pour mettre à jour le code source), mais peuvent également servir à des fins pratiques dans des environnements autres que le développement.

applypatch est l'un de ces outils de correction sur Android, utilisé notamment pour les mises à jour mineures (OTA et autres). Il est donc fort probable que l'"utilisateur final normal" n'ait pas à s'en servir directement.

2voto

Boulash Points 1178

La commande applypatch est en effet utilisée pour les OTA Parcheando. Par exemple, j'ai le fichier update.zip fourni pour ma tablette VZW SCH-I915... dans mon cas, je ne veux pas permettre à cette mise à jour OTA de se produire, donc je souhaite patcher /system/build.prop pour tromper le dispositif en pensant qu'elle a déjà été faite. Dans le fichier update.zip, il y a un fichier 'updater-script' qui détaille les correctifs. Celui que je cherchais était :

apply_patch("/system/build.prop", "-", db0889f98b62e625283e5273bf35d790532b10bd, 5934, 7a52fd5ec0d5afcbaf159c330374dfb0c5cbc159, package_extract_file("patch/system/build.prop.p")) ;

J'ai extrait le fichier patch approprié sur ma carte SD. Ensuite, la syntaxe pour effectuer cette action sur une copie secondaire de build.prop que j'avais faite (pour pouvoir vérifier la sortie avant de la copier dans /system) est modifiée ainsi :

/system/bin/applypatch "/mnt/sdcard/build.prop" "-" "db0889f98b62e625283e5273bf35d790532b10bd" "5934" 7a52fd5ec0d5afcbaf159c330374dfb0c5cbc159:/mnt/sdcard/build.prop.p

...ce qui a créé le même fichier build.prop que celui que j'aurais eu si j'avais autorisé l'OTA à se poursuivre. J'espère que cela vous aidera.

0voto

Edward Falk Points 101

Applypatch est un utilitaire qui applique un correctif binaire à un fichier. Par exemple, sur certains systèmes, la partition de récupération est créée en appliquant un correctif binaire à la partition de démarrage (les deux sont presque identiques et il est plus facile de conditionner un correctif que le binaire entier lors d'une mise à niveau).

L'utilisation typique est d'exécuter applypatch pendant le démarrage. Applypatch est exécuté avec l'option -c (check) spécifiant la partition de stockage, la taille et le hachage. Ces arguments déterminent si le patch a déjà été appliqué (si le hachage correspond, alors il a été appliqué). no a été appliquée, alors applybatch -b est exécuté pour appliquer réellement le patch.

Les options sont :

-c fichier [ sha ...]

Confirmez que le fichier existe et qu'il correspond à au moins un des SHA. Le SHA peut également être encodé en tant que partie du nom du fichier ; utile lorsque le nom du fichier spécifie une partition. Voir le code source pour une explication. Si un nom de fichier commence par MTD : ou EMMC :, alors il se réfère à une partition au lieu d'un fichier normal.

[-b fichier bonus ] src cible cible-sha1 taille cible src-sha1:patchfile

Applique le correctif dans Fichier de correction dans le fichier src en créant cible . cible-sha1 y taille cible sont utilisés pour confirmer que le patch a réussi. src y cible peuvent être des partitions de stockage, par exemple de démarrage et de récupération. Si -b est présent, il spécifie un fichier zip avec du matériel supplémentaire.

-s octets

Sortez avec le code de retour 0 s'il y a au moins octets l'espace disponible dans le cache.

-l

Afficher la licence BSD et quitter

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X