Battery DoctorHungry Shark EvolutionГоворящий РыжикМоя говорящая АнджелаBio IncEvernote

Структура zip файлов для ClockworkMod

Раздел: Статьи

( 1 Голос ) 

ClockworkMod-Recovery


ZIP файлы для ClockworkMod представляют собой обычные архивы, которые отличаются тем, что внутри них содержатся файлы прошивки и инструкция по установке (папка META-INF). Это инструкция для CWM, в которой описывается какие файлы скопировать и куда, какие удалить, какие разрешения (permissions) у них выставить, и другие действия, которые требуется выполнить при установке данного ZIP'а, например очистка (wipe), установка образа img и т.д. Данные прошивки в архиве лежат по разделам точно так же, как они будут располагаться в памяти устройства. Разделы в архиве могут быть представлены как в виде папок с файлами (название папки в точности совпадает с названием соответствующего раздела во внутренней памяти), так и в виде образов img. Загрузочный раздел (boot) может прошиваться только образом. Вне зависимости от предназначения того или иного zip'а, zip'ы для CWM можно отличить, открыв архив обычным архиватором, внутри должна быть папка "META-INF".

META-INF\com\google\android\update-script - в этом файле содержится инструкция по установке, её можно открыть текстовым редактором, например "notepad++", и переписать при необходимости. В новых 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

Статьи по теме: Clockworkmod recovery (CWM)



Поиск по сайту