Как распаковать файл прошивки samsung

Обновлено: 06.07.2024

Несколько лет назад, когда я впервые познакомился с 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, а класс, который содержал данную подпрограмму находился в \com\htc\util\contacts\BuildUtils$Customization.java

Распаковка и анализ оригинального файла

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.

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 и смотрим код:

9. Страшно, не правда ли? Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде
происходит присваивание переменной v0 значение 1, то есть TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется:

10. Самый простой способ спасти отца русской демократии, это изменить код на следующий:
, то есть поменять значение переменной с 1 на 0. То есть что бы ни было, всегда бы возвращалось значение FALSE и в JD-GUI код выглядел бы как
11. Да, метод ,будет работать. Но мы же не ищем легких путей - это раз. Во-вторых не совсем красиво. Хочется кода что-то вроде

12. А как нам получить Dalvik код данного исходного кода? Для новичков мы сделаем небольшой трюк.

Создание Dalvik кода

1. Открываем Android SDK.
2. Создаем новый проект, и в наш единственный тестовый класс пишем следующий код

3. Компилируем наш проект и затем берем собранное приложение из рабочей области.
4. Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5. Даем команду
8. Все, код для патчинга готов.

Накатывание патча

1. Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2. Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем \com\htc\util\contacts\BuildUtils$Customization.java файле.

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 доступ:

2. Спасибо что дочитали до этого пункта, осталось немного.
3. После перезагрузки ваш новый патченный код вступит в силу.
4. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.

Эпилог

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

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

Прошивать Samsung очень легко, но не зная определенных правил можно получить отличный смартфон-орехокол! Чтобы этого избежать посвящена эта статья — прошивка телефона через odin!

Содержание Статьи:

Где скачать Odin?

Прошивки бывают

Прошивки имеют расширение *.tar или *.tar.md5

Подготовка к прошивке

  1. Скачайте официальную прошивку Samsung
  2. Установите драйвер на ПК
  3. Скачайте и распакуйте программу ODIN
  4. Целостный, оригинальный шнур USB

Где скачать Прошивку Samsung

Регионы прошивок Samsung

Перевод в режим прошивки (Downloading)

После установки драйверов и скачивания прошивки необходимо перевести Samsung в режим прошивки (bootloader или загрузки):

Для флагманских смартфонов (S8, S9, S10, S20)

Для этого выключаем устройство и выполняем следующие действия:

Для других смартфонов и планшетов Samsung:

samsung9100-galaxy-s-ii-16gb-kiev_rev004

Boot Samsung Galaxy Devices into Download (2)

Для старых смартфонов (до средины 2011г.):

Выключаем смартфон/планшет и зажимаем кнопки Громкость вниз плюс кнопка Вкл/Выкл:

samsung-s5830-galaxy-acel_

после чего появится вот такая надпись:

odin прошивка samsung

2. Подсоедините Android к ПК и дождитесь пока установятся драйвера.

С6656556

Сн55se33имок

odin1

3. Запустите Odin, в левом верхнем углу должно появится окошко что устройство подключено:

4. Добавляем файлы прошивки в программу Odin

Теперь переходим к процессу прошивки, точней как все правильно настроить чтобы работало!

При прошивки возможна потеря программ и их данных (но не мелодий, картинок итп)

Прошивка Samsung в Odin

Однофайловые прошивки Samsung и многофайловые прошиваются по разному!

Если прошивка Однофайловая

Вставляем прошивку в поле AP или PDA (нажать на кнопку)

odin прошивка samsung

Если прошивка Многофайловая

odin прошивка samsung

ничего не изменяйте и не ставьте галочек в левом углу (если этого не требуется):

На этом прошивка закончена. Удачно Вам прошиться!

После прошивки Samsung не загружается?

Видео Инструкция по прошивки
смартфона Samsung через ODIN

Ошибки, которые могут возникнуть в процессе прошивки

В процессе прошивки Samsung смартфонов и планшетов могут случиться различные ошибки:

  1. Не видит устройство
  2. Процесс завис
  3. Сбой в момент прошивки
  4. Неожиданный обрыв
  5. Ошибка при старте обновления устройства

Прошивка ядер (boot.img, zImage), файлов recovery и модемов

Как прошить модем?

Если Вам говорят прошить модем, то это означает что нужно файл модема вставить в поле Phone и прошить его.

Как прошить ядро или Recovery?

Если вы прошиваете стороннее ядро или Recovery и у вас предустановлен Android 5.X.X и выше, то необходимо внести определенные изменения в настройки Android:

Прошить ядро, кернел или CWM означает что нужно файл вставить в поле AP или PDA и прошить его.

Возможные проблемы при установке Recovery

Если вдруг после того как прошили кастомное recovery, видите что recovery остается стандартным, тогда вам пригодиться данная инструкция:

  1. В ODIN снять галочку с AUTO REBOOT
  2. Прошить кастомное Recovery
  3. Выключить Android устройство (если Samsung начал просто загружаться, то повторить процедуру 1-4)
  4. Применить патч (root права)
  • Как создать TAR файл с IMG
  • Как создать TAR файл с IMG для установки Recovery на смартфон Samsung

Больше статей и инструкций читайте в разделе Статьи и Хаки Android или Прошивки Android. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!

Как прошить Андроид Samsung с помощью Odin

Как прошить Андроид Samsung с помощью Odin. Прошивать Samsung очень легко, но не зная определенных правил можно получить отличный смартфон-орехокол! Чтобы этого избежать посвящена данная статья.

Где скачать Odin?

Odin прошивка samsung — Правила

Первое правило что Вы должны знать, что категорически не рекомендуется прошивать программой Kies и вот почему:

Как прошить Андроид Samsung с помощью Odin

  1. Не полностью скачанные прошивки с сервера Samsung.
  2. Не качественная прошивка смартфона вследствие чего смартфон постоянно перезагружается (не стирается раздел /data).

Второе правило что Вы должны знать, прошивать только программой Odin

Третье правило, прошивать только с заряженной батареей на смартфоне и бесперебойным питанием на компьютере.

Четвертое правило, не выдергивать USB шнур во время прошивки Android.

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

Шестое правило, путь к прошивки не должен содержать русскоязычные папки ( C:папка не правильно, C: или С:samsung - правильно).

Прошивки бывают

Однофайловые - состоят из одного файла прошивки

Двух- Трех- Четырех- Пяти- файловые (многофайловые) — состоят более чем из одного файла

Прошивки имеют расширение * .tar или * .tar.md5

Подготовка к прошивке

1. Скачайте официальную прошивку

3. Скачайте и распакуйте программу ODIN

Где скачать Прошивку

Либо воспользуйтесь специальной утилитой которая быстро скачивает прошивку Samsung на компьютер - инструкция Samfirm.

Редактирование прошивок Андроид с помощью Samsung Root Firmware Replacer

Редактирование прошивок Андроид с помощью Samsung Root Firmware Replacer. Хотите попробовать себя в создание, редактирование прошивок на Android, тогда программа Samsung Root Firmware Replacer поможет в создание прошивок!

Коротко о программе Samsung Root Firmware Replacer и ее возможностях

С помощью данной программы Вы сможете:

  • Распаковывать прошивки Samsung
  • Одексировать прошивку
  • В автоматическом режиме встроить Root права
  • Автоматически наполнять прошивку своими файлами
  • Заморозить проект, а потом продолжить над ним работу
  • Упаковать прошивку

Необходимые компоненты и условия работы Samsung Root Firmware Replacer

2. Наличие установленной ОС UBUNTU , либо VirtualBOX c той же UBUNTU

3. Рекомендуется установить пакет nautilus-open-terminal (в терминале sudo apt-get install nautilus-open-terminal)

4. Если у вас Ubuntu x64 битная то также установить пакет sudo apt-get install ia32-libs

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

Обзор и описание функций Samsung Root Firmware Replacer старт программы

1. Перейдите в папку с программой Samsung Root Firmware Replacer, правый клик открыть в терминале

2. В терминале введите команду

./menu

3. Перед Вами откроется интерфейс программы

4. Если запустили программу первый раз то выполните — Конфигурация настроек

Работа в программе Samsung Root Firmware Replacer

Пункт Распаковать прошивку *.tar.md5 — распаковывает прошивку, для этого переместите файл в папку unpack_tar_md5, после чего все файлы извлекутся, а файл factoryfs или system переместяться в input_img

пункт Создание *.img с вашего Android (нужен Android) — позволяет создать прошивку с вашего текущего состояния Android. Для работы данного пункта необходимо иметь Android подключенный к ПК с включенной отладкой USB.

Данный пункт имеет подменю

Пункт Создание *.img с оригинальной прошивки позволяет изменять готовые прошивки, для этого перенести любой IMG файл в папку input_img.

Данный пункт также имеет свое подменю

Пример использования программы Samsung Root Firmware Replacer

В данном примере идет создание прошивки с текущего состояния Android

1. Подключить Android к ПК

2. Запустить программу

3. Выбрать пункт Создание *.img с вашего Android (нужен Android)

4. Выбрать Снять образ c Android и распаковать img

5. Выбор раздела с которого будет сниматься образ

6. Подождите 6-7 минут пока снимется образ и переместится на ПК.

Важно! На смартфоне или планшете, а также ПК, должно быть достаточно памяти чтобы снять образ. Размер образа может занимать от 2МБ до 2ГБ

7. После того как сняли образ, можно его модифировать, если это нужно (встроить Root), можете его обратно упаковать, для этого

8. Выбрать пункт Упаковка проекта в img

9. Укажите размер и название прошивки.

  • Размер раздела указывать таким образом, от размера блока поделить на 1024 и результату дописать букву M.
  • Название должно соответствовать названию, который вы использовали для изменения

11. Также не забудьте скопировать ядро с вашего Android, для этого воспользуйтесь пунктом — Снять образ c Android — boot.img или zImage

12. После всех манипуляций необходимо собрать прошивку в TAR.MD5

13 В главном меню выбрать пункт Запаковать прошивку *.tar.md5

14 Прошивка в программе Samsung Root Firmware Replacer приготовлена, можете шиться через Odin

Читайте также: