Как перепрошить Aндроид: подробная пошаговая инструкция. Как из готовой прошивки собрать свою. Android, мод прошивка своими руками

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

Разберем частный случай и начнем по порядку. Для создания кастомной прошивки андроид потребуются:

  1. Персональный или переносной компьютер, на борту которой присутствует операционная система Ubuntu и установлена Java.
  2. «Кухня» — приложение для обработки образов системных партиций.
  3. Собственно сама, подлежащая обработке прошивка Android.

Шаг 1 — установка Ubuntu

Система Ubuntu создана на базе ядра Linux и основывается на Debian, разработана компанией Canonical. Эту систему вовсе не обязательно устанавливать вместо действующей, запускать ее через эмулятор, и так далее.

Чтобы комфортно использовать все ее преимущества, достаточно воспользоваться приложением Wubi, способным установить Ubuntu под Windows. Wubi — сокраoение от Windows Ubuntu Installer.

Скачав установщик, и установив через него новую операционку, при загрузке компьютера можно зайти в ту или иную систему на выбор, и осуществлять управление ею через панель управления Виндовс.

Шаг 2 — установка Java

Java – разработанный в 1995 году язык программирования, его название, по всей видимости, взято из кинофильмов (смешной народец Джава из Звездных Войн).

На этой технологии базируется большая часть современного программного обеспечения самых разных видов. Некоторые сайты работают только при наличии Java на борту ПК.

Чтобы установить ее нужно:

  1. Войти в систему Ubuntu, и открыть Терминал при помощи клавиш Ctrl+Alt+T.
  2. В открывшемся окне для ввода/вывода информации в ОС Ubuntu воспользоваться командой sudo add-apt-repository “deb http://archive.canonical.com/ubuntu lucid partner” — позволяет подключить новый репозиторий, с которого можно загрузить Java. Для этого потребуется ввести пароль для получения прав Суперадминистратора, который задается при установке Ubuntu. Далее нужно воспользоваться следующими командами:
  3. sudo apt-get update для обновления списка источников.
  4. sudo apt-get install sun-java6-jre sun java6-plugin sun-java6-fonts для установки Java.

Шаг 3 — работа с «кухней» для создания прошивки

Программа «кухни» — это основное средство для работы с прошивками андроид. Их существует несколько видов, мы рассмотрим работу с kitchen от Dsixda.

  • Скачав необходимые файлы, нужно распаковать их в домашнюю папку в каталог kitchen.
  • Запустить Терминал, при помощи команды Is вывести на его экран список документов домашней папки. Синим цветом будут выделены каталоги, красным — файлы архивов, и так далее.
  • Открыть в папку Kitchen, перенести в каталог original_update файл обрабатываемой прошивки в любом формате.
  • Возвратиться в Терминал с открытой папкой Kitchen, ввести команду Is. Среди файлов появится Menu, его следует запустить командой./menu. Здесь откроется список пронумерованных команд, которые можно выполнять, вводя их номер в строку, и нажимая Enter.
  • Чтобы разобрать прошивку, следует ввести команду 1. Кухня после этого начнет выводить множество вопросов, на которые нужно отвечать клавишей Enter (нужные значения введены по умолчанию).

Эти действия приведут в начальное меню программы. Вернувшись в папку Kitchen, можно будет найти папку «WORKING_x_y», где x и y – дата и время ее создания.

В ней будут содержаться разобранные файлы прошивки. В папке System можно найти все системные файлы. части этих файлов приведет к изменению прошивки.

Изменив набор базовых приложений, функций, настроек, и внеся все желаемые поправки в файлы прошивки, необходимо ее собрать.

Для этого нужно вернуться в Терминал, ввести команду 99, снова ответить клавишей Enter на все возникающие вопросы. После этого программа выбросит пользователя в начальное меню, а в папке OUTPUT_ZIP будет лежать файл новой прошивки, которую затем можно устанавливать на мобильное устройство.

Вот еще несколько программ, предназначенных для этого:

  • Android SDK – среда разработки, созданная специально для работы с приложениями для Android, она позволяет проверять программный код.
  • Android Kitchen – необходима для обработки образов системных партиций в прошивке.
  • JD-GUI – декомпилятор, способный к работе с программным языком Java. Его аналог – DJ Java Decompiler.
  • smali – для работы с dalvik-кодом. Предназначена для дизассемблирования кода, backsmali позволяет произвести ассемблирование dalvik-кода.
  • dex2jar – утилита, позволяющая конвертировать исполняемые файлы, составленные на dalvik-коде.

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

Что такое прошивка?

Прошивка телефона – это процесс замены операционной системы смартфона с целью исправления неполадок. Зачастую такая мера является крайней, т.е. применяется уже тогда, когда другие способы решения проблемы не помогают. Установка новой прошивки также возможна при выходе новой ОС.

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

Итак, перепрошить свой смартфон можно с помощью специального софта:

  • CWM Recovery;
  • TWRP Recovery;
  • ROM Manager;
  • При помощи компьютера и специального набора утилит (Fastboot, KDZ Update и т.д.).

Перед началом процесса установки новой ОС обязательно позаботьтесь о сохранности данных на внутренней памяти телефона – сделайте бекап важной информации. Ниже мы рассмотрим несколько способов установки операционной системы.

CWM Recovery

Утилита ClockWorkMod Recovery имеет широкий функционал по установке новых прошивок для смартфона. Неофициальные прошивки можно установить через Рекавери, при этом не обязательно использовать именно CWM. По умолчанию, все устройства «из коробки» уже имеют стандартную версию Рекавери. Поэтому изначально вам понадобится установить CWM Recovery. Сделать это можно через ROM Manager.

Напомним, что для нормальной работы ROM Manager вам понадобятся root-права для вашего Android девайсa. Итак, после установки ROM Manager на свой смартфон выполните следующие действия:

  1. Откройте пункт «Recovery Setup». В следующем окне в разделе «Install or update Recovery» выберите «ClockworkMod Recovery»;

  1. Затем приложение автоматически определит ваше устройство. Вам остается лишь нажать на соответствующий пункт в меню;

  1. В новом окне выберите «Установить ClockworkMod». После этого начнется процесс загрузки утилиты;

  1. По завершению загрузки появится окно с запросом подтверждения root прав для нового приложения.

На этом процесс установки завершен, вы должны увидеть финальное сообщение «Successfully flashed ClockworkMod recovery!».

После установки CWM Recovery можно приступать непосредственно к самой прошивке. Перед тем, как перепрошить андроид смартфон, скачайте файл с новой версией ОС в формате.zip. Затем выполните следующие действия:

  1. Выключите аппарат и нажмите клавишу громкости вверх + кнопку включения одновременно (в некоторых смартфонах комбинация для запуска Рекавери может отличаться). В меню утилиты можно перемещаться с помощью кнопок громкости, а клавиша питания осуществляет выбор соответствующего пункта. Выполните сброс настроек в пункте «wipe data/factory reset»;

  1. Нажмите «Yes – Wipe all user data» в новом окне;

  1. Вернитесь в главное меню и выберите «install zip». Далее перейдите к соответствующей папке с файлом прошивки в «Choose zip from /sdcard».

По завершению процесса установки должно появиться сообщение «Install from sdcard complete». Опять вернитесь в главное меню и перейдите к пункту «reboot system now». После этого должна начаться загрузка установленной прошивки, иногда этот процесс может занимать до 10 минут. По завершению всех действий смартфон готов к работе.

TWRP Recovery

Установка через эту утилиту не будет иметь какого-либо влияния на конечный результат, поэтому способ прошивки зависит сугубо от ваших личных предпочтений. Для работы с TWRP Recovery сначала нужно воспользоваться официальным приложением Official TWRP App, которое установит утилиту на смартфон. Эта версия Рекавери работает с теми же.zip файлами, что и CWM.

Итак, выполните следующие действия:

  1. Скачайте нужную версию прошивки в.zip формате, поместите её в папку в памяти телефона;

  1. Откройте утилиту. Сделать это можно тем же способом, что и с CWM Recovery (выключите смартфон и нажмите соответствующую комбинацию клавиш);

  1. Сбросьте настройки системы для заводских, выбрав «Wipe» в главном меню. Чтобы начать процесс, перетащите ползунок на экране вправо;

  1. По завершению сброса настроек вернитесь в главное меню. Перейдите к пункту «Install»;

  1. В памяти устройства найдите папку с прошивкой, перетащите ползунок для начала процесса установки;

  1. После завершения установки Нажмите на «Reboot System», чтобы загрузить Android.

Опять же, процесс первой загрузки Андроид после установки прошивки может занять довольно продолжительное время.

ROM Manager

Помимо своего основного предназначения, ROM Manager также можно использовать для создания бекапа системы перед установкой прошивки. Итак, для перепрошивки выполните следующие действия:

  1. Скачайте архив с нужной версией ОС, поместите его в память телефона. В главном меню приложения выберите пункт «Установить ROM с SD карты»;

  1. Найдите соответствующий архив и кликните по нему. В новом окне выберите «Перезагрузка и установка». Рекомендуем также установить галочку напротив «Сохранить текущий ROM», так вы сможете восстановить систему если что-то пойдет не так;

  1. Подтвердите свое действие, ROM Manager автоматически начнет процесс установки прошивки через Recovery.

ROM Manager также умеет искать кастомные прошивки для устройства в Интернете. Для этого в главном меню приложения есть пункт «Скачать прошивки».

Как прошить телефон Андроид через компьютер

Чтобы перепрошить смартфон с помощью компьютера в домашних условиях, нужно воспользоваться несколькими десктопными утилитами. Ниже мы расскажем, как установить новую версию ОС через Fastboot, одну их самых популярных программ для этого. Итак, для начала вам нужно скачать архив с прошивкой и разархивировать его в папку «platform-tools», в которой находятся «ADB» и «fastboot».

Затем нужно перевести свой смартфон в fastboot mode. Для этого включите отладку по USB, перейдите в командную строку на компьютере и последовательно введите команды cd /, cd путь к файлу «adb». В нашем примере адрес – C:\Program Files (x86)\Android\android-sdk\platform-tools. После ввода всех команд телефон должен перезагрузиться в режиме fastboot.

Перед тем, как перепрошить телефон Андроид через компьютер в домашних условиях, отформатируйте все разделы девайса с помощью следующих команд:

  • fastboot erase boot;
  • fastboot erase userdata;
  • fastboot erase system;
  • fastboot erase recovery;
  • fastboot erase cache.

После ввода каждой команды нужно нажимать клавишу Enter. Далее введите команду flash-all, которая автоматически начнет установку прошивки (в папке должен находиться файл flash-all.bat). По завершению процесса вы увидите сообщение об успешной установке.

Здравствуй Хабр!

Несколько лет назад, когда я впервые познакомился с Android, я услышал от своего коллеги по работе, что Android предусматривает возможность установки модифицированных или самодельных прошивок. Признаться, тогда я был далек от этого. И даже пол года назад меня едва интересовали подобные вещи. Глубоко в душе, я был уверен: то, что делает производитель, уже предназначено для нормального использования.

Каково же было мое разочарование, когда я приобрел телефон из поднебесной, где заводскими настройками было запрещено использование Google, Skype, Facebook и других приложений. В принципе, на некоторые вещи можно было закрыть глаза, но когда мой телефон не подразумевал использование учетной записи Google - я взял с себя обещания обязательно разобраться во что бы мне это не стало.

Прошло пол года и мои кастомные прошивки с успехом используются по всему миру.

В данной серии статей пойдет речь о том, как делать reverse программирование для Android, реализовывать патчи, твики и моды.

Преамбула

И так! Давайте сперва определимся с понятиями, которые будут использоваться в данной статье. Ваше привычное понимание, при этом, может сильно отличаться.

Патч - изменение или замена существующего программного кода с целью модификации алгоритма программы.
Мод - как правило, добавление дополнительного функционала в существующий программный код без изменения алгоритма.
Твик - усовершенствование функционала программы с целью облегчения доступа к параметрам системы.

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

Подготовка среды

Обойдусь без подробных инструкций как пользоваться тем или иным программным обеспечением. Если вам интересна данная статья и вы дочитали до этих строк, то я надеюсь, что вы уже опытный пользователь и имеете опыт использования, ну или хотя бы экспериментирования в данной области. Инструкций, статей и результатов тестирования полно в открытом доступе, впрочем, как и на Хабре. Также обойдусь без описания некоторых терминов, иначе статья получится очень большой и нудной. Будем писать только по делу. Уверен, что среда у вас уже давно стоит. Если нет, то предлагаю скачать и установить.

1 . Android SDK . Это среда разработки приложений для Андроид. Для того чтобы делать модификации, нам обязательно придется проверять наш программный код. Среда разработки самое лучшее, что мы можем использовать.
2 . Android Kitchen . Данная утилита позволит вам работать с образами системных партиций официальной ну или неофициальной прошивки.
3 . JD-GUI . Декомпилятор программного кода языка Java. Сразу отмечу, что это самый лучший декомпилятор в плане удобства использования.
4 . DJ Java Decompiler . Еще один декомпилятор, или дизассемблер, как некоторые любят называть, программного кода языка Java. Не удобен в плане использования, но разбирает код, который иногда не понимает JD-GUI.
5 . smali . Еще один дизассемблер, но уже dalvik кода. smali нужен для дизассемблирования, а backsmali ассемблирования кода.
6 . dex2jar . Утилита для конвертации исполняемых файлов Dalvik кода.

Преобразование прошивки

Разумеется, прошивка, которая стоит у вас на телефон от производителя оптимизирована с целью сокращения энергопотребления. Для того чтобы прошивку можно было изменять, ее необходимо преобразовать в формат, позволяющий изменять код. Для этого используется Android Kitchen. Можно конечно и руками, как я и делал раньше, пока не нашел эту самую «кухню». Как вытаскивать системную область из телефона, устанавливать среду, делать DEODEX прошивки, вы можете прочитать в интернете. Если вам уже ничего не понятно, я думаю стоит повременить со статьей, пока вы не наберете достаточно опыта.

После того, как прошивка из оптимизированного вида (ODEX - оптимизированный dalvik исполняемый код, если мне не изменяет память) стала DEODEX (то бишь НЕ оптимизированной), все исполняемые файлы готовы к модификации.

Непосредственно модификации

Создание патчей
Как я уже и рассказывал, мой телефон изначально имел запрет на использование Google. Ну хоть ты тресни, на Playstore не зайти, учетную запись не настроить, телефонная книга толком не синхронизируется. Зачем нужен такой Android? Долго копаясь в логах (logcat) самого устройства, я нашел записи, которые говорили о том, что использование Google запрещено. Самое не удобное в Android, вы видите лог, но не знаете какое системное приложение его производит. Чтобы отыскать от куда ноги растут, мне пришлось распотрошить все системные приложения до дизассемблированного Java кода. Это заняло достаточно времени, но я до сих пор пользуюсь проделанной работой при анализе и поиске нужного кода. Этапы получения подобного инструментария следующие:
1 . Сделать DEODEX всей прошивки
2 . Вашу новую DEODEX прошивку надо будет собрать и прошить на телефон. Как это делается - тема другой статьи.
3 . Из каждого файла, находящегося в /system/framework вытащить файл classes.dex и переконвертировать в JAR посредством dex2jar.
4 . Каждый полученный JAR открыть в JD-GUI и пере-сохранить в исходный код
5 . Распаковать исходный код из архива.

В итоге у меня получилось столько папок, сколько было JAR файлов в /system/framework, и каждая папка имела структуру исходных кодов Java.
Путем несложных манипуляций, я быстро отыскал то место, которое генерировало записи в logcat.

Не будем рассматривать всю логику запрета, так как для каждого случая это отдельная история. Мне пришлось потратить пару часов, прежде чем я нашел где производятся проверки, построить в голове блок схему алгоритма и понять куда надо лезть, чтобы алгоритм чуть чуть «попортить».

Оказалось все просто. Есть подпрограмма, которая на основе заранее установленных констант, при обращении отвечала, относится ли телефон к Китаю или же нет.

Код находился в файле HTCExtension.jar , а класс, который содержал данную подпрограмму находился в

Распаковка и анализ оригинального файла
1 . Сперва нам надо взять оригинальный DEODEX JAR файл, который отвечает за нужную нам часть кода. В нашем случае HTCExtension.jar .
2 . Открыть любым архиватором и вытащить от туда classes.dex
3 . С помощью конвертера dex2jar преобразовать его в JAR файл. Команда: dex2jar.bat classes.dex
4 . Открыть полученный classes_dex2jar.jar файл в JD-GUI.
5 . Да, чаще всего JD-GUI декомпилирует код не так как он выглядит в оригинале, оно и понятно, но читать вполне можно. В исходнике мы видим, что подпрограмма проверяет параметры проекта и языковой флаг прошивки. В нашем прискорбном случае возвращается значение TRUE.
public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false; }
6 . Чтобы сделать патч, нам надо дизассемблировать сам Dalvik код. Для этого используем baksmali. Удобнее всего создать отдельную папку и положить туда три файла вместе: HTCExtension.jar , smali.jar и baksmali.jar . Даем команду java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

Это API вашей версии Android. Для JB - это 16
- папка, где находятся все фреймворки прошивки.

В моем случае это была команда
java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
7 . В нашей вновь созданной папке появилась папка HTCExtension, а в ней наши файлы с Dalvik кодом.
8 . Отыскиваем файл по пути \com\htc\util\contacts\BuildUtils$Customization.java и смотрим код:
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297:cond_13:goto_13 return v0 .line 283:cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291:cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto:goto_13 .end method
9 . Страшно, не правда ли? Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде
.prologue const/4 v0, 0x1 происходит присваивание переменной v0 значение 1, то есть TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется:
.line 297 const/4 v0, 0x0 goto:goto_13
10 . Самый простой способ спасти отца русской демократии, это изменить код на следующий:
.prologue const/4 v0, 0x0 , то есть поменять значение переменной с 1 на 0. То есть что бы ни было, всегда бы возвращалось значение FALSE и в JD-GUI код выглядел бы как public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . Да, метод,будет работать. Но мы же не ищем легких путей - это раз. Во-вторых не совсем красиво. Хочется кода что-то вроде
public static boolean isChina() { return false; }
12 . А как нам получить Dalvik код данного исходного кода? Для новичков мы сделаем небольшой трюк.

Создание Dalvik кода
1 . Открываем Android SDK.
2 . Создаем новый проект, и в наш единственный тестовый класс пишем следующий код
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . Компилируем наш проект и затем берем собранное приложение из рабочей области.
4 . Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5 . Даем команду java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Мы дизассемблировали только что собранное приложение в Dalvik код.
7 . Открываем наш файлик test.smali и видим там код
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
8 . Все, код для патчинга готов.
Накатывание патча
1 . Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2 . Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем \com\htc\util\contacts\BuildUtils$Customization.java файле.
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . Сохраняем файл. Да, забыл сказать, редактор нужен нормальный, например Notepad++ или EditPlus. Кому какой нравится.
Компиляция и сборка патченного JAR файла
1 . С помощью backsmali мы распотрошили наш JAR файл, а теперь его надо собрать обратно.
2 . Даем команду java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . В нашей папочке появляется файлик classes.dex
4 . Снова открываем HTCExtension.jar файл архиватором и заменяем в нем существующий classes.dex на наш только что созданный.
5 . Все, наш HTCExtension.jar содержит модифицированный программный код.
Замена оригинального файла на патченный
Обычно, для рядовых пользователей создаются специальные скрипты, которые через recovery заменяются. Но нам такое не интересно. Во-первых долго и нудно, во-вторых мы же опытные пользователи и можем себе позволить некоторые тонкости.

1 . Заменить текущий рабочий файл можно следующими командами, если у вас уже стоит DEODEX прошивка и имеется root доступ:

Adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@[email protected]@classes.dex reboot

1-ая команда закидывает патченный файл на флешку
2-ая команда открывает shell
3-ая команда дает root доступ
4-ая команда монтирует систему в режим чтения/записи
5-ая команда делает резервную копию файла
6-ая команда перезаписывает существующий файл новым патченным.
7-ая команда настраивает разрешения
8-ая команда удаляет кэш
9-ая команда делает перезагрузку устройства.

2 . Спасибо что дочитали до этого пункта, осталось немного.
3 . После перезагрузки ваш новый патченный код вступит в силу.
4 . Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@[email protected]@classes.dex reboot

Эпилог

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

К следующей статье я расскажу как делать Твики. Будет пример использования автоматической записи телефонных звонков родными средствами телефона. Спасибо за ваше внимание.

P.S. Если что-то не понятно или смущает, задавайте вопросы - всегда буду рад ответить и пояснить.

Андроид является операционной системой, разработанной корпорацией Google для использования на смартфонах, планшетах, электронных книгах, цифровых проигрывателях и многих других популярных девайсах.

Обычно при покупке вышеперечисленных устройств андроид уже установлен, поэтому нужно только привыкнуть к его управлению.

Однако для этой операционной системы создано множество видов вирусов, поэтому даже антивирусная программа не всегда надежно защитит от них ваше устройство.

Если же вы подхватили вирус и андроид начал неправильно работать, виснуть, глючить, выполнять посторонние команды, тут уже самое время обратиться к специалистам или в сервисный центр – скорее всего, с вероятностью восемьдесят процентов придется менять прошивку устройства (то есть переустановить таким образом работоспособность устройства).

А что делать, если срочно нужно воспользоваться девайсом, а он неисправен и нет возможности прямо сейчас обратиться к специалистам? В этом случае придется сделать прошивку самому.

Из сегодняшней статьи вы узнаете, как можно сделать прошивку на андроид.

К слову сказать, эта информация может вам пригодиться и в том случае, если вы все-таки купили устройство, на котором еще не стоит данная прошивка (например, дешевые китайские телефоны изначально продаются без нее, что сильно уменьшает их себестоимость).

Перед тем, как сделать перепрошивку для андроид, необходимо проделать некоторые действия.

Максимально зарядите девайс, чтобы ему хватило заряда до полного окончания этого процесса. Если устройство отключится во время прошивания, то вы потеряете систему и данные.
Точно определите вашу версию операционной системы и версию прошивки. Эту информацию вы можете получить, выбрав пункт меню «Настройки», а в нем уже нажмите на «О телефоне» и в открывшемся меню вы все подробно увидите.
Далее находите в интернете аналогичную версию прошивки и скачиваете ее.

Существует множество версий как официальных прошивок, так и так называемых «кастомных», которые умельцы делают сами. Некоторые самодельные кастомные прошивки могут даже исправить кое-какие ошибки в операционной системе производителя или дополнить ее новыми функциями. Однако не забывайте о том, что бесплатный сыр обычно бывает только в мышеловке, поэтому не скачивайте файлы с сомнительных источников, так как в них может уже сидеть вирус.

Прошивки существуют в разных вариациях – ZIP, TAR архивы или в виде набора файлов в папке. Это обстоятельство и определяет способ установки операционной системы, так как ставятся они по-разному.

Прошиваем, используя ZIP архив

Самым первым делом необходимо выставить root права. Вкратце опишем, что это такое и зачем необходимо осуществить данное действие.

Так как андроид делался на основе платформы Unix, то и root права были унаследованы оттуда.

Как вы знаете, каждый человек имеет определенные права в нашей жизни на разные действия. Например, одни имеют право водить самолет, а другие нет, поскольку они не обучены этому.

Так и в андроид – root открывает или закрывает право пользователя производить в операционной системе определенные изменения.

Надеемся, вкратце вам все понятно. Подробнее о том, как правильно выставить эти права, читайте в следующих наших публикациях.

Итак, шаг второй – делаете backup всей системы. Грубо говоря, это точка, до которой можно возвратиться уже после внесенных изменений. Подробнее об этом также будет посвящена отдельная статья.

Теперь вам нужно инсталлировать на гаджет программу, которая даст вам возможность восстановить систему (к примеру, ClockWorkMod). Этой же программой можно прошить ваш гаджет.

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

Как вести себя если вас окружают хамы

В чем польза и вред бананов

Привычки которые сделают вас счастливым

Приготовьте карту памяти MicroSDHC, чтобы на нее можно было записать файлы прошивки.

Сам процесс резервного копирования системы при помощи использовании программы ClockWorkMod делается так.

Запускаете программу ClockWorkMod на своем устройстве.

В ней выбираете пункт меню «Backup & restore», а в нем жмете на надпись «backup».

Подтверждаете действие («YES»).

Перезагружаете систему, выбрав пункт меню «Reboot system now».

В результате этих действий после перезагрузки устройства на его карту памяти запишется новая папка с резервной копией системы. Ее можно обнаружить, пройдя по пути clockworkmod/backup. Вы легко можете узнать эту папку по имени – оно включает в себя дату и время создания копии.

После того, как вы проделали все эти действия, можете уже собственно перепрошивать.

Записываете ранее скачанный фай ROM в карту памяти. Он по умолчанию находится в архиве с расширением ZIP.

Теперь отключаете прибор от зарядного устройства и компьютера, выключаете его и запускаете в режиме восстановления (как это делается зависит от вашего гаджета, у каждого может быть по-разному).

Переходите в меню и нажимаете на надпись «Wipe» — это действие сотрет информацию о текущем состоянии системы.

После выполнения этого действия возвращаетесь в начало меню и выбираете надпись «Install zip from sdcard» или «Flash Zip from SD Card».

Находите файл ROM с прошивкой, который располагается в архиве с расширением Zip.

Подтверждаете действие, руководствуясь инструкцией на экране.

После окончания процесса выбираете «Reboot system now» в главном меню. Гаджет перезагрузится, и можете пользоваться обновленным устройством.

Перепрошивка андроид из папки с тремя файлами

Для начала скачиваете и устанавливаете на устройство программу Mobile Odin Pro.

Копируете в одну папку три файла, в названиях которых присутствуют надписи CSC, CODE, Modem.

Запускаете программу и выбираете пункт меню «Open file».

В открывшемся окне находите и выбираете файл, в котором присутствует слово «CODE», после чего нажимаете «ОК».

Проверяете, чтобы информация присутствовала во всех разделах.

Ждете окончания процесса.

Видео уроки

Надоела стандартная официальная прошивка и хочешь удивить друзей чем-то необычным на твоем смартфоне? Или, возможно, тебе, как пользователю, не совсем нравится результат использования кастомных версий? Узнай, как сделать прошивку на Андроид самому и настроить ее под себя.

Подготовка компьютера

Сначала желательно удостовериться в том, что система компьютера настроена должным образом. Оптимальные требования к ней такие:

  • ОС Linux (в идеале должна быть UBUNTU);
  • для Андроид 2.3 и выше нужна 64-разрядная система;
  • минимальный объем свободного пространства – 10 Гб, а в идеале – 15 Гб (это нужно для хранения исходников и дальнейших изменений с ними).

Если эти требования выполнены, нужно заняться установкой пакетов (на примере Cyanogenmod 9):

  1. Проходим авторизацию в UBUNTU.
  2. Запускаем терминал.
  3. Устанавливаем язык программирования Java.
  4. В терминале устанавливаем пакеты.
  5. На компьютере создаем папки: mkdir -p ~/bin (прописать точно также) и mkdir -p ~/android/*** (вместо *** можно прописать любое название латиницей).
  6. Устанавливаем сервер-хранилище, куда будем загружать исходники.
  7. Перегружаем ПК.
  1. Сначала переходим в папку, которая была создана ранее для их хранения: cd ~/android/***/.
  2. Загружаем исходники.

После этого нужно подождать завершения загрузки, это займет несколько часов. Причем в случае, когда произошел обрыв сети или любая другая ошибка, можно повторно вбить команду repo sync -j16, после чего процесс восстановится с места обрыва.

Сборка

Рассмотрим ситуацию, в которой cyanogenmod-м поддерживается устройством на официальном уровне. В этом случае действия следующие:

  1. Хотя прошивка и представляет собой полный «нуль» в самом начале, некоторые библиотеки не выйдет прошить, т.к. разработчиками не были поставлены исходники. Потому для копирования проприетарных файлов (являющихся чьей-то собственностью) нужно подключить гаджет к компьютеру при помощи кабеля и в терминале прописать команду cd ~/android/system/device/марка/модель/ ./extract-files.sh.
  2. Теперь следует загрузить RomManager (данное программное обеспечение загружается собранным), для чего надо прописать ~/android/system/vendor/cm/get-prebuilts.
  3. После этого остается только сам процесс: . build/envsetup.sh && brunch модель.

В том случае, когда cyanogenmod-м не поддерживается на официальном уровне, первым действием нужно будет создать «дерево файлов», после чего выполнить вышеуказанные действия.

Изменение уже готового файла

Выбор основы

Чтобы создать собственную прошивку из уже готовой, нужно сначала ее найти. Для этого необходимо найти в сети файл, в названии которого будет указано, что прошивка чистая (например, «Pure Android 3.0 ROM»). Она может быть любой, но в таком случае появится необходимость отменять изменения, совершенные автором.

После того, как файл скачан, его нужно распаковать.

Структура прошивки

Все те папки и файлы в них, которые пользователь увидит после распаковки, являются составляющими операционной системы. Их состав и порядок зависит от того, что хотел получить в итоге автор. При этом в любом случае среди всех составляющих 3 будет обязательно:

  • meta-inf – вся информация о прошивке, в которую входят сертификаты, контрольные суммы и скрипты;
  • boot.img – образ загрузки;
  • папка system – ОС без ядра с предустановленными приложениями, файлами настроек и прочим.

Установка ПО

Чтобы изменить уже имеющийся набор программ, нужно зайти в /system/app. И теперь в ней можно делать следующее:

  • просто удалить папку с ненужной программой;
  • вставить нужный софт;
  • установить системные приложения Linux, например, Midnight Commander, которые нужно будет сначала распаковать.

Визуализация

Но самая частая причина, по которой пользователю хочется создать собственную прошивку, это желание изменить внешний вид оболочки. Настройки графики хранятся в одном файле framework/framework-res.apk. Его нужно распаковать, после чего появится одноименная папка, в которой понадобятся 2 подпапки:

  • res/drawable-* — элементы графики с разрешением.png;
  • res/layout-* — элементы графики с разрешением.xml.

После того, как владелец устройства на базе Андроид изменил все, что ему было нужно, остается собрать файл графики обратно.

Для изменения анимации при загрузке устройства нужно сделать следующее:

  • распаковать архив с файлами этой анимации;
  • заменить имеющиеся изображения на нужные;
  • запаковать обратно.

Дополнительные настройки

При создании собственной прошивки можно воспользоваться следующими командами для улучшения производительности системы:

  • ro.media.enc.jpeg.quality=100 – при этом качество загружаемых изображений в формате.jpeg будет повышено;
  • debug.sf.nobootanimation=1 – при загрузке устройства будет отключена анимация;
  • ro.mot.buttonlight.timeout=0 – после включения экрана сразу будут подсвечиваться кнопки управления.

Эти и многие другие строки размещаются в system/build.prop.

Процесс сборки

После всех манипуляций манипуляции с будущей прошивкой, ее нужно превратить обратно в архив, для чего прописываем $ cd ~/rom; zip -r my-rom.zip *.

Следующим шагом будет указание названия архиву. Затем нужно переместить на флэшку, а само устройство отключить, что необходимо для входа в Recovery и заливки новой прошивки.

Но перед прошиванием следует обязательно сделать дамп (резервную копию) той прошивки, которая сейчас установлена на телефоне или планшете. Это нужно потому, что в случае ошибки при создании можно превратить устройство в кирпич или оно может работать нестабильно, а потому понадобиться вернуть его в предыдущее рабочее состояние.

Android Kitchen

Самым же простым способом является вход на сайт Android Kitchen. Здесь даже непрофессионал может сам создать прошивку на основе готового файла, при этом выбирая постепенно те или иные настройки иконок, громкости, шрифтов, экрана и многого другого.

После того, как выбор изменений был сделан, пользователю остается только выбрать версию прошивки, которая используется в данный момент (здесь важно не ошибиться), во вкладке «Summary» еще раз проверить список и нажать на кнопку «Submit Work to Kitchen». Теперь нужно дождаться своей очереди на создание архива с файлом прошивки, которую потом можно будет залить через Recovery.




Top