Могу ли я сделать прошиваемый zip, выполняющий команды?

Я использую cm13 на своем OnePlus 3 вместе с бессистемным SuperSu и suhide. Когда я обновляю cm (часто), мне нужно прошить и SuperSu, и suhide. Проблема в том, что cm поставляется с корневым доступом и при обновлении создает каталог su в /system/bin/su, который обнаруживает suhide, поэтому он не может быть установлен. Мне нужно удалить этот каталог между прошивками, и я хотел бы сделать скрипт, который делает это за меня, когда я прошиваю его, чтобы я мог прошивать все файлы вместе при обновлении с помощью CyanDelta. Я знаю, что это возможно, потому что я видел другие почтовые индексы, которые выполняют командные сценарии, когда я их прошиваю.

Ответы (1)

Найдите где-нибудь пустую флешку; изменить META-INF/com/google/android/updater-scriptи добавить delete_recursive("/path/to/your/directory");, чтобы удалить рассматриваемый каталог.

(С другой стороны, действительно ли необходимо делать прошиваемый zip для этой единственной цели? Если на вашем телефоне доступно восстановление TWRP, почему бы просто не использовать его встроенный файловый менеджер?)

OP также может сделать свой собственный ZIP-архив со структурой META-INF/com/google/android , создать двоичный файл обновления внутри последнего каталога и написать #!/sbin/sh, а затем mount -o rw /partition_nameи rm -rf /path/to/your/directoryвнутри файла. Наконец, просто заархивируйте папку META-INF , и вот ZIP-файл для прошивки.
@DeathMaskSalesman Вау, я не знаю, что вы могли бы написать update-binaryсами (те, что я видел, в основном в нечитаемом формате, за исключением SuperSU). Спасибо за информацию.
По сути, классический update-binary — это скомпилированный бинарник, как и sh . Обходной путь для тех, кто хочет большей гибкости, состоит в том, чтобы просто написать файл как простой сценарий оболочки, при этом вы также можете игнорировать сценарий обновления .
@DeathMaskSalesman Как можно заменить двоичный файл скриптом? Мне кажется странным, что это вообще возможно.
Ах, я не знаю процедуры, применяемой при выздоровлении. Тем не менее, если вы мне не верите, вы можете распаковать прошиваемый ZIP-файл CyanogenMod и проверить его двоичный файл обновления. Например, тот, который я проанализировал, начинался с байтов 7F 45 4C 46, обозначающих .ELF, идентифицирующих файл как скомпилированный двоичный файл.
Спасибо всем, причина, по которой я хотел бы прошиваемый почтовый индекс, заключается в том, что я часто обновляю свой телефон, почти каждый день, и я хотел бы обновить все, просто нажав кнопку обновления в CyanDelta.
Я сделал то, что вы сказали, но когда я прошиваю свой zip, TWRP сообщает мне, что не может найти META-INF/com/google/android/update-binary. Что делать, как-то отредактировать файл update-binary? Я делаю это с помощью TextEdit на своем Mac, и когда я пытаюсь отредактировать файл, он просто показывает кучу чепухи. Могу ли я попросить кого-нибудь сделать этот zip для меня, просто файл для удаления /system/xbin/su?
Я загрузил то, что упаковал, на свой AndroidFileHost — попробуйте. Если /system/xbin/suэто каталог, а не файл, замените deleteна delete_recursivein updater-script.
Спасибо! Это сработало, теперь я могу без проблем обновить свой телефон :D