5 votos

¿Qué es la herramienta "applypatch" y cómo se utiliza?

Recientemente me tropecé con la herramienta "applypatch", pero no pude encontrar ninguna documentación para ella en línea. Aquí está la salida de uso (esto es después de escribir 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.

¿Qué significan las opciones de la línea de mando? ¿Qué es el MTD? ¿Para qué sirven todos los hashes del sha1?

Además, ¿podría alguien con la reputación de añadir una etiqueta de "applypatch", o tal vez una etiqueta de "tools"? Algo más descriptivo que lo que he puesto.

2 votos

Yo diría que se trata más bien de una pregunta orientada al desarrollo. En cuanto a MTD, consulte Wikipedia .

0 votos

Yo no diría que está orientado al desarrollo. Estaba mirando un código que alguien había escrito para ser ejecutado en un dispositivo y vi applypatch y tenía curiosidad por saber cómo funcionaba.

0 votos

Leer las fuentes :-). En realidad, este comando es muy importante si usted sufre a la actualización OTA roto (puede ser debido no hay suficiente espacio) y su proveedor de suministro de actualización OTA sólo incrementales.

2voto

Izzy Puntos 45544

diff y patch son comandos de Unix/Linux que se utilizan para comprobar fácilmente las diferencias, enviar actualizaciones a archivos enormes enviando sólo las diferencias, etc. (ver Wikipedia ). Se utilizan principalmente en el desarrollo (para actualizar el código fuente), pero también pueden servir para fines prácticos en entornos ajenos al desarrollo.

applypatch es una de esas herramientas de parcheo en Android, y se usa por ejemplo para actualizaciones menores (OTA y similares). Por lo tanto, lo más probable es que no esté destinado a que el "usuario final normal" se ocupe directamente de él.

2voto

Jim Lee Puntos 21

El comando "applypatch" se utiliza para OTA Parcheando. Como ejemplo, tengo el update.zip proporcionado para mi tablet VZW SCH-I915... en mi caso, no quiero permitir que esta actualización de OTA ocurra, así que deseo parchear /system/build.prop para engañar al dispositivo y que piense que ya se ha hecho. Dentro del archivo update.zip, hay un archivo 'updater-Parcheando' que detalla los parches. El que yo buscaba era:

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

Extraje el archivo de parche apropiado para mi tarjeta SD. Entonces, la sintaxis para realizar esta acción en una copia secundaria del build.prop que había hecho (para poder comprobar la salida antes de copiar en /system) se altera así:

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

...que creó el mismo archivo build.prop que habría terminado si hubiera permitido que la OTA procediera. Espero que esto ayude.

0voto

Edward Falk Puntos 101

Applypatch es una utilidad que aplica un parche binario a un archivo. Por ejemplo, en algunos sistemas, la partición de recuperación se crea aplicando un parche binario a la partición de arranque (los dos son casi idénticos y es más fácil empaquetar un parche que el binario completo durante una actualización).

El uso típico es ejecutar el "applypatch" durante el tiempo de arranque. Applypatch se ejecuta con la opción -c (marcar) que especifica la partición de almacenamiento, el tamaño y el hash. Estos argumentos determinan si el parche ya se ha aplicado (si el hash coincide, entonces se ha aplicado.) Si el parche tiene no se ha aplicado, entonces applybatch -b se ejecuta para aplicar realmente el parche.

Las opciones son:

-c archivo [ sha ...]

Confirma que el archivo existe y coincide con al menos uno de los SHA. El SHA también puede ser codificado como parte del nombre del archivo; útil para cuando el nombre del archivo especifica una partición. Vea el código fuente para una explicación. Si un nombre de archivo comienza con MTD: o EMMC:, entonces se refiere a una partición en lugar de un archivo regular.

[-b bonusfile ] src objetivo target-sha1 tamaño del objetivo src-sha1:patchfile

Aplica el parche en patchfile al archivo src creando objetivo . target-sha1 y tamaño del objetivo se utilizan para confirmar que el parche tuvo éxito. src y objetivo pueden ser particiones de almacenamiento, por ejemplo, de arranque y recuperación. Si -b está presente, especifica un archivo zip con material extra.

-s bytes

Salir con el código de retorno 0 si hay al menos bytes espacio disponible en el caché.

-l

Mostrar la licencia BSD y salir

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