29 янв 2012 _850_PHPapk :
Структура zip файлов
ZIP файлы представляют собой обычные архивы, которые отличаются тем, что внутри них содержатся файлы прошивки и инструкция по установке (папка META-INF).
Это инструкция для CWM, в которой описывается какие файлы скопировать и куда, какие удалить, какие разрешения (permissions) у них выставить, и другие действия, которые требуется выполнить при установке данного ZIP'а, например очистка (wipe), установка образа img и т.д. Данные прошивки в архиве лежат по разделам точно так же, как они будут располагаться в памяти устройства.
Разделы в архиве могут быть представлены как в виде папок с файлами (название папки в точности совпадает с названием соответствующего раздела во внутренней памяти), так и в виде образов img. Загрузочный раздел (boot) может прошивается только образом. Вне зависимости от предназначения того или иного zip'а, zip'ы для CWM можно отличить открыв архив обычным архиватором, внутри должна быть папки "META-INF".
META-INF\com\google\android\update-script - в этом файле содержится инструкция по установке, её можно открыть текстовым редактором, например "notepad++", и переписать при необходимости. Так и создают ZIP установщики для CWM. В новых ZIP в папке META-INF\com\google\android содержится два файла "updater-script" и "update-binary" - по наличию второго можно определять для старого CWM файл или для нового.
Старый CWM - это 2.*, новый - 3.* и выше.
-------------------------------------------------------------
Список некоторых команд, которые можно использовать в инструкции zip:
» команда ui_print пишет на экране установщика. Пример: ui_print("Copying files to system..."); напишет на экране установщика "Copying files to system...".
» команда format форматирует паку на устройстве. Пример format("MTD", "system"); очистит /system. Пишется всегда до команды mount.
» команда mount монтирует папки. Пример: mount("MTD", "boot", "/boot"); смонтирует папку /boot как перезаписываемую.
» команда package_extract_dir копирует файлы из архива в уже смонтированные папки. Пример: package_extract_dir("system", "/system"); скопирует все из папки system в /system.
» команда show_progress(fraction, duration) показывает прогресс-бар. Пример: show_progress(0.500000, 40);
» команда set_perm(uid, gid, mode, path) ставит permissions. Пример: set_perm(0, 0, 06755, "/system/xbin/su"); дать permissions SU этой папке.
» команда set_perm_recursive(uid, gid, mode, path) - то же, что и set_perm, только на директорию и все ее содержимое. (аналог chmod -R, chown -R, chgrp -R ) Пример: set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
» команда symlink - создает символическую ссылку (аналог ln -s ) Пример: symlink("busybox", "/system/xbin/[", "/system/xbin/[[");
» команда delete - удаляет файл. Пример: delete("/system/app/Rosie.apk") - удаляет Rosie.apk из system/app
» команда delete_recursive - удаляет директорию со всеми файлами. Пример: delete_recursive("/system/app/") - удаляет папку system/app
Это инструкция для CWM, в которой описывается какие файлы скопировать и куда, какие удалить, какие разрешения (permissions) у них выставить, и другие действия, которые требуется выполнить при установке данного ZIP'а, например очистка (wipe), установка образа img и т.д. Данные прошивки в архиве лежат по разделам точно так же, как они будут располагаться в памяти устройства.
Разделы в архиве могут быть представлены как в виде папок с файлами (название папки в точности совпадает с названием соответствующего раздела во внутренней памяти), так и в виде образов img. Загрузочный раздел (boot) может прошивается только образом. Вне зависимости от предназначения того или иного zip'а, zip'ы для CWM можно отличить открыв архив обычным архиватором, внутри должна быть папки "META-INF".
META-INF\com\google\android\update-script - в этом файле содержится инструкция по установке, её можно открыть текстовым редактором, например "notepad++", и переписать при необходимости. Так и создают ZIP установщики для CWM. В новых ZIP в папке META-INF\com\google\android содержится два файла "updater-script" и "update-binary" - по наличию второго можно определять для старого CWM файл или для нового.
Старый CWM - это 2.*, новый - 3.* и выше.
-------------------------------------------------------------
Список некоторых команд, которые можно использовать в инструкции zip:
» команда ui_print пишет на экране установщика. Пример: ui_print("Copying files to system..."); напишет на экране установщика "Copying files to system...".
» команда format форматирует паку на устройстве. Пример format("MTD", "system"); очистит /system. Пишется всегда до команды mount.
» команда mount монтирует папки. Пример: mount("MTD", "boot", "/boot"); смонтирует папку /boot как перезаписываемую.
» команда package_extract_dir копирует файлы из архива в уже смонтированные папки. Пример: package_extract_dir("system", "/system"); скопирует все из папки system в /system.
» команда show_progress(fraction, duration) показывает прогресс-бар. Пример: show_progress(0.500000, 40);
» команда set_perm(uid, gid, mode, path) ставит permissions. Пример: set_perm(0, 0, 06755, "/system/xbin/su"); дать permissions SU этой папке.
» команда set_perm_recursive(uid, gid, mode, path) - то же, что и set_perm, только на директорию и все ее содержимое. (аналог chmod -R, chown -R, chgrp -R ) Пример: set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
» команда symlink - создает символическую ссылку (аналог ln -s ) Пример: symlink("busybox", "/system/xbin/[", "/system/xbin/[[");
» команда delete - удаляет файл. Пример: delete("/system/app/Rosie.apk") - удаляет Rosie.apk из system/app
» команда delete_recursive - удаляет директорию со всеми файлами. Пример: delete_recursive("/system/app/") - удаляет папку system/app
410 | 0 | 0 | 0 |
Для добавления комментариев необходимо авторизоваться