Меню Рубрики

Установка патча без рекавери

Установка патча без рекавери

FAQ по TeamWin (TWRP)
TWRP recovery

TWRP чаще всего прошивается при помощи fastboot или ПО для прошивки вашего устройства. Есть много других способов, но так как способы и нюансы прошивки везде свои, за инструкцией по прошивке отправляйтесь в тему по прошивке вашего устройства.

Сообщение отредактировал Displax — 09.08.18, 23:48

Сообщение отредактировал mainbord — 06.04.17, 10:03

Строение меню TeamWin Recovery

  • Install — установка любых *.zip (update.zip, gapps.zip, cyanogenmod.zip и т.д.)
  • Wipe — очистка
    • Cache — очистка раздела /cache
    • Dalvik Cache — очистка Dalvik Cache (в Android 4.4 если включен ART, то не требуется)
    • Factory Reset — очистка всех разделов
    • System — очистка раздела /system
    • External Storage — очистка внешней памяти
    • Internal Storage — очистка внутренней памяти
    • Android Secure — — очистка раздела android_secure
    • Wipe Battery Stats — очистка статистики батареи

  • Backup — слепок системы (с возможностью выбора нужных разделов)
  • Restore — восстановление системы из слепка
  • Mount — монтирование
    • Mount System — монтирование раздела /system
    • Mount Data — монтирование раздела /data
    • Mount Cache — монтирование раздела /cache
    • Mount SDCARD — монтирование раздела /SDCARD
    • Mount USB Storage — монтирование флешки, подключенной через OTG

  • Settings — настройки
    • Zip file signature verification: — проверка подписи zip файла
    • Force MD5 check for all zips: — проверка контрольных сумм для всех zip файлов
    • Use rm –rf instead of formatting: — удаление файлов вместо форматирования при очистке разделов
    • Skip MD5 generation during backup: — отключить создание контрольных сумм при резервном копировании
    • Ignore image size errors during backup: — игнорировать ошибки размера файлов при резервном копировании
    • Time Zone — служит для выбора вашей временной зоны
    • Restore Defaults — предназначена для сброса настроек к настройкам по умолчанию

  • Advanced — для продвинух
    • Copy Log to SD – копирование лога операций в файл на карту памяти.
    • Fix Permissions – исправить права доступа к файлам и разделам.
    • Partition SD Card – создание разделов на карте памяти.
    • File Manager – менеджер файлов.
    • Terminal Command – adb консоль
    • Reload Theme — перезагрузка темы(шаблона)

  • Reboot — перезагрузка устройства

,

Сообщение отредактировал Crea — 23.05.19, 08:11

В TeamWin (TWRP) — управление производится нажатием на экран по нужным функциям.

Встроенный File Manager не копирует файлы с русскими именами.

Сообщение отредактировал DeeMCee — 19.03.16, 23:43

источник

Как установить кастомное рекавери на Android

Уровень сложности: для продвинутых. Если вы хотите стать продвинутым пользователем операционной системы Android, то рано или поздно столкнётесь с необходимостью установки стороннего рекавери. Только с его помощью вы сможете выполнить такие столь необходимые операции, как создание резервных копий, установка системных обновлений или перепрошивка своего устройства другой версией операционной системы (ROM). В этой статье вы узнаете о том, как установить альтернативное recovery на примере Clockworkmod Recovery.

Прежде всего нужно знать, что каждое мобильное устройство под управлением Android имеет режим восстановления или, как его ещё называют, «recovery». Однако стандартный его вариант имеет, как правило, очень узкий перечень возможностей, которые сводятся только к сбросу к заводским настройкам и установке обновлений системы. Продвинутых пользователей такой вариант не устраивает, поэтому они устанавливают специально написанные альтернативные recovery, которые обладают куда более обширным списком функций. Одним из самых популярных проектов подобного рода является Clockworkmod Recovery (CWM) и именно он будет рассмотрен в этой статье.

Итак, с помощью Clockworkmod Recovery вы сможете:

  • устанавливать неофициальные прошивки;
  • устанавливать обновления, дополнения и фиксы операционной системы;
  • подключаться к ПК по USB в режиме съёмного накопителя
  • создать полные резервные копии всей прошивки или отдельных её частей;
  • восстановить данные из ранее созданных резервных копий;
  • подключиться к ПК по USB в режиме ADB
  • сбрасывать состояние устройства полностью к первоначальному состоянию или просто очищать данные кеша и приложений;
  • очищать статистику работы аккумулятора;
  • форматировать и создавать разделы на карте памяти.

Это далеко не полный список всех функций альтернативного рекавери, а только перечисление самых необходимых и востребованных возможностей. Как видите, устанавливать рекавери есть ради чего, так что давайте рассмотрим, как это сделать.

Вообще, способов установки Clockworkmod Recovery есть несколько, и их выбор зависит от используемого вами устройства. В этой статье мы рассмотрим два из них. Первый очень простой, и он подойдёт для самых популярных брендовых устройств, второй чуть посложнее, зато охватывает более широкий круг гаджетов.

Установка CWM с помощью Rom Manager

Этот способ состоит в использовании специальной утилиты, которая предельно упрощает процедуру прошивки нового рекавери. Она выпущена создателями CWM и доступна для бесплатной загрузки в каталоге приложений Google Play. Обратите внимание, что для использования Rom Manager вам понадобятся права суперпользователя. Что это такое и как их получить, вы можете прочитать в этой статье.

После установки и запуска программы Rom Manager перед вами появится окно, разделённое на несколько секций. Нас интересует раздел под названием «Режим Recovery». Нажмите в нём на ссылку «Recovery Setup», после чего в новом окне тапните по строке «ClockworkMod Recovery».

Теперь вам необходимо подтвердить модель своего устройства, прикоснувшись к его названию в списке. Далее придётся ещё раз подтвердить своё намерение и только после этого начнётся загрузка необходимых файлов, о чём вам ясно даст понять появившаяся полоска прогресса. По её окончанию программа попросит предоставить ей права суперпользователя и наконец-то установит вам CWM. Проверить это можно, вернувшись на первый экран Rom Manager и перезагрузившись непосредственно в рекавери с помощью кнопки «Загрузить режим Recovery».

Как видите, ничего сложного. Стоит однако помнить, что данная утилита поддерживает ограниченный круг устройств. Поэтому перед её использованием обязательно посетите тему форума, посвящённого вашему гаджету и проверьте его совместимость с Rom Manager.

источник

Установка патча без рекавери

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

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

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

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

  • Добавление нескольких пользовательских/системных приложений «за один клик» (одним патчем).
  • Добавление/удаление системных приложений без 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, в самом низу)

Для того, чтобы установить новые системные приложения 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 )
  • Внимание! Патчи создаются только для мод.рекавери и результативно работают только в них. В стоковых рекавери (на аппаратах «из коробки») патчи не работают.

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

    Код :
    ui_print(«=== Patching new application ===»);
    ui_print(» «); — выводит на экран надпись и пустую строку
    run_program(«/sbin/busybox», «mount», «/data»); — (монтирует data) открывает доступ для работы с системным разделом
    package_extract_dir(«data», «/data»); — копирует содержимое папки data в соответствующую папку на устройстве
    set_perm_recursive(1000, 1000, 0771, 0644, «/data/app»); — устанавливает владельца, группу и разрешения для содержимого папки на устройстве (инфо по коду ниже)
    run_program(«/sbin/busybox», «umount», «/data»); — размонтирование data
    ui_print(«=== Complete ===»); — выводит сообщение о завершении процесса

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

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

    1. Изменение прав
      set_perm_recursive(1000, 1000, 0771, 0644, «/data/app/»);
      можно заменить на:
      set_perm(1000, 1000, 0644, «/data/app/mypiano.apk»); — в данном случае права изменятся только лишь для добавленного приложения
    2. Добавление системного приложения
      а. корневая папка data меняется на system
      б. в коде updater-script тоже самое
      в. права назначаются через set_perm только для добавляемого приложения, для системных код 0675 (инфо по кодам ниже)
    3. Удаление приложения/файла
      В код добавляется строка подобного вида:
      delete(«/system/app/OldApk.apk»);
      При условии что busybox находится в другом месте, возможная замена
      run_program(«/sbin/busybox», «mount», «/data»); — на — run_program(«/system/xbin/busybox», «mount», «/data»);
      либо
      mount(«ext4», «EMMC», «/dev/block/mmcblk0p 5 «, «/data»); — при этом уточнить расположение блока нужного Вам раздела

    Правилами хорошего тона в написании любого кода является использование TAB’ов (отступов в начале строки).

    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»);


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

    • Signature verification failed. Installation aborted — Патчи создаются только для мод.рекавери и результативно работают только в них. В стоковых рекавери (на аппаратах «из коробки») патчи НЕ работают. Следует заменить стоковое рекавери на CWM или TWRP.
    • Status 0 — данный код ошибки возник из за того, что файл updater-script или update-binary отсутствуют в прошивке или обновлении
    • Status 255 — данный код ошибки возник из за того, что файл update-binary не подходит
      В обоих случаях лечится одинаково, нужно взять update-binary из любой прошивки для вашего девайса
    • Status 1 — данный код ошибки возник из за того, что заданы неправильные пути монтирования разделов
    • Status 4 — данный код ошибки возник из за того, что архив прошивка либо архив-обновление рассчитаны на более раннюю версию СWM (там использовался updater-script без бинарника update-binary).
    • Status 6 — а) Обозначает что updater-scpript создан не в Unix формате, поэтому при установке Android не распознает что там написано и выдает ошибку Status 6. Для того чтобы это исправить советую скачать и установить NotePad ++ и поменять формат;
      б) Синтаксическая ошибка (пропущен какой-либо символ, например «;», пропущена буква в команде)
    • Status 7 — а) Прошивка не подходит для Вашего девайса и в updater-script прописано другое название модели. Открыть updater-script и удалить строки содержавшие название чужой модели и переподписать прошивку.
      б) Через рекавери сначала смонтировать систему (mounts & storage — mount /system), затем ставить патч
      в) Решение проблемы с ошибкой STATUS 7: Sony Ericsson XPERIA neo — CyanogenMod 7 — FreeXperia PROJECT (OS 2.3) (Пост #11599821)
    • line *** col **: syntax error — Синтаксическая ошибка в строке кода №*** и символе №** (ищите где пропустили или поставили лишний символ, обычно это запятые и кавычки)
    • Symlink: some symlinks failed — Недостаточно места в системном разделе. Патч устанавливает файлы не в тот раздел/блок.
    • No space left on device — Недостаточно места в системном разделе. Патч устанавливает файлы не в тот раздел/блок.
    • format() expects 4 args got 5 либо format() expects 5 args got 4 — [функция format() ожидала Х аргумента, но получила Y] — в содержинии формата убираем либо добавляем название раздела, к примеру («ext4», «EMMC», «/dev/block/mmcblk0p6», «0» , «/system» ) . «аргумент» — те данные, которые написаны внутри скобок через запятую.
    • Ошибку не выдает, патч в мод.рекавери срабатывает, но нужное приложение не добавляется — см. раздел шапки РЕДАКТИРОВАНИЕ UPDATER-SCRIPT -> п.4, либо вручную монтировать необходимый раздел.
    • Please upgrade to latest binary либо . binary — Файл update-binary не подходит, нужно взять update-binary из любой прошивки для вашего девайса.
    • Не работает подписчик Zip_signer — проверьте java на компьютере, обновите либо установите заново.
      «java» не является внутренней или внешней командой, исполняемой программой или пакетным файлом. — ошибка в Zip_signer — установите Java, Android update-script (Пост Vulcanus #54856173)

    ps: Если в ходе ваших экспериментов часто появляются ошибки — попробуйте первым делом создать самый простой патч (взяв за основу sample.zip), а затем уже переходить на более сложные.
    Это делается в первую очередь для того чтоб избежать механических ошибок в процессе создания патча, а также проверить совместимость с update-binary, совместимость с мод.рекавери и соответствие подписи.

    Информация:

    Определение номера блока

    источник

  • Читайте также:  Установка задней лебедки уаз 469

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *