Зип файл обновления андроид

Зип файл обновления андроид

Последнее обновление программы в шапке: 28.12.2013

Краткое описание:
Создание update.zip через интерфейс, подпись, подпись для стоковых рекавери.

Описание:
Наверняка многие из Вас хотя-бы один раз устанавливали прошивку, модифицированный ресурс или устанавливали root на свой Android девайс. Многие часто создают или пытаются создать, какое не будь обновление, каждый раз создавая папки, кладут необходимые файлы, открывают архиватор архивируют. Пора упростить этот процесс! Встречайте мой проект Update Zip Creator!

Цели создания программы Update Zip Creator

1. Быстрая инсталляция на компьютер (2 клика)

2. Быстрый доступ к программе

3. Автоматизированный процесс в создание обновлений, патчей и ПРОШИВОК, модификаторов в виде update.zip

4. Проверка обновлений программы на наличие новых версий,

Обзор возможностей и принципы работы программы Update Zip Creator

Программа имеет англоязычный интерфейс (просьба не просить перевести на русский язык) и содержит такие пункты:

Create New Project? — создает новый проект в папке kitchen — директория system c поддиректориями и директория data c поддиректориями. Если в данной папке ( kitchen) были какие-то файлы и папки, то они будут уничтожены.

Fill Project — Переход в папку kitchen для наполнения файлами

Created update.zip — создание прошивки в виде архива для обновления, в процессе создание, все незаполненные папки будут удалены (например Вы положили в папку /system/etc файл hosts, то эта папка не будет тронута а /system/app будет удалена)

Fill ProjectCreated update.zip — автомат Fill Project и Created update.zip

Fill ProjectCreated update.zipSign Normal — автомат Fill Project и Created update.zip плюс подпись

Fill ProjectCreated update.zipSign Stock — автомат Fill Project и Created update.zip плюс подпись которая подоходит для Стоковых Recovery

Sign – подписи проектов, если у вас есть созданный проект

Check for Update new Program — проверка новых версий программы.

Опишу процесс как ее можно использовать на своем примере: у меня есть 1-ый проект называется ADB Run, который недавно научился делать ODEX прошивки, я запускаю программу Update Zip Creator и копирую odex-ированные файлы в папку Kitchen, нажимаю цифру 1 и 4 и у меня создан update.zip и прошиваю! Все очень легко!

Буду рад адекватным комментариям, предложениям и выявлению ошибок.

NEW отправка проекта на Sdcard
Создание Прошивок
Скрипты для автоматизации

Русский интерфейс: Нет

Разработчик: Шипилов Виталий aka Shipiloff69 aka Usernokiamen
Домашняя страница: androidp1.ru

Скачать: версия: 2.5.5
UpdateZip_Creator_v2.5.5.zip ( 14.91 МБ )

Сообщение отредактировал CyberBob — 14.05.14, 19:34

Источник

Зип файл обновления андроид

FAQ по созданию патча update.zip для прошивки через рекавери

Редактирование Updater-script. Информация, решения, команды, подпись патчей.
Инструкция по установке системных и пользовательских приложений с помощью recovery
Редактирование установленной прошивки и удаление системных приложений
(ключевые слова)

Напоминаю, тут не стол заказов.. Посты с просьбой собрать zip для «хххх» Recovery оффтоп

Читайте также:  Лучшие бюджетные андроиды 2021

Сообщения, не относящиеся к теме обсуждения (оффтоп), удаляются без предупреждения

  • Добавление нескольких пользовательских/системных приложений «за один клик» (одним патчем).
  • Добавление/удаление системных приложений без root прав и вспомогательных программ.
  • Изменение прошивки (замена файлов, украшательства и т.д.).
  • Обновление программы или прошивки.
  • Переразметка памяти (обсуждения в другой теме)
  • Получение root прав SuperUser, SuperSU, Magisk
  1. Установленный на телефоне кастомный рекавери (CWM/TWRP)
  2. NotePad++ (редактор с сохранением Unix формата)
  3. Zip_signer (подписчик архивов)
  4. Архиватор ZIP
  5. Файл-заготовка sample.zip (либо update-binary для ручной сборки)
    Zip_signer.rar ( 13.28 КБ )
    sample-patch.rar ( 4.77 МБ )
    update-binary.rar ( 113.25 КБ )
  6. Дополнительные версии бинарника. binary_all.rar ( 649.36 КБ )
  7. Бинарники (архив/исходники)

Исходники бинарника, основная ссылка:
https://android.google…ootable/recovery/+refs
выбираем к примеру «android-9.0.0_r18» , потом ищем папку «updater», в папке «updater» исходники бинарника

К примеру https://android.google…droid-9.0.0_r18/updater — можно глянуть все команды которые может выполнить бинари в андроид 9.0.0 (в файле install.cpp, в самом низу)

  • Подписчик для Linux: signapk.zip ( 9.24 КБ )
    + Android update-script (Пост Няшная #63580419)
  • Внимание! Патчи создаются только для мод.рекавери и результативно работают только в них. В стоковых рекавери (на аппаратах «из коробки») патчи не работают.

    Для того, чтобы установить новые системные приложения apk в Ваш аппарат, необходимо выполнить три шага:

    1. Собрать свой update.zip (из заготовки sample.zip)
    2. Подписать update.zip утилитой Zip_signer(Не обязательно!)
    3. Закинуть на флэшку и установить в аппарат через ClockWorkMod Recovery

    Эти шаги являются универсальными, т.е. подойдут для выполнения других подобных операций.

    ШАГ №1
    Собрать новый update.zip, используя «болванку» sample.zip
    Порядок использования sample.zip:

    1. Разархивировать архив sample.zip
    2. Удалить файлы подписи META-INF/CERT.RSA, CERT.SF, MANIFEST.MF (т.к. 2м шагом мы их будем создавать для своей сборки)
    3. Поместить в папку /data/app свое пользовательское приложение (xxxxx.apk)
    4. При необходимости отредактировать файл updater-script (подробнее позже)
    5. Заархивировать всё (META-INF и data) ZIP’ом без сжатия

    ШАГ №2
    Подписать update.zip с помощью утилиты Zip_signer
    Порядок использования утилиты Zip_signer:

    1. Переименовать Ваш отредактированный (т.е. уже с приложением внутри) sample.zip в update.zip
    2. Поместить его в папку с программой Zip_signer
    3. Запустить файл zip_signer.bat
    4. Дождаться, пока процесс будет завершен
    5. В папке появится файл update-finished.zip — это и есть подписанный файл
    6. Переименовать update-finished.zip по своему усмотрению (согласно логике патча)

    ШАГ №3
    Установка нового приложения

    1. Перекинуть (переименованный) update-finished.zip на флэшку и установить его в аппарат через TWRP или CWM (install zip from sdcard -> chooze zip from internal sdcard -> Yes, install sample.zip)
    2. Перезагрузить аппарат

    / )

  • Выполняем программу подписи (signapk )
  • Внимание! Патчи создаются только для мод.рекавери и результативно работают только в них. В стоковых рекавери (на аппаратах «из коробки») патчи не работают.

    Корень патча:

    • папка META-INF
    • папка источник установки приложений (system, data, sdcard, cache, sd-ext)
      Обязательные файлы:
    • META-INF/com/google/android/update-binary — системное средство запуска данного патча, также создает временную рабочую папку tmp
    • META-INF/com/google/android/updater-script — выполняемый скрипт по которому и происходят операции копирования и т.д.
    Читайте также:  Android clock widgets 4pda

    Разберем sample.zip
    Патч добавляет пользовательское приложение MyPiano в Data.

    — Выводит сообщение о завершении процесса.

    • busybox — приложение для выполнения командной строки, устанавливается с кастомным рекавери, находится в ramdisk/sbin. в кастомных прошивках зачастую добавляют его в system/xbin

    Возможные исправления для своих целей

      Изменение прав

    package_extract_dir
    Синтаксис: package_extract_dir(» «, » «);
    Копирует содержимое в . Файлы в имеющиеся в перезаписываются.
    Пример: package_extract_dir(«system», «/system»); Скопирует файлы из папки update.zip/system в /system

    package_extract_file
    Синтаксис: package_extract_file(» «, » «);
    Копирует файл в . Если файл существует, то он перезаписывается.
    Пример: package_extract_file(«test.sh», «/tmp/test.sh»); Скопирует файл test.sh из update.zip в /tmp/test.sh

    format
    Синтаксис: format(«MTD», » «);
    Форматирует раздел (см. приложение).
    Пример: format(«MTD», «system»); Полностью отформатирует /system . Примечание: форматирование удаляет данные необратимо.
    Пример 2: format(«ext4», «EMMC», «/dev/block/mtdblock5», «0», «/system»);
    Определение номера блока под спойлером «инфо и материалы».

    delete
    Синтаксис: delete(» «[, «file2», . «fileN»]);
    Удаляет файл(ы)
    Пример: delete(«/system/app/Calculator.apk»); Удалит Calculator.apk из папки system/app.

    delete_recursive
    Синтаксис: delete_recursive(» «[, «dir2», . «dirN»]);
    Рекурсивно удаляет папку(и) со всем содержимым
    Пример: delete_recursive(«/data/dalvik-cache»); Удалит папку /data/dalvik-cache со всем содержимым.

    run_program
    Синтаксис: run_program(» «[, » «, » «, » «]);
    Запускает программу(скрипт) .
    Пример: run_program(«/tmp/install_busybox.sh»); Запустит скрипт /tmp/install_busybox.sh.

    «[, . «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( , , , , «

    «])
    Рекурсивно устанавливает владельца, группу и разрешения для содержимого папки. — для папок, — для файлов.
    Пример: set_perm_recursive(0, 0, 0755, 0644, «/system/app»); Установит права для содержимого /system/app, для папок — 0755, для файлов — 0644.

    show_progress
    Синтаксис: show_progress( , );
    Продвижение прогрессбара на долю за секунд. может быть нулевым для продвижения его по командe set_progress, а не по времени.
    Пример: show_progress(0.100000, 1); Увеличит прогресс на 0.1 часть за 1 секунду

    set_progress
    Синтаксис: set_progress( );
    Устанавливает положение прогрессбара на долю , для самого последнего вызова команды show_progress.
    Пример: set_progress(0.500000);

    symlink
    Синтаксис: symlink(«

  • «, «
  • «, «
  • «]);
    Создает символическую ссылку (как ‘ln-s’).
  • пишется в формате root:path, а
  • в формате целевой файловой системы (и может быть относительным). Википедия Symlink.
    Пример: symlink(«/data/app_s», «/system/app»); Создаст символическую ссылку на папку /data/app_s для папки /system/app

    «);
    Монтирует в путь

    . должно быть название раздела, если это «MTD», или блок памяти если это «vfat»
    Пример: mount(«MTD», «userdata», «/data»);

    ui_print
    Синтаксис: ui_print(» «);
    Выводит на экран сообщение
    Пример: ui_print(«Formatting SYSTEM. «);

    sleep
    Синтаксис: sleep( );
    Пауза процесса на секунд
    Пример: sleep(5); — пауза 5 секунд, после чего код скрипта выполняется дальше.

    Читайте также:  Защита замок для андроид

    set_metadata / set_metadata_recursive
    Синтаксис: set_metadata (. );
    Устанавливает владельца, группу и разрешения (новая команда взамен set_perm для andriod 4.4.*)
    Примеры: Android update-script (Пост #32151495)
    Создание патча update.zip для прошивки через рекавери (Пост kory-vadim #81945464)

    set_metadata / set_metadata_recursive
    Синтаксис:
    set_metadata(«имя файла», «ключ1», «значение1», «ключ2», «значение2», . )
    set_metadata_recursive(«имя директории», «ключ1», «значение1», «ключ2», «значение2», . )
    Ключи:
    * uid
    * gid
    * mode (set_perm_extd only)
    * fmode (set_perm_extd_recursive only)
    * dmode (set_perm_extd_recursive only)
    * selabel
    * capabilities
    первые три (uid, gid, mode) это тоже самое что и в chmod, заполняется «uid», 0, «gid», 1000, «mode», 06754.
    для установки прошивки хватает трех ключей «uid», 0, «gid», 1000, «mode», 06754.
    Пример: set_metadata(«/system/xbin/shelld», «uid», 0, «gid», 1000, «mode», 06754, «capabilities», 0x0, «selabel», «u:object_r:system_file:s0»);
    set_metadata_recursive(«/system/xbin», «uid», 0, «gid», 2000, «dmode», 0755, «fmode», 0755, «capabilities», «0x0», «selabel», «u:object_r:system_file:s0»);

    команды для Nexus’ов
    block_image_update(«/dev/block/platform/msm_sdcc.1/by-name/system», package_extract_file(«system.transfer.list»), «system.new.dat», «system.patch.dat»);
    Синтаксис: block_image_update(«Путь к блоку раздела», package_extract_file(«список информации для патча (?) «), «образ», «патч образа»);
    я так понимаю, что так прошивается сильно сжатая прошивка (образ системы).
    Еще ifelse
    Пример: ifelse(is_mounted(«/system»), unmount(«/system»)); — если раздел сустем смонтирован дается команда на его размонтирование, если размонтиовать то нечего не происходит.

    Информация по атрибутам set_metadata и подобным командам на Android 4.4+
    Android update-script (Пост blackeangel #50803606)
    Описание откуда берутся «u:object_r:uncrypt_exec:s0» и подобные атрибуты. . .

    Пример скрипта который может удалять\перемещать\бекапить файлы и вести лог действий
    Android Script Creator (Пост Octanium #51085030)

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

    Код «перезагрузки» и «перезагрузки в рекавери» соответственно:

    Когда скрипт выполняется очень быстро (1-4 секунд) я использовал следующий код:

    Т.е. за 3 секунды прогресс бар доходит до 100% (постепенно).
    Число «3» выбрано как [время установки скрипта]+1 сек, чтоб прогресс бар при установке гарантированно двигался и не успел дойти до 100% раньше, чем скрипт установится.

    «[, . «pathtofileN»]);
    Устанавливает владельца, группу и разрешения для файла или папки, как ‘chmod’, ‘chown’, и ‘chgrp’ всё в одном
    Пример: set_perm(0, 2000, 0550, «/system/etc/init.goldfish.sh») Установит владельца, группу и разрешения для файла /system/etc/init.goldfish.sh

    «])
    Рекурсивно устанавливает владельца, группу и разрешения для содержимого папки. — для папок, — для файлов.
    Пример: set_perm_recursive(0, 0, 0755, 0644, «/system/app») Установит права для содержимого /system/app, для папок — 0755, для файлов — 0644.

    «);
    Монтирует в путь

    . должно быть название раздела, если это «MTD», или блок памяти если это «vfat»
    Пример: mount(«MTD», «userdata», «/data»);
    Пример монтирования на андроид 9-10


    Если Вам знакомо что такое Recovery, CWM,TWRP, знаете что такое кастомные прошивки и с чем их едят, то наверняка вы сталкивались с тем что прошивка или обновление не устанавливается выводя при этом ошибку «Status #».

    Источник

  • Оцените статью