Давно мечтали собрать сами своими руками прошивку Android из исходного кода, но ни как получалось из за отсутствия внятного материала? подготовил вам подробную интересную статью!
И так перед тем как начать повествовать статью, немного слов для кого она написана: вы уже знаете что такое Linux и установить Ubuntu, Mint, Fedora, OpenSuSe, по крайней мере устанавливали хотя бы один раз из этих ОС, уже знаете что такое командная строка или терминал, команда cd , ls , sh знакома и не вводит в ступор. Отлично, тогда продолжаем изучать статью. Статья Только для устройств Nexus!
Задача научить подготовить систему для компилирования вашей первой Android прошивки, а не научить устанавливать Linux, изучить команды итп.
Не открывайте, не закрывайте, не перемещайте, делайте все как написано в инструкции — последовательно, шаг за шагом, перезагружайте компьютер когда это указано.
1. Перейдите в параметры системы UBUNTU
2. Раздел «Программы и обновления»
3. Вкладка «Программное обеспечение UBUNTU» установить Загрузить с: Основной сервер
4. Вкладка «Другое ПО», установить галочки на Партнеры Canonical иПартнеры Canonical (исходный код)
5. Нажать внизу кнопку Закрыть и после Обновить
6. Запустить программу «Обновление приложений» и обновить систему и перезагрузить компьютер
7. Запустите терминал (горячими кнопками CTRL+ALT+T)
Для Ubuntu 16.04:
sudo apt - get install openjdk - 8 - jdk
Для Ubuntu 14.04:
Вместо android-5.0.2_r1 указывать необходимую версию Android
Загружаем исходный код на компьютер:
Данная процедура будет длится долго (не менее 3 часов) и будет загружено около 30 GB
25. После того как скачается весь исходный код Android начнем сборку прошивки Android, введите команду:
source build/envsetup.sh
Перед вами появится окно со списком устройств возможных для создания AOSP прошивки, выбираем цифру и нажимаем ENTER
26. Запускаем сборку Android прошивки
make -j2 otapackage
Вместо j2 стоит указать количество ядер процессора и потоков, если процессор 2 ядреный и включена технология hyper threading (если она доступна), то у вас будет 4 потока (j4 ), если процессор 4 ядерный и выключена технология hyper threading, то также 4 потока (j4 ), а если включена то 8 (j8 ).
В зависимости от мощности и количества ядер участвующих в процессе сборки прошивки зависит и время сборки прошивки, от 20 минут до 24 суток.
27. После сборки вы обнаружите пакет в папке AOSP/out/target/product/кодовое_имя_nexus/ архив ZIP
28. Переместите данный архив ZIP на устройство NEXUS
31. Установите архив ZIP и после сделайте обязательно wipe
Вот и все! Ничего сложного нет! Статья подошла к концу, подписывайтесь социальные группы и оставайтесь вместе с сайтом !
Здравствуй Хабр!
Несколько лет назад, когда я впервые познакомился с 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. Если что-то не понятно или смущает, задавайте вопросы - всегда буду рад ответить и пояснить.
Андроид является операционной системой, разработанной корпорацией Google для использования на смартфонах, планшетах, электронных книгах, цифровых проигрывателях и многих других популярных девайсах.
Обычно при покупке вышеперечисленных устройств андроид уже установлен, поэтому нужно только привыкнуть к его управлению.
Однако для этой операционной системы создано множество видов вирусов, поэтому даже антивирусная программа не всегда надежно защитит от них ваше устройство.
Если же вы подхватили вирус и андроид начал неправильно работать, виснуть, глючить, выполнять посторонние команды, тут уже самое время обратиться к специалистам или в сервисный центр – скорее всего, с вероятностью восемьдесят процентов придется менять прошивку устройства (то есть переустановить таким образом работоспособность устройства).
А что делать, если срочно нужно воспользоваться девайсом, а он неисправен и нет возможности прямо сейчас обратиться к специалистам? В этом случае придется сделать прошивку самому.
Из сегодняшней статьи вы узнаете, как можно сделать прошивку на андроид.
К слову сказать, эта информация может вам пригодиться и в том случае, если вы все-таки купили устройство, на котором еще не стоит данная прошивка (например, дешевые китайские телефоны изначально продаются без нее, что сильно уменьшает их себестоимость).
Перед тем, как сделать перепрошивку для андроид, необходимо проделать некоторые действия.
Максимально зарядите девайс, чтобы ему хватило заряда до полного окончания этого процесса. Если устройство отключится во время прошивания, то вы потеряете систему и данные.
Точно определите вашу версию операционной системы и версию прошивки. Эту информацию вы можете получить, выбрав пункт меню «Настройки», а в нем уже нажмите на «О телефоне» и в открывшемся меню вы все подробно увидите.
Далее находите в интернете аналогичную версию прошивки и скачиваете ее.
Существует множество версий как официальных прошивок, так и так называемых «кастомных», которые умельцы делают сами. Некоторые самодельные кастомные прошивки могут даже исправить кое-какие ошибки в операционной системе производителя или дополнить ее новыми функциями. Однако не забывайте о том, что бесплатный сыр обычно бывает только в мышеловке, поэтому не скачивайте файлы с сомнительных источников, так как в них может уже сидеть вирус.
Прошивки существуют в разных вариациях – ZIP, TAR архивы или в виде набора файлов в папке. Это обстоятельство и определяет способ установки операционной системы, так как ставятся они по-разному.
Самым первым делом необходимо выставить 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», после чего нажимаете «ОК».
Проверяете, чтобы информация присутствовала во всех разделах.
Ждете окончания процесса.
Сегодня звание самой популярной операционной системы для гаджетов можно смело присудить 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 в нем. Дело будет обстоять несколько сложнее, если модель немного морально устарела. Если официальное обновление программы не возможно через программу производителя, то в помощь всегда придет Odin.
Можно попробовать прошить смартфон Samsung. Для начала необходимо скачать утилиту Odin -универсальный прошивальщик смартфонов и планшетов от Samsung. На просторах Интернета всегда можно найти ссылку на него.
Ни в коем случае не используйте «русифицированную версию», которые часто можно встретить в интернете, есть шанс превратить гаджет Samsung в кирпич!
Качаем Odin, например с этого . Распаковываем и запускаем исполнительный файл.
С утилитой данного уровня можно прошить не только кастомную, но и прошивку от производителя смартфона. На устройство нужно установить драйвера. Они не должны быть запущены.
После чего запускаем утилиту Odin и подготавливаем прошивку. Она состоит как из одного, так и нескольких файлов. Если это несколько файлов, то они включают в себя:
— основной — PDA;
— смартфона часть, модем – PHONE;
— прошивка, которая характеризует регион и языковые настройки – CSC.
Если прошивка включает в себя один файл, то к нему прикреплено обязательное расширение.tar или.tar.md5. При многофайловой прошивке можно обработать конкретные файлы или все сразу.
Открываем в настройках гаджета «Отладка USB» и переводим в режим загрузки, который включается при помощи нажатия одновременно двух клавиш на телефоне, это питания и громкости вниз.
После чего, гаджет подключаем к ПК, поле ID:COM должно загореться желтым цветом.
Файлы прошивки загружаем в поля:
— PDA в АР;
— PHONE в СР;
— CSC в CSC.
При прошивке одним файлом вся информация загружается в поле АР.
Дольше отмечаем флажками F и Auto Reboot, при этом со всех остальных галки снимаются. После всех этих процедур включается кнопка Start, устройство от компьютера не отключается. Отключать планшет, смартфон от компьютера можно только в том случае, когда он перезагрузится. Только после этих процедур прошивка считается окончена.
Еще одним из эффективных методов является обновление ОС через программы от производителя. Она установлена на компьютер, иногда можно произвести работы уже непосредственно со смартфона через Recovery.
Для того чтобы произвести прошивку на системе андроид, необходимо вызвать меню Recovery. Для того чтобы определить ее наличие на носителе, необходимо зайти в настройки изучить информацию в подразделе «о планшете», «о телефоне».
При прошивке Аndroid по программе от производителя, гарантии на гаджет не аннулируются и можно смело приступать к его обновлению.
Для начала нужно скачать программу для управления аппаратом. Установить ее на ПК и запустить. Смартфон подключается к компьютеру, на устройстве выбирается подпункт «Программное обеспечение» и устанавливаются драйвера. Если обновления не загрузились, то их можно произвести вручную, выбирая из списка и отмечая смартфон, который нужно обработать.