Nhấp nháy CM 11, tôi nhận được `set_metadata_recursive: một số thay đổi không thành công`:


19

ClockworkMod Recovery v6.0.2.3 mang đến cho tôi lỗi theo dõi khi tôi cố cập nhật Samsung Galaxy Tab 2 (GT-P5113) lên 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.

Quá tuyệt vọng, tôi đã thử điều tương tự với Dự án khôi phục Team Win (TWRP) v2.6.3.0 - cũng là phiên bản mới nhất cho platofrm của tôi,

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'

Câu trả lời:


16

Nói tóm lại, nếu bạn muốn flash KitKat Android 4.4, bạn sẽ phải nâng cấp lên phiên bản CWM lớn hơn v6.0.4.5. Hoặc, sử dụng bộ tải khởi động thay thế. Đối với Galaxy Tab 2 GT-P5113 hoặc GT-p5110, bạn có thể tìm thấy hướng dẫn tại đây .


Bất kỳ tài liệu tham khảo hoặc liên kết về lý do tại sao điều này xảy ra, xin vui lòng?
Sopalajo de Arrierez

@SopalajodeArrierez Tôi đã cung cấp một lời giải thích về liên kết để được hướng dẫn thêm. Đây là một thông báo lỗi (nếu bạn thử trước mà không biết), câu hỏi còn lại là câu trả lời hướng dẫn với nhiều chi tiết hơn.
Evan Carroll

6

Gói zip chứa bản cập nhật chương trình cơ sở luôn bao gồm hai tệp trong META-INF/com/google/android: updater-scriptupdate-binary. updater-scriptlà một tệp văn bản chứa các lệnh cần thiết để cài đặt bản cập nhật. update-binarydịch các lệnh thành mã nhị phân.

Trong Android 4.4 KitKat, Google đã thay đổi giao diện updater-scriptsử dụng để thiết lập quyền. set_permPhương pháp được sử dụng trước đây không được dùng nữa và được thay thế bằng set_metadata. Điều này khiến các phiên bản cũ của phần mềm khôi phục tùy chỉnh không thành công với các gói Android 4.4 (ví dụ CyanogenMod 11) và hiển thị thông báo lỗi "set_metadata_recursive: một số thay đổi không thành công".

Giải pháp tốt nhất là cập nhật phần mềm khôi phục tùy chỉnh. Tôi chưa tìm thấy phiên bản đủ mới của ClockworkMod được biên dịch cho thiết bị của mình, nhưng tôi đã tìm thấy phiên bản TWRP mới nhất để hoạt động.

Tùy chọn thứ hai là sửa lỗi updater-scriptbằng cách thay thế bất kỳ set_metadataset_metadata_recursivecác cuộc gọi bằng cú pháp cũ, nghĩa là set_permset_perm_recursive. Tôi đã không làm điều này vì vậy tôi không chắc điều này sẽ dễ dàng như thế nào.

Tùy chọn thứ ba là thay thế update-binarymột bản vá được tạo bởi thành viên XDA daniel_hk: http://forum.xda-developers.com/showthread.php?t=2532300 . Tôi đã làm điều này và nó hoạt động tốt, nhưng nhị phân được biên dịch cho ARMv7 và sẽ không hoạt động trong bất kỳ kiến ​​trúc nào khác.


Thay thế công update-binaryviệc trên Oppo Find 5 của tôi cho cả ROM và gapps. Cảm ơn!
Qwerty

1

Ngoài câu trả lời của jmullee , được thực hiện bằng cách so sánh kịch bản cập nhật cm-10.1.3 và cm-11. Sau khi thay thế này, tôi đã flash thành công cm-11-20141110-NIGHTLY-n7000.zipvới recovery 5 (tích hợp 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

0

Tôi đã giải quyết việc sửa đổi tệp \ META-INF \ com \ google \ android \ updater-script trong trình soạn thảo văn bản và thay thế tất cả set_metadata_recursive bằng phiên bản cũ của nó set_param_recursive (chữ ký của các hàm tương đối) phải nén lại gói và ký vào tệp. Để thay thế và tìm ra cách thực hiện: tìm kiếm trong google "thay thế set_metadata_recursive bằng set_param_recursive phyton" ai đó đã tạo tập lệnh phyton nhưng nếu bạn hiểu chữ ký hàm, bạn có thể thực hiện thủ công. - sau đó đóng gói lại và ký mã zip.


-1

Tôi đã viết mẫu tìm kiếm / thay thế này để định dạng mới thành định dạng cũ và nó hoạt động với tôi:

$ 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

Cuối cùng, ứng dụng google-play cũng không cài đặt, vì vậy tôi cắn viên đạn và flash phục hồi được cập nhật ( recovery-clockwork-6.0.4.6-i9300.imgvới heimdal) và sau đó có thể flash CM11 chưa sửa đổi. Ngoài ra, Google Play có lỗi cho đến khi tôi vô hiệu hóa 3G (buộc IPv4 qua WiFi), có vẻ như đã xảy ra sự cố (tạm thời?) Khi kết nối với Máy chủ Play qua IPv6.


3
Một chút thông tin sẽ hữu ích. Bạn đã nhận được điều này từ một diễn đàn? Hay bạn đã tự viết nó? Trong cả hai trường hợp, random piece of codekhông phải tất cả đều hữu ích mà không có một số nhận xét (đặc biệt là trong trường hợp biểu thức thông thường).
Stephen Schrauger

ok xin lỗi - đó chỉ là một mẫu tìm kiếm / thay thế mà tôi đã viết có định dạng mới thành định dạng cũ. Cuối cùng, ứng dụng google-play cũng không cài đặt, vì vậy tôi cắn viên đạn và flash phục hồi được cập nhật (recovery-clockwork-6.0.4.6-i9300.img, với heimdal) và sau đó có thể flash một cm11 chưa sửa đổi. Ngoài ra, google play có lỗi cho đến khi tôi vô hiệu hóa 3G (buộc IPv4 qua wifi), có vẻ như đã có sự cố (tạm thời?) Kết nối với máy chủ phát qua IPv6
jmullee

-1

ERROR STATUS 7 là do bạn sẽ phải nâng cấp phiên bản CWM lên lớn hơn hoặc bằng phiên bản CWM v 6.0.4.4 để cài đặt kitkat và kẹo mút trên samsung Galaxy Tab 2 GT-P5113 hoặc GT-p5110


1
Điều đó có thể đúng, nhưng bạn có thể quay lại yêu cầu của mình với (các) nguồn không?
Firelord

-2

Đảm bảo bạn bật "Gỡ lỗi USB" trong "Tùy chọn nhà phát triển" trên điện thoại đã root của bạn. Điều đó làm việc cho tôi.


Tùy chọn nhà phát triển phải làm gì với recovery? Khi được khởi động vào CWM / TWRP, chúng không có vai trò gì cả. Đặc biệt không cho ROM flash.
Izzy

Chúng hoàn toàn không liên quan.
SarpSTA

Tôi tin rằng câu trả lời này đề cập đến cài đặt "Gỡ lỗi USB", trên một số thiết bị / phiên bản có thể đặt cờ trong nvram thực sự có thể đọc được từ Recovery.
Matthew đọc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.