Пакет 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 і не працюватиме в будь-якій іншій архітектурі.