Flashing CM 11, saya mendapatkan `set_metadata_recursive: beberapa perubahan gagal`:

19

ClockworkMod Recovery v6.0.2.3 memberi saya kesalahan berikut ketika saya mencoba memperbarui Samsung Galaxy Tab 2 (GT-P5113) saya ke 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.

Menjadi putus asa saya mencoba hal yang sama dengan Team Win Recovery Project (TWRP) v2.6.3.0 - juga yang terbaru untuk platofrm saya,

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
sumber

Jawaban:

16

Singkatnya, jika Anda ingin mem-flash KitKat Android 4.4, Anda harus meningkatkan ke versi CWM yang lebih besar dari v6.0.4.5. Atau, gunakan bootloader alternatif. Untuk Galaxy Tab 2 GT-P5113 atau GT-p5110 Anda dapat menemukan instruksi di sini .

Evan Carroll
sumber
Ada referensi atau tautan tentang mengapa ini terjadi?
Sopalajo de Arrierez
@SopalajodeArrierez Saya memberikan penjelasan pada tautan ke instruksi lebih lanjut. Ini adalah pesan kesalahan (jika Anda mencoba pertama kali tanpa mengetahuinya), pertanyaan lainnya adalah jawaban tutorial dengan lebih detail.
Evan Carroll
6

Paket zip yang berisi pembaruan firmware selalu menyertakan dua file di META-INF/com/google/android: updater-scriptdan update-binary. updater-scriptadalah file teks yang berisi perintah yang diperlukan untuk menginstal pembaruan. update-binarymenerjemahkan perintah ke dalam kode biner.

Di Android 4.4 KitKat, Google telah mengubah antarmuka yang updater-scriptdigunakan untuk mengatur izin. Metode yang sebelumnya digunakan set_permsudah tidak digunakan lagi dan diganti oleh set_metadata. Ini menyebabkan versi lama dari perangkat lunak pemulihan kustom gagal dengan paket Android 4.4 (mis. CyanogenMod 11) dan menampilkan pesan kesalahan "set_metadata_recursive: beberapa perubahan gagal".

Solusi terbaik adalah memperbarui perangkat lunak pemulihan kustom. Saya belum menemukan versi ClockworkMod yang cukup baru yang dikompilasi untuk perangkat saya, tetapi saya telah menemukan versi terbaru TWRP berfungsi.

Opsi kedua adalah untuk memperbaiki updater-scriptdengan mengganti set_metadatadan set_metadata_recursivememanggil dengan sintaks lama, yaitu set_permdan set_perm_recursive. Saya belum melakukan ini jadi saya tidak yakin betapa mudahnya ini.

Opsi ketiga adalah mengganti update-binarydengan yang ditambal yang dibuat oleh anggota XDA daniel_hk: http://forum.xda-developers.com/showthread.php?t=2532300 . Saya telah melakukan ini dan itu bekerja dengan baik, tetapi biner dikompilasi untuk ARMv7 dan tidak akan bekerja di arsitektur lain.

Seppo Enarvi
sumber
Mengganti yang update-binaryberfungsi pada Oppo Find 5 saya untuk ROM dan gapps. Terima kasih!
Qwerty
1

Selain jawaban jmullee , dibuat dengan perbandingan cm-10.1.3 dan cm-11 updater-script. Setelah penggantian ini, saya berhasil melakukan flash cm-11-20141110-NIGHTLY-n7000.zipdengan pemulihan 5 (built-in di kernel speedmod ICS).

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
sumber
0

Saya telah memecahkan masalah dengan memodifikasi file skrip \ META-INF \ com \ google \ android \ updater dalam editor teks, dan mengganti semua set_metadata_recursive dengan set_param_recursive versi lamanya (tanda tangan dari fungsi-fungsi tersebut relatif setara), setelah itu Anda harus kembali zip paket dan menandatangani file. Untuk mengganti dan mencari cara melakukannya: cari di google "ganti set_metadata_recursive oleh set_param_recursive phyton" seseorang telah membuat skrip phyton tetapi jika Anda memahami fungsi tanda tangan Anda dapat melakukannya secara manual. - kemudian dibungkus ulang dan menandatangani zip.

JoeTheKid
sumber
-1

Saya menulis pola pencarian / ganti ini yang mengubah format baru menjadi yang lama, dan itu berhasil bagi saya:

$ 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

Pada akhirnya aplikasi google-play tidak akan menginstal baik, jadi saya menggigit peluru dan recovery-clockwork-6.0.4.6-i9300.imgmem-flash pemulihan yang diperbarui ( dengan heimdal) dan kemudian dapat mem-flash CM11 yang tidak dimodifikasi. Selain itu, Google Play memiliki kesalahan hingga saya menonaktifkan 3G (memaksa IPv4 melalui WiFi), sepertinya ada masalah (sementara?) Yang terhubung ke Play Server melalui IPv6.

selamat tinggal
sumber
3
Sedikit informasi lebih bermanfaat. Apakah Anda mendapatkan ini dari forum? Atau apakah Anda menulisnya sendiri? Dalam kedua kasus, random piece of codetidak semua yang membantu tanpa beberapa komentar (terutama dalam kasus ekspresi reguler).
Stephen Schrauger
ok maaf - ini hanya mencari / mengganti pola yang saya tulis yang munges format baru ke yang lama. Pada akhirnya aplikasi google-play tidak akan menginstal baik, jadi saya menggigit peluru dan mem-flash pemulihan yang diperbarui (recovery-clockwork-6.0.4.6-i9300.img, dengan heimdal) dan kemudian dapat mem-flash cm11 yang tidak dimodifikasi. Selain itu, google play mengalami kesalahan hingga saya menonaktifkan 3G (memaksa IPv4 melalui wifi), sepertinya ada masalah (sementara?) Yang terhubung ke server bermain melalui IPv6
jmullee
-1

STATROR KESALAHAN 7 adalah karena Anda harus meningkatkan versi CWM menjadi lebih besar atau sama dengan versi CWM v 6.0.4.4 untuk menginstal kitkat dan lollipop di samsung Galaxy Tab 2 GT-P5113 atau GT-p5110

Emil George James
sumber
1
Itu mungkin benar, tetapi bisakah Anda mendukung klaim Anda dengan sumber?
Firelord
-2

Pastikan Anda mengaktifkan "USB Debugging" di bawah "Opsi pengembang" pada ponsel Anda yang telah di-rooting. Itu berhasil bagi saya.

stan
sumber
Apa hubungannya opsi pengembang dengan pemulihan? Saat di-boot ke CWM / TWRP, mereka tidak memainkan peran sama sekali. Terutama tidak untuk menginstal ROM.
Izzy
Mereka sama sekali tidak berhubungan.
SarpSTA
Saya percaya jawaban ini merujuk pada pengaturan "USB Debugging", yang pada beberapa perangkat / versi dapat menetapkan bendera di nvram yang memang dapat dibaca dari Recovery.
Matius Baca