Как прошить телефон bin прошивкой
Мною разработаны средства под различные типы чипов (микроконтроллеров), имеющих различие в строении образов. По мере поступления информации я буду выкладывать ее Вам в соответствующем разделе. В разделе "Дополнительная информация" будут находиться ссылки на заметки (статьи), ОБЩИЕ для всех чипов.
Консольные средства для обработки прошивок и отдельных образов- - на основе Perl/Python скриптов, выполняющие несколько операций;
- - отдельные приложения, выполняющие, как правило, одну-две функции.
- стандартное, предназначенное для обработки одного экземпляра прошивки или набора образов устройства. На сегодня это версия RKwinTools_v1.4.0;
- Pro, позволяющее работать параллельно с несколькими прошивками, используя принцип проектов. На сегодня это версия RKwinTools_Pro_v1.1
- добавлена обработка разделов second, dtb образов Boot и Recovery;
- обрабатываются образы Boot и Recovery, созданные архиваторами gzip, lzma, xz;
- добавлена возможность выбора образа из списка при обработке;
- при сборке параметры образов выбираются из файла конфигурации (cfg/*.cfg);
- расширены функции работы через ADB.
- выбрать исходный файл ROM-прошивки для обработки из списка имеющихся;
- распаковать и запаковать ROM-прошивку в формате "RKFW" и "RKAF" с автоматическим определением формата;
- распаковать образы Boot, Recovery. Поддерживаются форматы как "ANDROID", так и "KRNL" с автоматическим определением;
- запаковать образы Boot и Recovery с выбором типа конечного образа (KRNL или ANDROID);
- распаковать и запаковать образ Kernel;
- распаковать и запаковать образ System типа jaffs и ext2-ext4 ;
- преобразовать сжатый образ System типа sparse в ext4;
- инициировать ROOT в образ system;
- работать с устройством через ADB;
- подсчитать контрольную сумму файла в формате md5.
- читать руководство пользователя.
- удалено копирование настроек при отказе во время сборки ROM.
- исправлена ошибка при разборке образа system типа ext4.
- добавлена сборка образа system типа ext4.
- добавлен пункт меню для получения информации об образе system (9 - info system).
- создать новый проект;
- открыть проект, выбрав его из списка уже существующих;
- сохранить проект в архив;
- восстановить проект из архива;
- удалить проект.
Используйте ее для общего ознакомления со средством, т.к. такая же находится в общем архиве.
Для варианта Pro: README_Pro_1.2.rar ( 5.23 КБ )
или в pdf формате RKwinTools_Pro_1.1.pdf ( 580.36 КБ )
Для стандартного варианта: README_133.rar ( 7.58 КБ )
Стандартный вариант: RKwinTools_v133.rar ( 5.86 МБ )
Программа редактирования параметров файла Parameter перенесена в тему Разметка памяти мобильных устройств. Теория и практика.
- распаковать и запаковать образы Boot/Recovery с учетом секций second и dtb (дерево устройств);
- производить сжатие/распаковку при помощи gzip, lzma, xz ;
- распаковать и запаковать образы, содержащие файловые системы как jaffs типа, так и ext2-ext4;
- провести конвертацию из sparse в ext4;
- перед обработкой выбрать файл без его переименования.
- распаковать и запаковать образы Boot/Recovery с учетом секций second;
- производить сжатие/распаковку при помощи gzip, lzma, lz4, lzop, xz ;
- распаковать и запаковать образы, содержащие файловые системы как jaffs типа, так и ext2-ext4;
- провести конвертацию из sparse в ext4;
- перед обработкой выбрать файл без его переименования.
Свежая версия для Win 7 MTwinTools_v0.7.7z ( 3.43 МБ )
Свежая версия для ХР ( благодаря пользователю ANT__)MTwinTools_v0.6.1_winxp.rar ( 4.16 МБ )
Предыдущие версии
- Windows 7 и выше;
- установка пакета .NET 4.0
- разобрать/собрать прошивку *.qsb;
- собрать "кусочные" файлы (типа system_0.img, cache_8.img) в целый;
- разобрать/собрать boot/recovery. Поддерживаются образы x64, сжатые следующими архиваторами:
- gzip;
- lz4;
- lzma;
- lzop;
- xz; - посмотреть разметку прошивки.
Инструкция пользователя (такая же имеется и в архиве со средством):Readme_LenovoWinTools_v1.2.7z ( 5.24 КБ )
- распаковать и запаковать образы Boot.img и Recovery.img типа "multi-file", "ramdisk", "script", "kernel";
- распаковать и запаковать образ System.img типов yaffs, yaffs2, ext2-ext4;
- конвертировать образ System.img типа sparse в ext4 (аналог simg2img);
- добавить к файлам контрольную сумму в формате md5.
Приложение для разборки прошивки типа .APP
AppImageMaker.rar ( 6.57 КБ )
Для запуска используется командная строка вида:
sourceFile - полный путь и название файла прошивки. Например, d:\app\SR_APP_Update.app
destPath - полный путь к папке назначения, в которую будет произведена распаковка прошивки, например, f:\qwerty
key - ключ для получения дополнительной информации. Он может быть следующим:
/h, /?, --help - выводит справочную информацию о приложении.
Если никакой ключ не введен, то производится распаковка файла прошивки. Для этого должны быть введены имя с полным путем к файлу и путь к папке назначения. При отсутствии эта папка создается сама, а при наличии в нее перезаписываются имеющиеся там файлы.
Например, если команду ввести следующим образом:
AppImageMaker d:\app\SR_APP_Update.app f:\qwerty
то файл SR_APP_Update.app из папки d:\app будет распакован в папку f:\qwerty.
Если не введен путь к конечной папке (папке назначения), то она создается в той же папке, где находится приложение AppImageMaker, с именем "update" по-умолчанию. Например, строка вида:
AppImageMaker d:\app\SR_APP_Update.app
распакует указанный файл в папку с именем update, созданную рядом с приложением AppImageMaker.
Если не указать также путь и имя файла прошивки, то по-умолчанию для прошивки будет использоваться имя "Update.app". Например, если ввести строку вида:
AppImageMaker
то приложение будет искать файл с именем "Update.app" в папке рядом с ним. При наличии такого файла он будет распакован в тут же созданную папку "update".
Для особо любознательных есть еще один ключ "/crc". По нему в папку назначения параллельно с распакованными файлами прошивки будут записываться контрольные суммы этих файлов, найденные в прошивке в заголовках этих файлов, с расширением ".crc".
Приложение для разборки прошивок вида BIN, DZ, KDZ - LGwinTools_v1.03.7z ( 93.78 КБ )
- /if:in_name (-if:) - имя файла прошивки для разборки, обязательный параметр;
- /ip:in_path (-ip:) - имя папки с файлами прошивки для сборки, обязательный параметр;
- /op:out_path (-op:) - папка выгрузки файлов при разборке или прошивки при сборке, обязательный параметр;
- /di:pack (-di:) - режим работы. При pack - сборка прошивки, при отсутствии ключа разборка (по-умолчанию).
- /h (-h, --help) - вызов справки.
2.
У средства появились последователи, которые выпускают "модифицированные" под свои нужды варианты: And_pda
Примечание. Так как тема посвящена средствам, работающим исключительно под Windows, все посты, рекламирующие обработку Linux-средствами, будут безжалостно удаляться как несоответствующие основной теме и мешающие работе. Это не означает что я противник Linux, но для него существует море других тем.
Полезная вещь - обратная связь! Причем не только в технике.
После общения с некоторыми пользователями средства RKwinTools я решил выложить инструкцию по прописыванию пути к папке в переменных среды Windows.
Инструкция по добавлению пути в переменные среды Windows
ВНИМАНИЕ. Внесенные изменения начнут действовать без перезагрузки компьютера при следующем вызове командной строки или запуске файлового менеджера.
Итак,
Операционная система Windows XP x86.
На рабочем столе выбираем ярлык «Мой компьютер», кликнув на нем правой кнопкой мыши, вызываем контекстное меню и выбираем в нем команду «Свойства». Откроется окно «Свойства системы».
Выбираем вкладку «Дополнительно».
Внизу слева нажимаем кнопку «Переменные среды». Откроется окно "Переменные среды".
В области «Системные переменные» находим переменную «Path» и, выделив ее, нажимаем на кнопку «Изменить».
В поле «Значение переменной:» в конце дописываем путь к необходимой папке, отделяя его от существующего значения «точкой с запятой». Например, «;D:\Cygwin».
Нажимаем «ОК» для записи пути и последовательно закрываем все открытые окна.
Операционная система Windows 7 x86.
Вариант 1.
По пути "Пуск"->"Компьютер", нажимаем правую кнопку мыши для выбора контекстного меню и выполняем команду "Свойства".
В открывшемся окне "Просмотр основных сведений о Вашем компьютере" выбираем слева пункт меню "Дополнительные параметры системы".
В открывшемся окне"Свойства системы" справа внизу нажимаем кнопку "Переменные среды".
В окне"Переменные среды" в области "Системные переменные" нужно найти и выделить переменную "Path", а затем нажать кнопку "Изменить. ".
В появившемся окне «Изменение системной переменной», в поле "Значение переменной" ДОПИСЫВАЕМ В КОНЕЦ путь к только что установленной папке Cygwin, например такой: ";Е:\Cygwin", ОБЯЗАТЕЛЬНО отделив его от существующего значения «точкой с запятой», и нажимаем кнопку "ОК" для сохранения значения.
Последовательно закрываем все остальные открытые окна, тоже нажимая кнопку "ОК", кроме окна просмотра основных сведений, которое закрывается "крестиком".
Вариант 2.
В любом свободном месте рабочего стола нажимаем правую кнопку мыши для вызова контекстного меню и выбираем команду «Персонализация». В открывшемся окне слева выбираем пункт меню «Панель управления - домашняя страница».
Откроется окно "Панель управления" для проведения настроек параметров Вашего компьютера.
В нем необходимо выбрать настройку «Система» и Вы попадете в окно просмотра основных свойств о Вашем компьютере, т.е. "Окно сведений о системе".
Дальнейшие действия описаны в пункте «Вариант 1».
P.S. Каждому ПО требуются средства отладки.
В моем случае тишина (не ошибки, не вывода в лог), - а в ответ тишина.
Просьба подумайте над этим вопросом.
Для начала я посмотрю устройство образа, а потом посмотрим, что нужно и можно сделать.
В ныне существующем готовом виде отвечу - НЕТ. не сможет.
А вообще - ничего невозможного нет.
Несколько лет назад, когда я впервые познакомился с 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. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
Эпилог
Да, кому-то показалось данная статья слишком специфичной, кому-то мало-понятной, а кому-то бесполезной. Я специально обошелся без углубленной детализации и иллюстраций как это все выглядит в живую и на практике. Во-первых, данный труд будет неблагодарный и только породить еще больше вопросов. Во-вторых, не хочу видеть армию пользователей на форумах, которые жалуются, что убили свой телефон.
К следующей статье я расскажу как делать Твики. Будет пример использования автоматической записи телефонных звонков родными средствами телефона. Спасибо за ваше внимание.
Несмотря на большое разнообразие MTK-устройств, процесс установки программного обеспечения через приложение SP FlashTool в целом одинаков и осуществляется в несколько шагов. Рассмотрим их подробно.
Все действия по прошивке устройств с помощью SP FlashTool, в том числе выполнение нижеизложенных инструкций, пользователь осуществляет на свой страх и риск! За возможное нарушение работоспособности аппарата администрация сайта и автор статьи ответственности не несут!
Подготовка устройства и ПК
Для того, чтобы процедура записи файлов-образов в разделы памяти устройств прошла беспроблемно, необходимо подготовиться соответствующим образом, проведя определенные манипуляции, как с Андроид-девайсом, так и с ПК или ноутбуком.
Установка прошивок
С помощью приложения SP FlashTool можно осуществлять практически все возможные операции с разделами памяти устройства. Установка прошивок – это основная функция и для ее выполнения в программе предусмотрено несколько режимов работы.
Способ 1: Download Only
-
Запускаем SP FlashTool. Программа не требует установки, поэтому для ее запуска просто дважды кликаем по файлу flash_tool.exe, расположенному в папке с приложением.
Внимание! Загрузка неверного скаттер-файла в SP Flash Tool и дальнейшая запись образов с использованием неправильной адресации разделов памяти может привести к повреждению устройства!
Способ 2: Firmware Upgrade
Процедура работы с MTK-устройствами под управлением Android в режиме «Firmware Upgrade» в целом аналогична вышеописанному методу «Download Only» и требует выполнения похожих действий от пользователя.
Отличием режимов является невозможность выбора отдельных образов для записи в варианте «Firmware Upgrade». Другими словами, в этом варианте память устройства будет перезаписана в полном соответствии с перечнем разделов, который содержится в скаттер-файле.
В большинстве случаев этот режим используется для обновления официальной прошивки в целом рабочего аппарата, если пользователю требуется новая версия ПО, а другие методы обновления не работают, либо неприменимы. Также может применяться при восстановлении девайсов после краха системы и в некоторых других случаях.
Внимание! Использование режима «Firmware Upgrade» предполагает полное форматирование памяти аппарата, следовательно, все данные пользователя в процессе будут уничтожены!
Процесс прошивки в режиме «Firmware Upgrade» после нажатия кнопки «Download» в SP FlashTool и подключения устройства к ПК состоит из следующих этапов:
- Создание резервной копии раздела NVRAM;
- Полное форматирование памяти девайса;
- Запись таблицы разделов памяти устройства (PMT);
- Восстановление раздела NVRAM из бэкапа;
- Запись всех разделов, файлы-образы которых содержатся в прошивке.
Действия пользователя для осуществления прошивки в режиме «Firmware Upgrade», повторяют предыдущий способ, за исключением отдельных пунктов.
-
Выбираем скаттер-файл (1), выбираем режим работы SP FlashTool в раскрывающемся перечне (2), нажимаем кнопку «Download» (3), затем подключаем выключенный аппарат к порту USB.
Способ 3: Format All + Download
Режим «Format All+Download» в SP FlashTool предназначается для выполнения прошивки при восстановлении девайсов, а также используется в ситуациях, когда другие вышеописанные методы неприменимы либо не срабатывают.
Этапов выполнения прошивки в рассматриваемом режиме всего три:
- Полное форматирование памяти аппарата;
- Запись таблицы разделов PMT;
- Запись всех разделов памяти устройства.
Внимание! При манипуляциях в режиме «Format All+Download» стирается раздел NVRAM, что приводит к удалению параметров сети, в частности, IMEI. Это сделает невозможным совершение звонков и подключение к сетям Wi-Fi после выполнения нижеизложенных инструкций! Восстановление раздела NVRAM при отсутствии бэкапа достаточно трудоемкая, хотя и возможная в большинстве случаев процедура!
Шаги, необходимые для проведения процедуры форматирования и записи разделов в режиме «Format All+Download» аналогичны таковым в вышеописанных методах для режимов «Download» и «Firmware Upgrade».
-
Выбираем scatter-файл, определяем режим, нажимаем кнопку «Download».
Установка кастомного рекавери через SP Flash Tool
На сегодняшний день широкое распространение получили так называемые кастомные прошивки, т.е. решения, созданные не производителем конкретного девайса, а сторонними разработчиками или рядовыми пользователями. Не углубляясь в преимущества и недостатки такого способа изменить и расширить функционал Андроид-девайса, стоит отметить, что для установки кастомов в большинстве случаев требуется наличие в аппарате модифицированной среды восстановления – TWRP Recovery либо CWM Recovery. Практически во все MTK-девайсы этот компонент системы можно установить с помощью SP FlashTool.
-
Запускаем Флеш Тул, добавляем scatter-файл, выбираем «Download Only».
Стоит отметить, что рассматриваемый способ установки рекавери через SP FlashTool не претендует на роль абсолютно универсального решения. В отдельных случаях при загрузке образа среды восстановления в аппарат могут потребоваться дополнительные действия, в частности, редактирование scatter-файла и другие манипуляции.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Помогла ли вам эта статья?
Еще статьи по данной теме:
После включения _SP_Flash_Tool_v3.1308.0.125 и Download Only говорит что
для всех
Image *** checksum failed! Checksum reference value (xxxxxxx) in config ini file.
please re-fill correct checksum values in Checksum.INI under tool folder and re-load scatter file again!
я скачивал A1000LF_A412_01_05_130705_USER_DCC из разных источников, все тоже самое
не вижу ссылки на скачивание программы
Здравствуйте, Аноним. Ссылки на загрузку того или иного софта мы размещаем в большинстве случаев в статьях-обзорах приложений, а не в инструкциях по их применению. Вот ссылка на материал об SP Flash Tool, откуда вы можете перейти к скачиванию архива с прошивальщиком.
Здравствуйте. У меня на lenovo p780 слетела прошивка. Что посоветуете поставить?
А как быть мне , у меня смартфон без названия, на основе mediotek 6572
Аппарат полностью работоспособен , просто у него стоит андроид 4.4.2 я хотел что-то новое в него поставить.Определял по данным о телефоне , написано смартфон, подключаю программу AIDA , в разделах производитель, модель, бренд, плата, устройство , везде написано смартфон , остальное все соответствует и работает
Спасибо, оставим эту затею пожалуй, мне он достался просто так и я думал как-то с ним по работать, тогда спасибо за ответ и аккумулятор мощный -4000 стоит, ну да ладно , будет в запасе
Хочу перепрошить свой телефон Ark Benefit M8 на кастомную прошивку
через Flash Tool . Прошивку нашел, а вот непонятно , где взять кастомную
recovery для телефона ? Она должна быть только для этого телефона
и только для определенной кастомной прошивки ?
Есть возможность дать ссылку на recovery ?
Большое спасибо за ваш ответ.
У меня два телефона Ark Benefit M8 (обычные без QHD экрана) со стоковыми прошивками V010 и V011, взятыми с сайта официальной поддержки Ark Device
Но прошивки содержат вирусы , при этом постоянно подключается платный контент (услуги), ну и реклама с играми. DrWeb показывает 9-13 вирусных файлов в системе.( Помогает AdGuard, но не всегда)
Встал вопрос установки кастомной прошивки. Я выбрал Андроид 6.0
Маршмаллоу ( старая, но должна работать) razorg-ota-mob30x-0b5aa9df.zip
Вот осталось найти нужный Recovery TWRP. А вот еще вопрос. Нужно ли устанавливать Super Su ?
Еще раз спасибо Евгений
Вдогонку.
Для меня лучшим вариантом было бы установить
прошивку v008 (с которой продавался телефон),говорят она без вирусов
Но ,интересно ,мне не удалось ее найти ,она исчезла со всех ссылок
и в офиц.сервисе ее нет.
Благодарю вас за ответ на мою просьбу.
Буду надеется ,что у меня получится
Еще раз спасибо.
Здравствуйте! Помогите пожалуйста найти прошивку для смартфона Samsung SM-G350E — пакет для установки через SP Flash Tool.
Здравствуйте, Антон. Вы неверно определили походящий для прошивки смартфона указанной модели инструмент. Для работы с системным ПО Samsung Galaxy Star Advance Duos SM-G350E, как и в случае со всеми другими Android-девайсами производителя, используется программа ODIN, но не SP Flash Tool!
1. Пакет, содержащий компоненты многофайловой прошивки Samsung SM-G350E, вы можете скачать по ссылке:
2. О том, как устанавливать системное ПО на Андроид-устройства Самсунг, рассказано в следующей статье:
Понял Вас спасибо.
Нашел. Ошибка появляется после установки новых приложений, и вроде как остаётся навсегда эта ошибка(?)
Что делать, если в аппарате несъемный аккумулятор?
Здравствуйте, дело в том, что при подключении через USB смартфон определяется, а при подключении его в отключенном состоянии через SP Flashtool ничего не происходит.
Здравствуйте ! У меня аппарат BlackFox 541A модель BMM541A , кирпич . Пытался его оживить через флештул но ничего не получилось . Рековери прошивается а все равно кирпич ничего не запускается . Прошивки на данный аппарат у меня нет . Что можно сделать ? Где найти прошивку я не знаю .
Привет всем ! Нашел прошивку на BMM541A и оживил кирпич !
Здравствуйте! Помогите мне найти прошивку для моего смартфона LG D686.
если можно, то на мою почту
Здравствуйте.телефон BQ velvet прошил по инструкции,прошивка закончилась удачно,но телефон невключается.и теперь неопределяется компьютером и флештулом тоже
Отпишитесь о результатах. Если вышеописанные манипуляции не возымеют действия, попробуем разобраться с подключением к ПК и процедурой восстановления.
И снова здравствуйте!перепробовал все варианты,все бестолку.при подключении к зарядке горит красный диод и все.перепрочитал кучу информации,выходит что я затер прелоидер.но при подключении к компьютеру телефон неопределяется совсем
Прежде чем вам написать,все манипуляции,о которых вы говорите,я перепробовал и никакого результата.на 4пда есть тема как прошить кирпич мой,но фото неясное и непонятно что замыкать на плате,чтобы компьютер увидел телефон.
Начнем с того, что тебе нужен Linux. В Windows ты сможешь только разобрать прошивку, но собрать обратно уже не получится по чисто техническим причинам. Теперь о прошивке. Обычно они распространяются в виде ZIP-архивов, прошиваемых через кастомные рекавери. Именно один из них нам и понадобится для опытов. Начинать путь ромодела я рекомендую с какой-нибудь максимально приближенной к AOSP кастомной прошивки, потому что в ней зачастую проще разобраться, чем в стоке.
Нужный ZIP можно найти на XDA Developers или 4PDA. Но имей в виду, что нужна прошивка конкретно для твоей модели аппарата, — у того же Galaxy S7 есть несколько модификаций для разных рынков, не всегда совместимых между собой.
Структура ZIP-файла с прошивкой
После загрузки распакуем архив с помощью любого архиватора. Внутри будет следующий набор файлов и папок:
- META-INF — папка с метаинформацией о прошивке (сертификат автора, манифест со списком файлов, их контрольными суммами), скриптом обновления (updater-script) и инсталлятором (update-binary), который выполняет команды скрипта по монтированию разделов, копированию файлов и другим действиям с NAND-памятью;
- boot.img — образ с ядром и RAM-диском (он прошивается в раздел boot);
- system.new.dat — это, грубо говоря, и есть сама прошивка, а точнее образ раздела system, содержащий операционную систему Android за вычетом ядра;
- system.transfer.list — содержит список команд, которые необходимо выполнить, чтобы поблочно скопировать содержимое system.new.dat в раздел system при установке прошивки;
- system.patch.dat — используется для OTA-обновлений, то есть выборочного внесения изменений в прошивку; если прошивка «полная», он имеет нулевой размер.
Python для хакера
Распаковываем system.new.dat
Файлы system.new.dat и system.transfer.list представляют для нас наибольший интерес. Точнее, не они, а содержащаяся в них система. Но добраться до нее не так просто.
Скрипт
Самые ленивые могут разобрать прошивку с помощью скрипта System_Extractor-Linux.
- Распаковываем архив с прошивкой в любую папку.
- Качаем скрипт по ссылке и разархивируем в любую папку.
- Запускаем файл ext (если будет ругаться на отсутствие Java, просто пропусти, нажав y ; Java нужна только для запаковки).
- Теперь выбираем распаковку, нажав кнопку 1, а затем Enter.
- Новая папка с именем extract_* появится рядом с файлом ext и папкой tools . Копируем в нее файлы system.new.dat и system.transfer.list .
- После копирования файлов нажимаем Enter и ждем. Через некоторое время нужно будет опять нажать Enter, ввести пароль администратора и еще раз тапнуть Enter.
- Готово. Содержимое system в папке extract_*/output .
Ручной способ
Распаковываем архив с прошивкой в любую папку (например, в rom ):
Скачиваем нужные нам инструменты в эту папку:
Он преобразует файл system.new.dat в raw-образ с именем system.img . Монтируем образ к подпапке mnt :
Содержимое образа system
Структура каталогов Android
После распаковки system появится следующая каталоговая структура:
- app — предустановленные приложения со стандартными привилегиями;
- priv-app — предустановленные приложения с повышенными привилегиями, в том числе некоторые компоненты системы;
- bin — бинарные файлы формата ELF, аналог каталогов /bin и /usr/bin в Linux. Содержит различные системные компоненты, используемые более высокоуровневыми компонентами системы;
- etc — файлы настроек. Полный аналог /etc в Linux, используемый, однако, только теми самыми системными компонентами. Приложения Android хранят индивидуальные настройки в каталогах /data/data/ ;
- fonts — шрифты. По умолчанию содержит только фирменные шрифты Roboto;
- framework — библиотеки Java-классов, используемых системой и приложениями. Тут же лежит файл framework-res.apk , содержащий полное описание интерфейса операционной системы, включая все графические файлы;
- lib и lib64 — Linux-библиотеки, используемые низкоуровневыми компонентами системы. Аналог каталогов /lib и /usr/lib в Linux, включая такие стандартные библиотеки, как libc, libz, libssl. На устройствах с архитектурой ARMv7 и ниже каталог lib64 будет отсутствовать;
- media — медиафайлы: рингтоны, звуки уведомлений, звуки интерфейса и анимация загрузки ОС;
- tts — файлы, необходимые синтезатору речи;
- usr — каталог, который обычно содержит файлы, необходимые для работы приложений из каталога bin. По сути, аналог /usr/share ;
- vendor — файлы, поставляемые производителем устройства. Обычно содержит бинарный firmware для различных железных компонентов, например модуля Wi-Fi;
- xbin — необязательный каталог; кастомные прошивки используют его для хранения таких вещей, как интерпретатор bash, SSH, PowerTOP, BusyBox, и других полезных инструментов;
- build.prop — файл, содержащий информацию о сборке, а также различные низкоуровневые настройки;
- addon.d — содержит скрипты, запускаемые после установки прошивки. Сюда же GApps прописывают свой скрипт, благодаря которому возрождаются после переустановки прошивки.
Ознакомившись с базовой структурой Android, начнем вносить изменения.
Удаляем и добавляем приложения
Все предустановленные программы можно найти в двух папках:
Друг от друга они отличаются привилегиями доступа. Если программы из app имеют такие же полномочия, как сторонние программы (например, установленные из Play Store), то приложения из priv-app могут использовать привилегированные API (права privileged). Подробнее об этом можно узнать из нашей статьи.
Для предустановки приложения в прошивку просто кинь ее APK-файл в /system/app/ . Можно, конечно, создать отдельную папку, но в нашем случае в этом нет смысла, потому что папка служит для хранения библиотек и odex-файлов, которых у нас попросту нет. Для удаления просто удали папку с ним.
Можно пойти дальше и поменять стоковые приложения на аналоги. К примеру, для замены календаря удаляем папку Calendar и копируем в /system/app наш любимый com.rpagyc.simplecalendar.apk . А можно и не копировать. Тогда прошивка будет без календаря.
Главное, помни: стоковые программы могут быть связаны между собой. Поэтому удаление одной проги вполне может привести к полной неработоспособности другой (к примеру, CalendarProvider и Calendar: удалив первый, ты сделаешь неработоспособным не только стоковый, но и любой другой календарь). К счастью, в чистых AOSP-прошивках взаимосвязей не так много.
Меняем анимацию загрузки
Анимация хранится в виде PNG-картинок, упакованных в архив /system/media/bootanimation.zip без сжатия. Внутри архива находятся:
- desc.txt — файл, описывающий анимацию;
- part0 — папка с файлами анимаций, которые воспроизводятся первыми;
- part1 — папка с файлами анимаций, которые воспроизводятся вторыми;
- .
- part? — крайняя папка, изображения с которой воспроизводятся в конце.
Файл desc.txt может содержать нечто вроде
Назначение этих строк интуитивно понятно: 1920 × 1080 — разрешение картинки, 60 — число кадров в секунду. Part0 и part1 указывают на папки, из которых будет воспроизводиться анимация, и последовательность воспроизведения. Вообще, может быть как одна часть, так и несколько (три и больше).
Изображения, находящиеся в папках part, пронумерованы пятью цифрами в порядке воспроизведения: 00000.jpg , 00001.jpg , 00002.jpg . Эти изображения можно поменять на свои, тем самым создав оригинальную анимацию. А можно просто удалить файл bootanimation.zip . Тогда девайс будет показывать анимацию из стандартного Android. Или воспользоваться уже готовой коллекцией анимаций на 4PDA.
Четыре части в bootanimation.zip для LineageOS
Изменяем звуковое оформление
Фактически все звуки, которые воспроизводит система, хранятся в папке /system/media/audio . Внутри нее ты найдешь следующие папки:
- alarms — мелодии будильника;
- notifications — звуки уведомлений;
- ringtones — мелодии звонка;
- ui — системные звуки, например низкий заряд батареи, фокусировка камеры, выбор элементов интерфейса.
В alarms, notifications, ringtones можно накидать сколько угодно любых мелодий. Взять их можно, например, здесь:
И маленький лайфхак: удаление файлов из папки ui приведет не к сбоям и ошибкам, а к исчезновению системных звуков. Поэтому ты можешь легко отключить звук создания снимка с камеры, снятия скриншота, просто потерев содержащие эти звуки файлы (их имена интуитивно понятны).
Добавляем шрифты
Шрифты хранятся в fonts . Найти архивы с файлами шрифтов можно на 4PDA и XDA. Для установки достаточно скопировать с заменой ttf-файлы из архива в папку fonts .
Меняем системные настройки (build.prop)
В образе system есть интересный файлик build.prop , содержащий множество полезной информации о железе устройства и настройках, устанавливаемых по умолчанию, для различных стоковых приложений. Справедливости ради замечу, что это не всегда так. Например, в Gigaset ME и ME Pro build.prop разделен на две части. В одной части содержатся настройки для Gigaset ME, а для ME Pro некоторые строки продублированы, но ключи (название смартфона и так далее) в них другие. Это было сделано, чтобы обеспечить более-менее корректную работоспособность одной и той же прошивки на разных аппаратах.
Дополнительный файл для Gigaset ME и ME Pro
Build.prop содержит (или может содержать) огромное количество настроек. Некоторые из них ничего не меняют, некоторые улучшают одно за счет ухудшения другого, но есть те, которые действительно полезны:
- ro.product.model и ro.product.manufacturer — модель смартфона и имя производителя. С помощью замены этих строк можно заставить Play Store думать, будто у тебя другой смартфон, что откроет доступ к большему количеству софта. Для всяких малоизвестных китайских смартфонов эти строчки могут стать спасительными;
- hw.qemu.mainkeys — принимает только два значения: 0 — показать наэкранные клавиши навигации, 1 — не показывать кнопки. Отсутствие строки соответствует 0;
- debug.sf.nobootanimation — значение 1 отключает анимацию загрузки, что немного поднимает ее скорость. Установка 0 или удаление строки возвращает анимацию на место;
- ro.telephony.default_network — говорит системе, в какой режим должна быть переключена мобильная сеть при загрузке;
- ro.sf.lcd_density — DPI дисплея, наиболее точное значение для дисплея можно посчитать через удобный сайт. Но никто не запрещает поставить и большее или меньшее значение по своему вкусу: более высокие значения делают элементы интерфейса крупнее, низкие — меньше;
- ro.config.vc_call_vol_steps — количество шагов громкости во время разговора (по умолчанию 8);
- ro.config.media_vol_steps — количество шагов громкости мультимедиа (по умолчанию 15).
Внедряем в прошивку Google Apps
Почти всегда кастомные прошивки поставляются без сервисов Google и магазина приложений. Разработчики предлагают нам установить их отдельно с помощью пакета GApps. Однако его можно интегрировать прямо в прошивку.
Для начала необходимо скачать пакет GApps. Я рекомендую брать архивы Open GApps. Выбираешь версию Android, архитектуру процессора и вариант комплектации (Pico, Nano, Stock. ), который определяет, сколько различных приложений Google содержит архив. Я рекомендую скачать версию Pico. Она содержит только Play Store и набор необходимых для его работы библиотек.
Интеграция GApps в прошивку выполняется так:
- Распаковываем ZIP-архив GApps с помощью любого архиватора.
- Переходим в папку Core.
- Видим множество архивов с расширением .tar.lz . Извлекаем с помощью lzip.
- После распаковки копируем файлы из папок в соответствующие папки в system. Что куда кидать, нетрудно догадаться по структуре каталогов в архиве. Например, configupdater (со скриншота) нужно кидать в папку priv-app .
- Переходим в папку GApps (находится рядом с Core) и проделываем пункты 3 и 4 для файлов в ней.
- Все, мы интегрировали GApps в нашу прошивку!
Свободное место
Необходимо понимать, что место для установки прошивок ограниченно. Нельзя установить прошивку, размер которой перевешивает размер раздела system устройства. Посмотреть его значение можно, используя ADB:
Инфа о разделе system
Второй вариант: поставить на устройство терминал и набрать команду
Размер раздела в байтах можно узнать, установив на смартфон BusyBox и выполнив в терминале команду
Или то же самое с помощью ADB:
Место, занимаемое прошивкой, будет приблизительно равно размеру system в распакованном виде. Вообще, при создании прошивки необходимо учитывать, что юзер также может прошить поверх нее различные модификации (SuperSU, Xposed) или перенести приложения в раздел system. Например, минимальный пакет приложений Google (Pico) требует минимум 150 Мбайт дополнительного пространства для установки.
При необходимости размер файла прошивки можно уменьшить, удалив не только ненужные программы из /system/app ( /system/priv-app ) и звуки вызова из system/media/audio и bootanimation.zip , но и:
- /system/tts/lang_pico — языки примитивного голосового движка Pico TTS, голосовой движок Google это не затронет;
- /system/usr/srec/config/ — офлайн-языки. Можно будет скачать потом онлайн, если понадобится.
Сборка
После внесения изменений нужно собрать все обратно. Сначала запакуем раздел system в system.new.dat . Скачиваем нужные нам инструменты:
Преобразовываем нашу папку обратно в RAW-образ. Назовем его system_new.img :
1073741824 меняем на размер раздела system в байтах. Желательно даже сделать его чуть меньше. Делаем из RAW-образа sparse-образ:
Преобразуем наш образ в system.transfer.list и system.new.dat , которые и нужно кидать в архив с прошивкой, но сначала удалим старые файлы:
Отделим файлы прошивки от лишней шелухи (файлов, которые мы загружали для работы. Для этого удобно пользоваться архивом с прошивкой). Удалили? Теперь нужно запаковать прошивку в ZIP-архив (любым архиватором).
Осталось подписать архив. Сделать это можно как на самом Android с помощью ZipSigner, так и на ПК (потребуется установленная Java):
Подводные камни
Во время сборки system.new.dat ты можешь столкнуться с несколькими проблемами, вызванными постоянными изменениями в механизмах формирования прошивок Android. Описанный выше способ должен хорошо сработать в случае основанной на Android 5.1 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.
Установка
Для установки кастомной прошивки необходим кастомный рекавери TWRP, позволяющий устанавливать неподписанные или подписанные тестовым ключом прошивки (именно такую мы создали). В журнале мы неоднократно описывали процесс его установки, да и в ветках форума, посвященных твоему устройству, обычно есть достаточно информации для того, чтобы это сделать.
Выводы
Эта статья описывает лишь верхушку огромного айсберга под названием «модификация прошивок». «Серьезные» прошивки не только дополняют ядро и саму прошивку со стоковыми приложениями множеством функций (которые зачастую вырваны из других ядер и прошивок), организовывая или даже меняя принципы их взаимодействия, но и вполне могут кардинально менять принципы работы ОС. Правда, такая поделка — это уже не Android, а отдельная ОС, даже если Play-сервисы получится туда поставить (кстати, такие действия, мягко говоря, не поощряются Google). Ну и не забываем: все оболочки от производителей — TouchWiz, ZenUI, HTC Sense и так далее — всего лишь обычные кастомы, максимально привязанные к железу устройства и друг к другу.
Читайте также: