Parpadeando CM 11, obtengo `set_metadata_recursive: algunos cambios fallaron`:

19

ClockworkMod Recovery v6.0.2.3 me da el siguiente error cuando intento actualizar mi Samsung Galaxy Tab 2 (GT-P5113) a Cyanogenmod 11:

Restarting adbd...
Finding update package...
Opening update package...
Installing update...
set_metadata_recursive: some changes failed
E:Error in /tmp/update.zip
(status 7)
Installation aborted.

Al estar desesperado probé lo mismo con Team Win Recovery Project (TWRP) v2.6.3.0, también lo último para mi plataforma,

Checking for MD5 file...
Skipping MD5 check: no MD5 file file found.
set_metadata_recursive: some changes filed
E:Error: executing updater binary in zip '/data/media/0/sideload.zip'
Evan Carroll
fuente

Respuestas:

16

En resumen, si desea actualizar KitKat Android 4.4, deberá actualizar a una versión de CWM superior a v6.0.4.5. O use un gestor de arranque alternativo. Para el Galaxy Tab 2 GT-P5113 o GT-p5110 , puede encontrar las instrucciones aquí .

Evan Carroll
fuente
¿Alguna referencia o enlace sobre por qué sucede esto, por favor?
Sopalajo de Arrierez
@SopalajodeArrierez Proporcioné una explicación en el enlace para obtener más instrucciones. Este es un mensaje de error (si intenta primero sin saberlo), la otra pregunta es una respuesta tutorial con más detalles.
Evan Carroll
6

Un paquete zip que contiene una actualización de firmware siempre incluye dos archivos en META-INF/com/google/android: updater-scripty update-binary. updater-scriptes un archivo de texto que contiene los comandos necesarios para instalar la actualización. update-binarytraduce los comandos en código binario.

En Android 4.4 KitKat, Google ha cambiado la interfaz que updater-scriptutiliza para configurar los permisos. El set_permmétodo utilizado anteriormente fue obsoleto y reemplazado por set_metadata. Esto hace que las versiones antiguas del software de recuperación personalizado fallen con los paquetes de Android 4.4 (por ejemplo, CyanogenMod 11) y muestren el mensaje de error "set_metadata_recursive: algunos cambios fallaron".

La mejor solución es actualizar el software de recuperación personalizado. No he encontrado una versión lo suficientemente nueva de ClockworkMod compilada para mi dispositivo, pero he encontrado que la versión más nueva de TWRP funciona.

La segunda opción es arreglar el updater-scriptmediante la sustitución de cualquiera set_metadatay las set_metadata_recursivellamadas con la sintaxis anterior, es decir, set_permy set_perm_recursive. No he hecho esto, así que no estoy seguro de lo fácil que sería.

La tercera opción es reemplazarla update-binarycon una parche creada por el miembro de XDA daniel_hk: http://forum.xda-developers.com/showthread.php?t=2532300 . He hecho esto y funcionó bien, pero el binario está compilado para ARMv7 y no funcionará en ninguna otra arquitectura.

Seppo Enarvi
fuente
Reemplazar el update-binarytrabajado en mi Oppo Find 5 para la ROM y gapps. ¡Gracias!
Qwerty
1

Además de la respuesta de jmullee , realizada mediante la comparación de cm-10.1.3 y cm-11 Updater-Script. Después de este reemplazo, flasheé cm-11-20141110-NIGHTLY-n7000.zipcon éxito con la recuperación 5 (núcleo integrado ICS speedmod).

set_metadata => set_perm
set_metadata_recursive => set_perm_recursive

sed -i "s|set_metadata(\(\"[^\"]*\"\), \"uid\", \([0-9]*\), \"gid\", \([0-9]*\), \"mode\", \([0-9]*\).*);|set_perm(\2, \3, \4, \1);|" updater-script
yasondinalt
fuente
0

He resuelto modificar el archivo \ META-INF \ com \ google \ android \ Updater-script en un editor de texto y reemplazar todo set_metadata_recursive por su versión anterior set_param_recursive (la firma de las funciones son relativamente equivalentes), después de eso tiene que volver a comprimir el paquete y firmar el archivo. Para reemplazar y averiguar cómo hacerlo: busque en google "reemplazar set_metadata_recursive por set_param_recursive phyton" alguien ha creado un script phyton pero si comprende las firmas de funciones puede hacerlo manualmente. - luego reempaque y firme el zip.

JoeTheKid
fuente
-1

Escribí este patrón de búsqueda / reemplazo que combina el nuevo formato con el anterior, y funcionó para mí:

$ sed -i "s|set_metadata_recursive(\\(\"[^\"]\*\"\\), \"uid\", \\([0-9]\*\\), \"gid\", \\([0-9]\*\\), \"dmode\", \\([0-9]\*\\), \"fmode\", \\([0-9]\*\\),.*);|set_perm_recursive(\2, \3, \4, \5, \1);|" META-INF/com/google/android/updater-script

Al final, la aplicación google-play tampoco se instaló, así que mordí la bala y actualicé una recuperación actualizada ( recovery-clockwork-6.0.4.6-i9300.imgcon heimdal) y luego pude flashear un CM11 no modificado. Además, Google Play tuvo errores hasta que desactivé 3G (forzando IPv4 a través de WiFi), parece que hubo problemas (¿temporales?) Al conectarse a Play Servers a través de IPv6.

jmullee
fuente
3
Un poco más de información sería útil. ¿Recibiste esto de un foro? ¿O lo escribiste tú mismo? En cualquier caso, random piece of codeno es tan útil sin algunos comentarios (especialmente en el caso de expresiones regulares).
Stephen Schrauger el
ok lo siento, es solo un patrón de búsqueda / reemplazo que escribí que combina el nuevo formato con el antiguo. Al final, la aplicación google-play tampoco se instaló, así que mordí la bala y actualicé una recuperación actualizada (recovery-clockwork-6.0.4.6-i9300.img, con heimdal) y luego pude flashear un cm11 no modificado. Además, Google Play tuvo errores hasta que desactivé 3G (forzando IPv4 a través de wifi), parece que hubo problemas (¿temporales?) Al conectarse a servidores Play a través de IPv6
jmullee
-1

ERROR STATUS 7 se debe a que deberá actualizar la versión de CWM a una versión mayor o igual a la versión CWM v 6.0.4.4 para instalar kitkat y lollipop en Samsung Galaxy Tab 2 GT-P5113 o GT-p5110

Emil George James
fuente
1
Eso puede ser cierto, pero ¿puede respaldar su reclamo con la (s) fuente (s)?
Señor del fuego
-2

Asegúrese de habilitar "Depuración de USB" en "Opciones de desarrollador" en su teléfono rooteado. Eso funcionó para mí.

Stan
fuente
¿Qué tienen que ver las opciones de desarrollador con la recuperación? Cuando se inicia en CWM / TWRP, esos no juegan ningún papel en absoluto. Especialmente no para flashear ROMs.
Izzy
No tienen relación alguna.
SarpSTA
Creo que esta respuesta se refiere a la configuración de "Depuración de USB", que en algunos dispositivos / versiones puede establecer una marca en nvram que de hecho es legible desde Recovery.
Matthew leyó el