1 votos

¿Qué son los archivos .patch en Android?

Descargué la fuente de PDroid del foro de XNA y encontré 3 archivos en ella con la extensión .patch. ¿Podría alguien por favor explicarme para qué sirven los archivos con esta extensión? Ignore el hecho de que son de la fuente de PDroid ya que creo que hay otros proyectos que los utilizan. Por lo que puedo ver, estos archivos se pueden abrir en un editor de texto y tienen algunas líneas de script en ellos, pero ¿para qué son?

2voto

Andy Brudtkuhl Puntos 1714

Los archivos de parche no tienen relación específica con Android. Simplemente representan una diferencia entre dos archivos de texto (o dos carpetas de archivos de texto). Pueden ser producidos por la herramienta diff, o por un sistema de control de versiones, y el mismo cambio puede ser aplicado a archivos por la herramienta patch, o por un sistema de control de versiones.

Los archivos de parche son frecuentemente usados por programadores para comunicar un cambio que debe ser aplicado al código fuente.

0 votos

Gracias por tu explicación. Entonces, básicamente, ¿estos son archivos de diferencias entre la versión antigua y la nueva del código fuente? Por ejemplo, descargo una fuente de un repositorio de git y luego ejecuto la herramienta de parches en esas carpetas con el archivo de parche como "argumento", ¿es así como lo entendí? ¿Por qué no simplemente sincronizar para extraer cambios del repositorio central?

0 votos

En este caso: porque no es posible de esa manera. Significaría hacerlo para cada y cada una de las ROM existentes. La instalación de PDroid implica parchear partes de la ROM instalada en el dispositivo objetivo, consulte sus instrucciones de instalación (y la respuesta de RossC).

2voto

RossC Puntos 3725

Desde el hilo de XDA para PDroid estos son si estás construyendo PDroid desde el código fuente.

EDITAR: Los detalles de lo que es un archivo .patch están en la publicación de Dan.

Si estás construyendo el código fuente, debes seguir los siguientes pasos:

Descargar: origen de PDroid 2.3.4 (v1.27) (sí, está basado en 2.3.4 pero también funciona perfectamente con 2.3.3 y 2.3.5)

Obtener el origen 2.3.4 de AOSP (rama: android-2.3.4_r1)

Extraer los parches del archivo anterior en la root del árbol 2.3.4

Ejecutar:

Código:

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

Construyendo desde el origen:

Hacer una compilación limpia

Aplicar los parches (ver arriba)

Ejecutar:

Código:

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

1 votos

Gracias por el ejemplo detallado. El núcleo de la pregunta realmente no era sobre PDroid sino sobre el formato en sí, pero estos ejemplos que escribiste son bastante útiles para entenderlo. ¿Entonces esos archivos no son más que las diferencias entre la fuente original de Android AOSP y los archivos modificados que el autor de PDroid utilizó para construir su aplicación? ¿Así que en lugar de descargar un nuevo repositorio de 9GB, uno solo puede ejecutar el parche en el existente y obtener los cambios que hizo el autor?

0 votos

Exactamente eso. Así que la descarga se vuelve mucho más pequeña. Esa también es una de las razones por las que se utilizan los archivos .patch en general: para ahorrar ancho de banda y almacenamiento. Y para los desarrolladores, hacer que sea más fácil ver qué fue exactamente lo que se cambió, y cómo.

0 votos

Sí, por eso mencioné la respuesta de Dan en la mía, no tiene sentido replicarla. ¡Ahora tienes el 'qué' y el 'cómo'!

0voto

Wes Murray Puntos 28

Usando git am:

ve al directorio del repositorio y ejecuta el comando:

git am 

Encontrará el archivo correcto en el directorio del repositorio y ejecutará los cambios.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X