แวบ ๆ CM 11, ฉันได้รับ `set_metadata_recursive: การเปลี่ยนแปลงบางอย่างล้มเหลว ':


19

การกู้คืน ClockworkMod v6.0.2.3 ทำให้ฉันมีข้อผิดพลาดเมื่อฉันพยายามอัปเดต Samsung Galaxy Tab 2 (GT-P5113) ของฉันเป็น 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.

ด้วยความสิ้นหวังฉันได้ลองทำสิ่งเดียวกันกับTeam Win Recovery Project (TWRP) v2.6.3.0 - ซึ่งเป็นแพลตฟอร์มล่าสุดสำหรับ 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'

คำตอบ:


16

กล่าวโดยย่อหากคุณต้องการแฟลช KitKat Android 4.4 คุณจะต้องอัปเกรดเป็นเวอร์ชันของ CWM มากกว่า v6.0.4.5 หรือใช้ bootloader สำรอง สำหรับกาแล็กซี่แท็บ 2 GT-P5113 หรือ GT-p5110 คุณสามารถหาคำแนะนำที่นี่


การอ้างอิงหรือลิงค์ใด ๆ เกี่ยวกับสาเหตุนี้เกิดขึ้นได้ไหม
Sopalajo de Arrierez

@SopalajodeArrierez ฉันให้คำอธิบายเกี่ยวกับลิงก์ไปยังคำแนะนำเพิ่มเติม นี่เป็นข้อความแสดงข้อผิดพลาด (ถ้าคุณลองก่อนโดยไม่รู้) คำถามอื่น ๆ คือคำตอบแบบฝึกหัดพร้อมรายละเอียดเพิ่มเติม
Evan Carroll

6

แพคเกจซิปที่มีการอัปเดตเฟิร์มแวเสมอรวมถึงสองไฟล์ในMETA-INF/com/google/android: และupdater-script เป็นไฟล์ข้อความที่มีคำสั่งที่จำเป็นในการติดตั้งการอัพเดท แปลคำสั่งเป็นรหัสไบนารี่update-binaryupdater-scriptupdate-binary

ใน Android 4.4 KitKat Google ได้เปลี่ยนอินเทอร์เฟซที่updater-scriptใช้สำหรับการตั้งค่าการอนุญาต ที่ใช้ก่อนหน้าวิธีการได้รับการยกเลิกและถูกแทนที่ด้วยset_perm set_metadataสิ่งนี้ทำให้ซอฟต์แวร์กู้คืนแบบกำหนดเองเวอร์ชันเก่าล้มเหลวด้วยแพ็คเกจ Android 4.4 (เช่น CyanogenMod 11) และแสดงข้อความข้อผิดพลาด "set_metadata_recursive: การเปลี่ยนแปลงบางอย่างล้มเหลว"

ทางออกที่ดีที่สุดคือการอัปเดตซอฟต์แวร์กู้คืนที่กำหนดเอง ฉันไม่พบ ClockworkMod รุ่นใหม่ที่รวบรวมมาสำหรับอุปกรณ์ของฉัน แต่ฉันพบ TWRP รุ่นใหม่ล่าสุดเพื่อให้ทำงานได้

ตัวเลือกที่สองคือการแก้ไขupdater-scriptโดยการเปลี่ยนใด ๆset_metadataและset_metadata_recursiveเรียกร้องให้มีไวยากรณ์เก่าคือและset_perm set_perm_recursiveฉันไม่ได้ทำสิ่งนี้ดังนั้นฉันจึงไม่แน่ใจว่ามันจะง่ายแค่ไหน

ตัวเลือกที่สามคือการแทนที่update-binaryด้วยหนึ่ง patched สร้างขึ้นโดย daniel_hk สมาชิก XDA: http://forum.xda-developers.com/showthread.php?t=2532300 ฉันได้ทำสิ่งนี้แล้วและทำงานได้ดี แต่ไบนารีนั้นเรียบเรียงสำหรับ ARMv7 และจะไม่ทำงานในสถาปัตยกรรมอื่น ๆ


แทนที่Oppo Find 5 ที่update-binaryทำงานของฉันทั้ง ROM และ gapps ขอบคุณ!
Qwerty

1

นอกจากคำตอบของ jmulleeแล้วโดยทำการเปรียบเทียบ cm-10.1.3 และ cm-11 updater-script หลังจากการแทนที่นี้ฉันประสบความสำเร็จในcm-11-20141110-NIGHTLY-n7000.zipการกู้คืน 5 (ในตัวในเคอร์เนล 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

0

ฉันได้แก้ไขการปรับเปลี่ยนไฟล์ \ META-INF \ com \ google \ android \ updater-script ในโปรแกรมแก้ไขข้อความและแทนที่ set_metadata_recursive ทั้งหมดโดยรุ่นเก่า set_param_recursive (ลายเซ็นของฟังก์ชั่นจะค่อนข้างเท่ากัน) หลังจากนั้น ต้องแพ็ค zip ใหม่และลงชื่อไฟล์ สำหรับการแทนที่และหาวิธีการ: ค้นหาใน google "แทนที่ set_metadata_recursive โดย set_param_recursive phyton" ใครบางคนได้สร้างสคริปต์ phyton แต่ถ้าคุณเข้าใจฟังก์ชันลายเซ็นคุณสามารถทำได้ด้วยตนเอง - จากนั้นบรรจุใหม่และเซ็นชื่อใน zip


-1

ฉันเขียนรูปแบบการค้นหา / แทนที่นี้ซึ่งทำให้รูปแบบใหม่เป็นรูปแบบเก่าและทำงานได้สำหรับฉัน:

$ 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

ในตอนท้ายแอพ google-play จะไม่ติดตั้งเช่นกันดังนั้นฉันก็เลยกระสุนและทำการกู้คืนที่อัปเดต ( recovery-clockwork-6.0.4.6-i9300.imgด้วย heimdal) และจากนั้นก็สามารถแฟลช CM11 ที่ไม่มีการแก้ไขได้ นอกจากนี้ Google Play มีข้อผิดพลาดจนกว่าฉันจะปิดใช้งาน 3G (บังคับใช้ IPv4 ผ่าน WiFi) ดูเหมือนว่ามีปัญหา (ชั่วคราว) ที่เชื่อมต่อกับ Play Servers ผ่าน IPv6


3
ข้อมูลเพิ่มเติมเล็กน้อยจะเป็นประโยชน์ คุณได้รับสิ่งนี้จากฟอรัมหรือไม่? หรือว่าคุณเขียนเอง ในทั้งสองกรณีrandom piece of codeไม่ได้มีประโยชน์อะไรเลยหากไม่มีความคิดเห็น (โดยเฉพาะอย่างยิ่งในกรณีของนิพจน์ทั่วไป)
Stephen Schrauger

โอเคขออภัย - เป็นเพียงรูปแบบการค้นหา / แทนที่ที่ฉันเขียนซึ่งทำให้รูปแบบใหม่เป็นรูปแบบเก่า ในตอนท้ายแอพ google-play จะไม่ติดตั้งเช่นกันดังนั้นฉันก็เลยกระสุนและทำการกู้คืนที่อัปเดตแล้ว (recovery-clockwork-6.0.4.6-i9300.img พร้อม heimdal) และจากนั้นก็สามารถแฟลช cm11 ที่ไม่ได้แก้ไข นอกจากนี้ google play มีข้อผิดพลาดจนกว่าฉันจะปิดใช้งาน 3G (บังคับใช้ IPv4 ผ่าน wifi) ดูเหมือนว่าจะมีปัญหา (ชั่วคราวหรือไม่) ที่เชื่อมต่อกับเซิร์ฟเวอร์การเล่นผ่าน IPv6
jmullee

-1

สถานะข้อผิดพลาด 7 เป็นเพราะคุณจะต้องอัพเกรดรุ่น CWM เป็นมากกว่าหรือเท่ากับรุ่น CWM v 6.0.4.4 เพื่อติดตั้ง kitkat และอมยิ้มบน Samsung Galaxy Tab 2 GT-P5113 หรือ GT-p5110


1
อาจเป็นจริง แต่คุณสามารถคืนการอ้างสิทธิ์ด้วยแหล่งที่มาได้หรือไม่
Firelord

-2

ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งาน "การแก้จุดบกพร่อง USB" ภายใต้ "ตัวเลือกนักพัฒนา" บนโทรศัพท์ที่รูตของคุณ ที่ทำงานให้ฉัน


ตัวเลือกนักพัฒนาต้องทำอะไรกับการกู้คืน เมื่อบูทเข้าสู่ CWM / TWRP พวกนั้นจะไม่มีบทบาทเลย โดยเฉพาะอย่างยิ่งไม่กระพริบ ROM
Izzy

พวกเขาไม่เกี่ยวข้องอย่างสมบูรณ์
SarpSTA

ฉันเชื่อว่าคำตอบนี้หมายถึงการตั้งค่า "การแก้จุดบกพร่อง USB" ซึ่งในบางอุปกรณ์ / รุ่นสามารถตั้งค่าสถานะใน nvram ที่สามารถอ่านได้จากการกู้คืน
Matthew อ่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.