Если пользователь хорошо знает, как прошить телефон, и если ему надоела официальная прошивка, он всегда может создать собственную. Это сделать очень легко, зная алгоритм процесса, что и как делается.
Для того, чтобы прошивка получилась качественной и телефон не превратился в кирпич важно произвести ряд мер для подготовки к созданию обновленного Андроида. Понадобится компьютер с установленной на нем операционной системой Linux , лучше UBUNTU. Устанавливать желательно 64х разрядную систему под новые версии Андроид.
Такая разрядность нужна для того, чтобы изменять прошивку версий Андроида выше 2.4.
На жестком диске должно быть до 20 гигабайт свободного пространства. Это делается для того, чтобы сохранять исходники.
Кроме самостоятельного изготовления из исходников, есть способ изменения уже готового файла.
Чтобы сделать прошивку Android из исходников рекомендуется проделать следующие шаги.
Достоинство изготовления собственной прошивки заключается в том, что вы можете сами оптимизировать свой Андроид на столько, на сколько нужно. А также вы сможете избавить его от предустановленных программ, которые попросту засоряют его и не используются. Еще одним преимуществом является то, что вы сами можете сделать прошивку и обновить телефон до любой версии.
Конечно же отредактировать уже готовую сборку под себя гораздо проще. Для этого понадобится:
Сделать прошивку телефона из уже готового файла конечно гораздо легче и проще. В этом заключается преимущество редактирования уже готовой прошивки.
Прежде чем приступить к созданию кастомной прошивки своими руками, рекомендуется установить виртуальную машину, а на нее ОС Linux.
Теперь необходимо отыскать прошивку, которую будете модифицировать. xda-developers.com – на этом сайте отыщете необходимую вам прошивку. Главное, чтобы они имели в имени слово ROM и были чистыми. Затем скачиваете его и разархивируете, используя Winrar.
Когда вы откроете папку с разархивированными файлами, вы отыщете элементы, перечисленные ниже:
Запустите андроид kitchen. Запуск сделайте через Линукс или же через программу Cygwin. Если запускаете в Линуксе, то введите команду cd kitchen, потом./menu.
Теперь распаковываете программу
. Затем переходите в раздел 0 или advanced options. Отыскав команды для улучшения версии Андроида, нажмите на ту, которая необходима. Здесь вы добавляете собственные анимации, приложения, освобождаете память. После произведенных действий, наберите команду 99. Теперь нажмите build
ROM
fron
working
folder
. Осталось только забрать архив с output_ZIP.
Изучив изготовление прошивки из исходных файлов, сейчас будет рассмотрено, как видоизменить готовый файл. Для его редактирования файл надо скачать, ищем прошивку с именем: Pure Android 3.0 ROM. Это имя свидетельствует о том, что она является чистой.
После скачивания файла, разархивируйте его. Папки и файлы в нем являются составляющими прошивки. Они расположены обычно так:
Затем устанавливается программное обеспечение . Вы должны зайти в папку / system / app / и изменить набор утилит. То есть вы можете уничтожить папку с той утилитой, которая вам не нужна, или, наоборот, поставить необходимый софт. Вы можете установить утилиты, которые понадобятся будущей системе Андроид. Для этого они должны быть уже распакованы. Достаточно просто перетянуть в эту директорию все, что нужно и эти приложения автоматически предустановятся.
Для видоизменения графики рекомендуется обратиться к папке framework/framework-res.apk . Пользователю следует разархивировать элемент и вставить туда две папки: res/drawable-*, куда он сможет скидывать свои картинки и фон с разрешением.png. И res/layout-* — сюда будут вложены файлы с разрешением.xml. После произведенных манипуляций вы должны собрать все снова в один файл.
Видоизменить анимацию или поставить новую можно разархивировав архив с соответствующими файлами. Затем пользователь изменяет файлы и запаковывает их обратно.
Если пользователь хочет улучшить производительность собственного смартфона, то он должен ввести такие команды: ro.mot.buttonlight.timeout=0 – для подсвечивания кнопок после включения телефона. debug.sf.nobootanimation=1 – отключение анимации, когда телефон загружается. Многие из них лежат в папке system/build.prop.
Когда завершены все видоизменения, надо будет архивировать их командой $ cd ~/rom; zip -r my-rom.zip *.
Чтобы редактировать прошивку Андроид не используя компьютер, владелец телефона должен скачать ее в архиве. Запустить Total Commander, эта программа умеет работать с архивированными пакетами. Разархивировать пакет.
Есть еще один вариант – если пошивка в формате zip.
В этом случае процедура идентична. Но перед и после процесса необходимо сначала распаковать, а затем запаковать без сжатия файл прошивки. С помощью Nandroid backup делаем бэкап, и шьем устройство через любое удобное приложение.
Хотите попробовать себя в создание, редактирование прошивок на Android, тогда программа Samsung Root Firmware Replacer поможет в создание прошивок!
С помощью данной программы Вы сможете:
1. Перейдите в папку с программой Samsung Root Firmware Replacer, правый клик открыть в терминале
2. В терминале введите команду
3. Перед Вами откроется интерфейс программы
4. Если запустили программу первый раз то выполните - Конфигурация настроек
Пункт Распаковать прошивку *.tar.md5 - распаковывает прошивку, для этого переместите файл в папку unpack_tar_md5 , после чего все файлы извлекутся, а файл factoryfs или system переместяться в input_img
пункт Создание *.img с вашего Android (нужен Android) - позволяет создать прошивку с вашего текущего состояния Android. Для работы данного пункта необходимо иметь Android подключенный к ПК с включенной отладкой USB.
Данный пункт имеет подменю
Пункт Создание *.img с оригинальной прошивки позволяет изменять готовые прошивки, для этого перенести любой IMG файл в папку input_img.
Данный пункт также имеет свое подменю
В данном примере идет создание прошивки с текущего состояния Android
1. Подключить Android к ПК
2. Запустить программу
3. Выбрать пункт Создание *.img с вашего Android (нужен Android)
4. Выбрать Снять образ c Android и распаковать img
5. Выбор раздела с которого будет сниматься образ
6. Подождите 6-7 минут пока снимется образ и переместится на ПК.
Важно! На смартфоне или планшете, а также ПК, должно быть достаточно памяти чтобы снять образ. Размер образа может занимать от 2МБ до 2ГБ
7. После того как сняли образ, можно его модифировать, если это нужно (встроить Root), можете его обратно упаковать, для этого
8. Выбрать пункт Упаковка проекта в img
9. Укажите размер и название прошивки.
11. Также не забудьте скопировать ядро с вашего Android, для этого воспользуйтесь пунктом - Снять образ c Android - boot.img или zImage
12. После всех манипуляций необходимо собрать прошивку в TAR.MD5
13 В главном меню выбрать пункт Запаковать прошивку *.tar.md5
14 Прошивка в программе Samsung Root Firmware Replacer приготовлена, можете
Многие пользователи сталкиваются с проблемой переустановки операционной системы «Андроид» на телефоне или планшете. Дело в том, что эта система подвержена атакам вирусов больше, чем другие.
Не имея мощной антивирусной программы, владельцы устройств под управлением «Андроид» закачивают множество различного контента с неизвестных источников и подвергают систему риску.
Конечно, полностью привести гаджет в нерабочее состояние достаточно трудно, а вот напрочь «снести» несчастный Андроид – вполне. Тогда и возникает вопрос перепрошивки устройства, а как сделать это самому мы и расскажем в этой статье.
Хотелось бы предупредить всех пользователей, что перепрошивкой лучше заниматься, если в этом деле у вас есть хоть какой-то опыт, иначе все сведется к тому, что вы просто понесете устройство в сервисный центр и все равно заплатите за работу деньги. Но если вы твердо решили – начните с подзарядки гаджета. Он должен быть заряжен минимум наполовину. Дальнейшие действия будут зависеть от модели вашего телефона или планшета.
Вам будет необходимо найти версию прошивки для вашего устройства. На просторах интернета есть все, что для этого нужно. Рекомендуем использовать проверенные сайты, чтобы вместе с прошивкой не закачать себе на ПК еще и вирусных программ. Одним из таких сайтов является «4pda».
Тут можно найти не только прошивку, но и «программу-перепрошивальщик», которая нам также понадобится. Например, для «самсунгов» это программа «Odin», для «сони эриксон» – «PC Companion», а вы должны найти версию такой утилиты под свое устройство. После загрузки прошивки, ее нужно «перекинуть» в такую программу и начинать работу.
Итак, вам нужно:
Подключите через кабель устройство к компьютеру и переведите его в режим «Bootlader». Обычно это комбинации кнопок, какая же подходит вам – нужно уточнить, это также зависит от модели гаджета и фирмы изготовителя.
После этого начнется работа программы и нужно дождаться конца установки. Ни в коем случае не отключайте шнур от компьютера или устройства и желательно не использовать ПК для других целей в это время.
Сегодня звание самой популярной операционной системы для гаджетов можно смело присудить Android. Но вопрос, как сделать прошивку на Андроид своими руками, очень часто возникает у многих владельцев мобильных устройств и девайсов. Их не устраивает тот факт, что обновления операционной системы поставляются не чаще 4 раз за год.
На данный вопрос ищут ответы и те владельцы, у которых мобильное устройство заразилось различными вирусами. Конечно, производственная прошивка лучше тем, что она проверена и точно будет работать. Но если она устарела или не устраивает по каким-либо причинам, хочется все же ее обновить. Как же правильно и самостоятельно сделать прошивку, не нарушив в дальнейшем работу устройства? Можно ли создать прошивки для тех, кому недостаточно стандартного набора?
Мобильных агрегатов, функционирующих на основе программного обеспечения Андроид, существует огромное количество, а версий различных прошивок для них — еще больше. Есть официальные предложения, а имеются те, что были собраны владельцами и почитателями того или иного гаджета. Пошаговая инструкция универсальной прошивки Android:
Прежде чем приступить к процедуре, следует перенести на другое устройство нужные контакты, фото- и видеофайлы. В результате обновления вся подобная информация будет удалена, останется полностью чистый гаджет с новой прошивкой.
Рассмотрим, как создать прошивку на Андроид, которая будет соответствовать вашим личным требованиям. Этот способ отлично подойдет для неопытных, но старательных и вдохновленных пользователей. Чтобы получить желаемые изменения, не потребуется углубленных познаний в программировании, ведь иногда вполне достаточно внести несколько дополнительных функций или преобразить внешний вид. В этом поможет специальный сайт Android Kitchen, который и будет основным источником в процессе создания индивидуальной прошивки для программного обеспечения.
Обратите внимание — в качестве основы новой прошивки необходимо импортировать уже размещенную версию, созданную другим пользователем, а улучшить и изменить ее будет несложно.
На Android Kitchen необходимо выбрать, что вы желаете поменять:
При выборе каких-либо функций редактор позволит сразу же оценить их посредством предварительного осмотра изменений. После того как выбор сделан, необходимо перейти на поле «File Upload», где отображаются некоторые настройки. Они подобраны приемлемо, поэтому без надобности менять их не рекомендуется. Во вкладке «Select your ROM from Kitchen’s list or upload your own files» следует нажать на «Kitchen’s list», где из общего списка можно будет выбрать применяемую прошивку. Здесь нужно действовать особенно осторожно, так как при выборе не той версии программного обеспечения есть определенный риск. Как минимум патч невозможно будет применить, а максимум — система перестанет загружаться и для исправления ошибки придется делать полную перепрошивку аппарата.
После успешного применения нужно перейти на вкладку «Summary» и повторно проверить список выбранных изменений. Если все правильно — нажмите кнопку «Submit Work to Kitchen». Осталось дождаться от ресурса ссылки на zip-архив, где будет содержаться подготовленный патч для прошивки вашего устройства. После получения патч необходимо прошить через Recovery.
Еще раз следует отметить, что прежде, чем создать прошивку на гаджет, настоятельно рекомендуется сделать резервные копии, чтобы у вас была возможность без проблем удалить нововведения.
Здравствуй Хабр!
Несколько лет назад, когда я впервые познакомился с 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 кода.
После того, как прошивка из оптимизированного вида (ODEX - оптимизированный dalvik исполняемый код, если мне не изменяет память) стала DEODEX (то бишь НЕ оптимизированной), все исполняемые файлы готовы к модификации.
В итоге у меня получилось столько папок, сколько было JAR файлов в /system/framework, и каждая папка имела структуру исходных кодов Java.
Путем несложных манипуляций, я быстро отыскал то место, которое генерировало записи в logcat.
Не будем рассматривать всю логику запрета, так как для каждого случая это отдельная история. Мне пришлось потратить пару часов, прежде чем я нашел где производятся проверки, построить в голове блок схему алгоритма и понять куда надо лезть, чтобы алгоритм чуть чуть «попортить».
Оказалось все просто. Есть подпрограмма, которая на основе заранее установленных констант, при обращении отвечала, относится ли телефон к Китаю или же нет.
Код находился в файле 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 код данного исходного кода? Для новичков мы сделаем небольшой трюк.
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. Если что-то не понятно или смущает, задавайте вопросы - всегда буду рад ответить и пояснить.