Всё о Android update-script : Смартфоны Android : Форум
SEVENI:
10.11.12, 06:58
Android update-script - это список команд для RECOVERY, выполняемых при обновлении из update.zip с помощью него можно устанавливать OTA-обновления и отдельные файлы прошивки.
update.zip содержит: скрипт (находится в каталоге update.zip/META-INF/com/google/android/updater-script) бинарик (находится в каталоге update.zip/META-INF/com/google/android/update-binary) манифест, сертификаты(это постоянные файлы, их мы не трогаем)
package_extract_dir Синтаксис: package_extract_dir("<src-dir>", "<dst-dir>"); Описание: Копирует содержимое <src-dir> в <dst-dir>. Файлы в <dst-dir> имеющиеся в <src-dir> перезаписываются. Пример: package_extract_dir("system", "/system"); Скопирует файлы из папки update.zip/system в /system
package_extract_file Синтаксис: package_extract_file("<src-file>", "<dst-file>"); Описание: Копирует файл <src-file> в <dst-file>. Если файл <dst-file> существует, то он перезаписывается. Пример: package_extract_file("test.sh", "/tmp/test.sh"); Скопирует файл test.sh из update.zip в /tmp/test.sh
format Синтаксис: format("MTD", "<root>"); Описание: Форматирует раздел <root>(см. приложение). Пример: format("MTD", "system"); Полностью отформатирует /system . Примечание: форматирование удаляет данные необратимо.
delete_recursive Синтаксис: delete_recursive("<dir1>"[, "dir2", ..."dirN"]); Описание: Рекурсивно удаляет папку(и) со всем содержимым Пример: delete_recursive("/data/dalvik-cache"); Удалит папку /data/dalvik-cache со всем содержимым.
set_perm Синтаксис: set_perm(<uid>, <gid>, <mode>, "<pathtofile>"[, ... "pathtofileN"]); Описание: Устанавливает владельца, группу и разрешения для файла или папки, как ‘chmod’, ‘chown’, и ‘chgrp’ всё в одном Пример: set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh") Установит владельца, группу и разрешения для файла /system/etc/init.goldfish.sh
set_perm_recursive Синтаксис: set_perm_recursive(<uid>, <gid>, <dir-mode>, <file-mode>, "<path>"[, ... "<pathN>"]) Описание: Рекурсивно устанавливает владельца, группу и разрешения для содержимого папки. <dir-mode> - для папок, <file-mode> - для файлов. Пример: set_perm_recursive(0, 0, 0755, 0644, "/system/app") Установит права для содержимого /system/app, для папок - 0755, для файлов - 0644.
show_progress Синтаксис: show_progress(<fraction>, <duration>) Описание: Продвижение прогрессбара на долю <fraction> за <duration> секунд. <duration> может быть нулевым для продвижения его по командe set_progress, а не по времени. Пример: show_progress(0.100000, 1) Увеличит прогресс на 0.1 часть за 1 секунду
set_progress Синтаксис: set_progress(<fraction>) Описание: Устанавливает положение прогрессбара на долю <fraction>, для самого последнего вызова команды show_progress. Пример: set_progress(0.500000)
symlink Синтаксис: symlink("<link-target>", "<link-path1"[, "<link-path2>", "<link-path3>"]); Описание: Создает символическую ссылку (как ‘ln-s’). <link-path> пишется в формате root:path, а <link-target> в формате целевой файловой системы (и может быть относительным) Пример: symlink("/data/app_s", "/system/app") Создаст символическую ссылку на папку /data/app_s для папки /system/app
mount Синтаксис: mount("<kind>", "<what>", "<path>"); Описание: Монтирует <what> в путь <path>. <what> должно быть название раздела, если <kind> это "MTD", или блок памяти если <kind> это "vfat" Пример: mount("MTD", "userdata", "/data");
ui_print Синтаксис: ui_print("<message>"); Описание: Выводит на экран сообщение <message> Пример: ui_print("Formatting SYSTEM...");
Прилагаю update.zip, который копирует содержимое каталога system/ в каталог системы system/ иначе говоря, в скрипте монтируем весь каталог и потом в update.zip закидываем файлы по соответствующим путям, как в системе.
для придирчивых: в манифесте прописываются все файлы архива, чтобы подписать update.zip используем приложенный архив Signed как пользоваться: перед установкой в телефон, перетаскиваем update.zip на Sign.cmd, получаем подписанный архив(его и используем)