» Мануалы

Модификация updater-script

Файл updater-script содержит полный сценарий установки прошивки на Android-устройства. В него можно добавить или удалить сценарии по добавлению или удалению различных файлов и папок, отображению информации во время процесса прошивания девайса, производить рутирование прямо во время прошивания и так далее. В данном материале мы разберемся с основными командами, которые поддерживает данный файл.

Находится updater-script по пути:

META-INF/com/google/android

Открывать его можно любым текстовым редактором, но настоятельно рекомендуется использовать программу Notepad++. Теперь давайте разберемся с полным списком команд, которые поддерживает updater-script.

package_extract_dir

Синтаксис: package_extract_dir(«откуда»,»куда»);

Копирует содержимое папки. Файлы, уже имеющиеся в такой же папке, перезаписываются.

Пример: package_extract_dir(«dir1″,»/dir1»); Производит копирование файлов из папки update.zip/dir1 в /dir1

package_extract_file

Синтаксис: package_extract_file(«источник»,»куда копировать»);

Копирует указанный файл. При совпадении имен, файл перезаписывается.

Пример: package_extract_file(«file.sh»,»/dir1/file.sh»); Копирует file.sh из update.zip в указанный путь /dir1/file.sh

format

Синтаксис: format(«MTD»,»раздел»);

Форматирует указанный раздел.

Пример: format(«MTD»,»dir1″); Полностью форматирует раздел dir1. Внимание! Данные при форматировании удаляются безвозвратно!

delete

Синтаксис: delete(«»[, «file1″,…»fileN»]);

Удаляет файл (файлы).

Пример: delete(«/dir1/program.apk»); Удаляет файл program.apk из dir1.

delete_recursive

Синтаксис: delete_recursive(«»[, «dir1″,…»dirN»]);

Рекурсивно удаляет папку или папки со всем их содержимым.

Пример: delete_recursive(«/dir1/data»); Производит удаление директории /dir1/data со всем её содержимым.

run_program

Синтаксис: run_program(«»[,»»,»»,»»]);

Запускает программу (программы) или скрипты.

Пример: run_program(«/dir1/install_prog.sh»); Запускает скрипт, расположенный по пути: /dir1/install_prog.sh

set_perm

Синтаксис: set_perm(, , , «»[, …»путь_к_файлу»]);

Команда устанавливает группу, владельца и разрешения для папки или файла, аналогично «chmod», «chown», и «chgrp», но сразу всё в одном.

Пример: set_perm(0, 2000, 0550, «/dir1/tmp/init.test.sh») Установит владельца, группу и разрешения для указанного файла, расположенного по пути: /dir1/tmp/init.test.sh

set_perm_recursive

Синтаксис: set_perm_recursive(, , , ,»»[, …»»])

Рекурсивно устанавливает разрешения, владельца и группу для папки со всем её содержимым. включая другие папки и файлы.

Пример: set_perm_recursive(0, 0, 0755, 0644, «/dir1/tmp»); устанавливает права для всего содержимого папки /dir1/tmp, для папок, соответственно, — 0755, а для файлов — 0644.

show_progress

Синтаксис: show_progress(, )

Устанавливает прогресс полоски выполнения на определенную долю за указанное количество секунд. Значение может быть равно нулю для продвижения его не по времени, а используя команду set_progress.

Пример: show_progress(0.200000, 3); прогресс будет увеличиваться на 0.2 часть за 3 секунды.

set_progress

Синтаксис: set_progress()

Команда устанавливает определенное положение прогресс-бара.

Пример: set_progress(0.700000); полоса выполнения будет заполнена на 0.7 часть.

symlink

Синтаксис: symlink(«»,»Создает символическую ссылку одной директории на другую (как «ln-s»). Первое значение пишется в формате root:path, а второе – в формате целевой файловой системы (которое, соответственно, может быть относительным)

Пример: symlink(«/dir1/test_s», «/sys1/test»). Будет создана символическая ссылка на директорию /dir1/test_s для папки /sys1/test

mount

Синтаксис: mount(«»,»»,»»);

Монтирует указанную директорию по указанному пути. Соответственно, должно быть название раздела, если это «MTD», или блок памяти – если это «vfat».

Пример: mount(«MTD», «testdir1», «/dir1»);

unmount

Синтаксис: unmount(«»);

Демонтирует (отключает) указанную директорию.

Пример: unmount(«/dir1»);

ui_print

Синтаксис: ui_print(«»);

При помощи данной команды на экран устройства выводится указанное сообщение.

Пример: ui_print(«Currently formatting DIR1…»); на экране будет отображено сообщение «Currently formatting DIR1…».

Павел
2017-08-08 08:56:14
День добрый,подскажите а за пароли что отвечает и как изменить?