1 votes

Que sont les fichiers .patch dans Android

J'ai téléchargé les sources de PDroid sur le forum XNA et j'ai trouvé 3 fichiers avec l'extension .patch. Quelqu'un pourrait-il m'expliquer à quoi servent les fichiers avec cette extension ? Ignorez le fait qu'ils proviennent de la source PDroid car je pense que d'autres projets les utilisent. Comme je peux le voir ces fichiers peuvent être ouverts dans un éditeur de texte et il y a quelques lignes de script dedans mais je ne sais pas à quoi ils servent ?

2voto

Andy Brudtkuhl Points 1714

Les fichiers correctifs ne concernent pas spécifiquement Android. Ils représentent simplement une différence entre deux fichiers texte (ou deux dossiers de fichiers texte). Ils peuvent être produits par la fonction diff ou par un système de contrôle de version, et la même modification peut être appliquée aux fichiers par l'outil patch ou par un système de contrôle de version.

Les fichiers de correction sont souvent utilisés par les programmeurs pour communiquer une modification qui doit être appliquée au code source.

0 votes

Merci pour vos explications. Il s'agit donc essentiellement de fichiers de différences entre l'ancienne et la nouvelle version du code source. Par exemple, je télécharge un code source à partir du dépôt git et j'exécute ensuite l'outil de correction sur ces dossiers avec le fichier de correction comme "argument", si j'ai bien compris ? Pourquoi ne pas simplement faire une synchronisation pour extraire les changements du dépôt central ?

0 votes

Dans ce cas : parce que ce n'est pas possible de cette manière. Il faudrait le faire pour chaque ROM existante. PDroid install implique Parcheando des parties de la ROM installée sur l'appareil cible, voir leurs instructions d'installation (et la section réponse de RossC ).

2voto

RossC Points 5100

De la Fil de discussion XDA pour PDroid Ceux-ci sont si vous construisez PDroid à partir de la source.

EDIT : Les détails de ce qu'est un fichier .patch sont dans le post de Dan.

Si vous construisez la source, vous devez suivre les étapes suivantes :

Télécharger : PDroid 2.3.4 source (v1.27) (oui il est basé sur la 2.3.4 mais fonctionne aussi avec la 2.3.3 et la 2.3.5 sans problème)

Récupérer la source 2.3.4 de l'AOSP (branche : Android-2.3.4_r1)

Extraire les correctifs de l'archive ci-dessus vers l'arbre racine 2.3.4

Cours :

Code :

patch -p1 -i build.patch
patch -p1 -i frameworks.patch
patch -p1 -i libcore.patch

Construire à partir de la source :

Faire une construction propre

Appliquez les correctifs (voir ci-dessus)

Cours :

Code :

source build/envsetup.sh
make update-api
mmm frameworks/base
mmm frameworks/base/services/java
mmm libcore

1 votes

Merci pour cet exemple détaillé. Le cœur de la question n'était pas vraiment sur PDroid mais sur le format lui-même, mais ces exemples que vous avez écrits sont très utiles pour comprendre. Donc ces fichiers ne sont rien d'autre que les différences entre la source originale d'Android AOSP et les fichiers modifiés que l'auteur de PDroid a utilisé pour construire son application ? Donc au lieu de télécharger un nouveau dépôt de 9GB, on peut simplement exécuter le patch sur le dépôt existant et obtenir les changements que l'auteur a fait ?

0 votes

C'est exactement cela. Le téléchargement devient donc beaucoup plus petit. C'est aussi l'une des raisons pour lesquelles .patch sont utilisés en général : économie de bande passante et de stockage. Et pour les développeurs, il est plus facile de voir ce qui a été modifié exactement, et comment.

0 votes

Oui, c'est pourquoi j'ai mentionné la réponse de Dan dans la mienne, inutile de la reproduire. Vous avez maintenant le "quoi" et le "comment" !

0voto

Benny Points 125

Utilisation de git am :

allez dans le répertoire du référentiel et exécutez la commande :

git am <path-to-file.patch>

Il trouvera le bon fichier dans le répertoire du référentiel et exécutera les modifications.

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