Блимаючи CM 11, я отримую `set_metadata_recursive: деякі зміни не вдалися`:


19

ClockworkMod Recovery 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. Або скористайтеся альтернативним завантажувачем. Для Galaxy Tab 2 GT-P5113 або GT-p5110 ви можете знайти тут інструкції .


Будь-які посилання чи посилання про те, чому це відбувається, будь ласка?
Sopalajo de Arrierez

@SopalajodeArrierez Я надав пояснення за посиланням на подальші вказівки. Це повідомлення про помилку (якщо ви спробуєте спочатку, не знаючи), інше питання - це підручник-відповідь з більш детальною інформацією.
Еван Керролл

6

Пакет zip, який містить оновлення вбудованого програмного забезпечення, завжди включає два файли у META-INF/com/google/android: updater-scriptта update-binary. updater-scriptце текстовий файл, що містить команди, необхідні для встановлення оновлення. update-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патч, створений членом XDA daniel_hk: http://forum.xda-developers.com/showthread.php?t=2532300 . Я зробив це, і він працював чудово, але двійковий файл складено для ARMv7 і не працюватиме в будь-якій іншій архітектурі.


Заміна update-binaryвідпрацьованого на моєму Oppo Find 5 як для ПЗУ, так і для пропусків. Спасибі!
Qwerty

1

На додаток до відповіді jmullee , зробленої порівнянням cm-10.1.3 та cm-11 update-script. Після цієї заміни я успішно прошив cm-11-20141110-NIGHTLY-n7000.zipз відновленням 5 (вбудований у ядро ​​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

Я вирішив, що модифікуючи файл \ META-INF \ com \ google \ android \ updateter-script у текстовому редакторі та замінивши всі set_metadata_recursive його старою версією set_param_recursive (підпис функцій відносно еквівалентний), після цього ви доведеться знову застебнути пакет і підписати файл. Щоб замінити та розібратися, як це зробити: пошук у google "замінити set_metadata_recursive на set_param_recursive phyton" хтось створив фітон-скрипт, але якщо ви розумієте, що підписи функцій, ви можете робити це вручну. - потім перепакуйте і підпишіть блискавку.


-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 серверів через IPv6.


3
Трохи більше інформації буде корисною. Ви отримали це з форуму? Або ти це написав сам? В будь-якому випадку random piece of codeне все так корисно без коментарів (особливо у випадку регулярних виразів).
Стівен Шраугер

ок вибачте - це просто шаблон пошуку / заміни, який я написав, що перетворює новий формат у старий. Зрештою, додаток google-play також не встановився, тому я кусав кулю і прошив оновлене відновлення (recovery-clockwork-6.0.4.6-i9300.img, з heimdal), а потім зміг спалахнути немодифікований cm11. Крім того, у програванні Google не було помилок, поки я не відключив 3G (змушуючи IPv4 через Wi-Fi), схоже, виникли (тимчасові?) Проблеми з підключенням до ігрових серверів через 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 вони взагалі не грають ніякої ролі. Особливо не для миготіння ПЗУ.
Izzy

Вони абсолютно не пов'язані між собою.
SarpSTA

Я вважаю, що ця відповідь стосується налаштування "Налагодження USB", яке на деяких пристроях / версіях може встановити прапор у nvram, який справді читається з Recovery.
Матвій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.