Clignotant CM 11, j'obtiens `set_metadata_recursive: certaines modifications ont échoué`:

19

ClockworkMod Recovery v6.0.2.3 me donne l'erreur suivante lorsque j'essaie de mettre à jour mon Samsung Galaxy Tab 2 (GT-P5113) vers 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.

Désespéré, j'ai essayé la même chose avec Team Win Recovery Project ( TWRP ) v2.6.3.0 - également le dernier pour mon platofrm,

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
la source

Réponses:

16

En bref, si vous souhaitez flasher KitKat Android 4.4, vous devrez mettre à niveau vers une version de CWM supérieure à v6.0.4.5. Ou utilisez un autre chargeur de démarrage. Pour la Galaxy Tab 2 GT-P5113 ou GT-p5110, vous pouvez trouver les instructions ici .

Evan Carroll
la source
Des références ou des liens expliquant pourquoi cela se produit, s'il vous plaît?
Sopalajo de Arrierez
@SopalajodeArrierez J'ai fourni une explication sur le lien vers d'autres instructions. Il s'agit d'un message d'erreur (si vous essayez d'abord sans le savoir), l'autre question est un tutoriel-réponse avec plus de détails.
Evan Carroll
6

Un package zip contenant une mise à jour du firmware comprend toujours deux fichiers dans META-INF/com/google/android: updater-scriptet update-binary. updater-scriptest un fichier texte contenant les commandes requises pour installer la mise à jour. update-binarytraduit les commandes en code binaire.

Dans Android 4.4 KitKat, Google a modifié l'interface updater-scriptutilisée pour configurer les autorisations. La set_permméthode utilisée précédemment a été déconseillée et remplacée par set_metadata. Cela provoque l'échec des anciennes versions du logiciel de récupération personnalisé avec les packages Android 4.4 (par exemple CyanogenMod 11) et affiche le message d'erreur "set_metadata_recursive: certaines modifications ont échoué".

La meilleure solution consiste à mettre à jour le logiciel de récupération personnalisé. Je n'ai pas trouvé de version suffisamment récente de ClockworkMod compilée pour mon appareil, mais j'ai trouvé la dernière version de TWRP pour fonctionner.

La deuxième option consiste à corriger le updater-scripten remplaçant any set_metadataet les set_metadata_recursiveappels par l'ancienne syntaxe, c'est set_perm-à- dire et set_perm_recursive. Je ne l'ai pas fait, donc je ne suis pas sûr de la facilité.

La troisième option consiste à remplacer le update-binarypar un correctif créé par le membre XDA daniel_hk: http://forum.xda-developers.com/showthread.php?t=2532300 . J'ai fait cela et cela a bien fonctionné, mais le binaire est compilé pour ARMv7 et ne fonctionnera dans aucune autre architecture.

Seppo Enarvi
la source
Remplacer le update-binarytravaillé sur mon Oppo Find 5 pour la ROM et les gapps. Merci!
Qwerty
1

En plus de la réponse de jmullee , faite en comparant le script de mise à jour cm-10.1.3 et cm-11. Après ce remplacement, j'ai réussi à flasher cm-11-20141110-NIGHTLY-n7000.zipavec la récupération 5 (noyau ICS speedmod intégré).

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
la source
0

J'ai résolu que la modification du fichier \ META-INF \ com \ google \ android \ updater-script dans un éditeur de texte, et le remplacement de tous les set_metadata_recursive par son ancienne version set_param_recursive (la signature des fonctions est relativement équivalente), après quoi vous devez recompresser le pack et signer le fichier. Pour le remplacer et comprendre comment le faire: recherchez dans google "remplacez set_metadata_recursive par set_param_recursive phyton" quelqu'un a créé un script phyton mais si vous comprenez les fonctions, les signatures que vous pouvez doit manuellement. - puis remballez et signez le zip.

JoeTheKid
la source
-1

J'ai écrit ce modèle de recherche / remplacement qui insère le nouveau format dans l'ancien, et cela a fonctionné pour moi:

$ 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

À la fin, l'application google-play ne s'est pas installée non plus, j'ai donc mordu la balle et flashé une récupération mise à jour ( recovery-clockwork-6.0.4.6-i9300.imgavec heimdal) et j'ai ensuite pu flasher un CM11 non modifié. De plus, Google Play a eu des erreurs jusqu'à ce que je désactive la 3G (forçant IPv4 sur WiFi), il semble qu'il y ait eu des problèmes (temporaires?) De connexion aux serveurs Play via IPv6.

jmullee
la source
3
Un peu plus d'informations seraient utiles. Avez-vous obtenu cela d'un forum? Ou l'avez-vous écrit vous-même? Dans les deux cas, cela random piece of coden'est pas très utile sans quelques commentaires (en particulier dans le cas des expressions régulières).
Stephen Schrauger
ok désolé - c'est juste un modèle de recherche / remplacement que j'ai écrit qui insère le nouveau format dans l'ancien. À la fin, l'application google-play ne s'installait pas non plus, j'ai donc mordu la balle et flashé une récupération mise à jour (recovery-clockwork-6.0.4.6-i9300.img, avec heimdal) et j'ai ensuite pu flasher un cm11 non modifié. De plus, Google Play a eu des erreurs jusqu'à ce que je désactive la 3G (forçant IPv4 sur le wifi), il semble qu'il y ait eu des problèmes (temporaires?) De connexion aux serveurs de jeu via IPv6
jmullee
-1

L'ETAT D'ERREUR 7 est dû au fait que vous devrez mettre à niveau la version CWM vers une version supérieure ou égale à la version CWM v 6.0.4.4 pour installer kitkat et lollipop sur Samsung Galaxy Tab 2 GT-P5113 ou GT-p5110

Emil George James
la source
1
C'est peut-être vrai, mais pouvez-vous soutenir votre réclamation avec des sources?
Firelord
-2

Assurez-vous d'activer "Débogage USB" sous "Options développeur" sur votre téléphone rooté. Cela a fonctionné pour moi.

Stan
la source
Qu'est-ce que les options de développeur ont à voir avec la récupération? Lorsqu'elles sont démarrées dans CWM / TWRP, celles-ci ne jouent aucun rôle. Surtout pas pour flasher des ROM.
Izzy
Ils sont complètement indépendants.
SarpSTA
Je crois que cette réponse fait référence au paramètre "Débogage USB", qui sur certains appareils / versions peut définir un indicateur dans nvram qui est en effet lisible à partir de la récupération.
Matthieu lu le