Пакет 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 и не будет работать в любой другой архитектуре.