Beim Blinken von CM 11 erhalte ich "set_metadata_recursive: Einige Änderungen sind fehlgeschlagen":


19

ClockworkMod Recovery v6.0.2.3 gibt folgende Fehlermeldung aus, wenn ich versuche, mein Samsung Galaxy Tab 2 (GT-P5113) auf Cyanogenmod 11 zu aktualisieren:

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.

In meiner Verzweiflung habe ich dasselbe mit Team Win Recovery Project (TWRP) v2.6.3.0 versucht - auch das neueste für mein 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'

Antworten:


16

Kurz gesagt, wenn Sie KitKat Android 4.4 flashen möchten, müssen Sie ein Upgrade auf eine CWM-Version größer als v6.0.4.5 durchführen. Oder verwenden Sie einen alternativen Bootloader. Für das Galaxy Tab 2 GT-P5113 oder GT-p5110 finden Sie die Anleitung hier .


Irgendwelche Verweise oder Links, warum passiert das bitte?
Sopalajo de Arrierez

@SopalajodeArrierez Ich gab eine Erklärung zum Link zu weiteren Anweisungen. Dies ist eine Fehlermeldung (wenn Sie es zuerst ohne Wissen versuchen), die andere Frage ist eine Tutorial-Antwort mit mehr Details.
Evan Carroll

6

Ein Zip-Paket, das ein Firmware-Update enthält, enthält immer zwei Dateien in META-INF/com/google/android: updater-scriptund update-binary. updater-scriptist eine Textdatei mit Befehlen, die zum Installieren des Updates erforderlich sind. update-binaryübersetzt die Befehle in Binärcode.

In Android 4.4 KitKat hat Google die Benutzeroberfläche updater-scriptzum Einrichten von Berechtigungen geändert . Die zuvor verwendete set_permMethode wurde verworfen und durch ersetzt set_metadata. Dies führt dazu, dass alte Versionen der benutzerdefinierten Wiederherstellungssoftware mit Android 4.4-Paketen (z. B. CyanogenMod 11) fehlschlagen und die Fehlermeldung "set_metadata_recursive: Einige Änderungen sind fehlgeschlagen" angezeigt wird.

Die beste Lösung besteht darin, die benutzerdefinierte Wiederherstellungssoftware zu aktualisieren. Ich habe keine neue Version von ClockworkMod gefunden, die für mein Gerät kompiliert wurde, aber ich habe festgestellt, dass die neueste Version von TWRP funktioniert.

Die zweite Möglichkeit besteht darin, das Problem zu beheben, updater-scriptindem Sie alle set_metadataund set_metadata_recursive-Aufrufe durch die alte Syntax ersetzen , dh set_permund set_perm_recursive. Ich habe das noch nicht getan, also bin ich mir nicht sicher, wie einfach das sein würde.

Die dritte Möglichkeit besteht darin, die update-binarydurch eine vom XDA-Mitglied daniel_hk erstellte gepatchte zu ersetzen: http://forum.xda-developers.com/showthread.php?t=2532300 . Ich habe dies getan und es hat gut funktioniert, aber die Binärdatei ist für ARMv7 kompiliert und funktioniert in keiner anderen Architektur.


Ersetzen Sie die update-binaryauf meinem Oppo Find 5 für den ROM und Gapps gearbeitet. Vielen Dank!
Qwerty

1

Zusätzlich zu jmullees Antwort , erstellt durch Vergleich von cm-10.1.3 und cm-11 Updater-Skript. Nach diesem Austausch habe ich erfolgreich cm-11-20141110-NIGHTLY-n7000.zipmit Recovery 5 geflasht (integrierter ICS-Speedmod-Kernel).

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

0

Ich habe das Ändern der \ META-INF \ com \ google \ android \ updater-script-Datei in einem Texteditor behoben und alle set_metadata_recursive durch die alte Version set_param_recursive ersetzt (die Signatur der Funktionen ist relativ gleichwertig) muss das Paket erneut komprimieren und die Datei signieren. Zum Ersetzen und Herausfinden, wie es geht: Suchen Sie in Google nach "set_metadata_recursive durch set_param_recursive phyton ersetzen". Jemand hat ein Phyton-Skript erstellt. Wenn Sie jedoch die Funktionssignaturen verstehen, können Sie dies manuell tun. - dann packen und unterschreiben Sie den Reißverschluss.


-1

Ich habe dieses Such- / Ersetzungsmuster geschrieben, mit dem das neue Format in das alte umgewandelt wird, und es hat bei mir funktioniert:

$ 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

Am Ende würde sich die Google-Play-App auch nicht installieren lassen, also habe ich die Kugel recovery-clockwork-6.0.4.6-i9300.imggebissen und eine aktualisierte Wiederherstellung ( mit heimdal) geflasht und konnte dann ein nicht modifiziertes CM11 flashen. Abgesehen davon hatte Google Play Fehler, bis ich 3G deaktiviert habe (IPv4 über WLAN erzwingen). Es scheint (vorübergehend?) Probleme mit der Verbindung zu Play Servern über IPv6 zu geben.


3
Ein bisschen mehr Informationen wären hilfreich. Hast du das von einem Forum bekommen? Oder hast du es selbst geschrieben? In beiden Fällen random piece of codeist dies ohne einige Kommentare nicht allzu hilfreich (insbesondere bei regulären Ausdrücken).
Stephen Schrauger

ok sorry - es ist nur ein Such- / Ersetzmuster, das ich geschrieben habe, das das neue Format in das alte mungiert. Am Ende würde sich die Google-Play-App auch nicht installieren lassen, also habe ich mich ins Zeug gelegt und eine aktualisierte Wiederherstellung (recovery-clockwork-6.0.4.6-i9300.img, mit heimdal) geflasht und konnte dann eine nicht geänderte cm11 flashen. Abgesehen davon, Google Play hatte Fehler, bis ich 3G deaktiviert habe (IPv4 über WLAN erzwingen). Es scheint (vorübergehende?) Probleme mit der Verbindung zu
Spielservern

-1

ERROR STATUS 7 liegt daran, dass Sie die CWM-Version auf mindestens die Version CWM 6.0.4.4 aktualisieren müssen, um kitkat und lollipop auf dem Samsung Galaxy Tab 2 GT-P5113 oder GT-p5110 zu installieren


1
Das mag stimmen, aber können Sie Ihre Behauptung mit Quellen stützen?
Firelord

-2

Stellen Sie sicher, dass Sie "USB-Debugging" unter "Entwickleroptionen" auf Ihrem verwurzelten Telefon aktivieren. Das hat bei mir geklappt.


Was haben Entwickleroptionen mit der Wiederherstellung zu tun? Beim Booten in CWM / TWRP spielen diese überhaupt keine Rolle. Besonders nicht zum Flashen von ROMs.
Izzy

Sie sind völlig unabhängig.
SarpSTA

Ich glaube, diese Antwort bezieht sich auf die "USB-Debugging" -Einstellung, die auf einigen Geräten / Versionen ein Flag in nvram setzen kann, das tatsächlich von Recovery gelesen werden kann.
Matthew Read
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.