Как написать свою операционную систему для телефона

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

 

Как создать свою операционную систему для телефона

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

 

Из чего состоит ОС телефона

Операционная система телефона, как и любая другая, состоит их двух основных компонентов:

  1. Ядро — это «сердечная мышца» любой ОС, которая всегда запускается первой при включении устройства. Именно ядро манипулирует системными ресурсами телефона.

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

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

  • браузер;

  • аудиоплеер;

  • блокнот;

  • книга контактов;

  • мессенджеры;

  • и др.

Именно такие программы находятся под контролем ядра, которое выделяет на их запуск необходимое количество ресурсов системы.

 

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

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

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

  1. Основы информатики. Сюда входит понимание таких вещей, как: алгоритмы, структуры данных, сортировка, манипулирование данными, абстрактное программирование и мн. др.

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

  3. Язык программирования. Большинство операционных систем используют язык программирования С или С++, поэтому знать эти языки нужно будет в любом случае. Даже если решите создавать свою ОС на другом языке,  примеры в документации и большинство готовых фрагментов кода будут именно на этом языке.

  4. Ассемблер. Даже если вы будете писать свою ОС на языке высокого уровня, то местами вам все равно придется применять Ассемблер, поэтому понимание и основы этого языка обязательны.

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

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

  7. Понимание UNIX. Начав работу над своей операционной системой для телефона, вы очень быстро осознаете, что основной инструмент создания ОС тянется еще с UNIX-систем, а за основу ОС очень часто берется ядро Linux.

  8. Концепция операционных систем. Вы должны в общем понимать, как с технической стороны работают операционные системы на телефонах.

  9. И др.

 

Разработка операционной системы для телефона

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

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

Поэтому тут важно задуматься, а действительно ли вы сможете самостоятельно создать стоящую ОС? И действительно ли она будет лучше существующих, чтобы создать им конкуренцию? Если да, и вы действительно планируете создать программный продукт, который будет конкурировать с Android или iOS, тогда вам лучше обзавестись хорошей командой. Duolingo apžvalga ir įvertinimas Для этого можно выложить свой проект на GitHub и совместными усилиями «пилить» вашу операционную систему.

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

Литература, которая вам пригодится:

  1. «Linux From Scratch». Это полноценный учебник по сборке операционных систем Linux. Да, там описываются компьютерные операционные системы, но с технической стороны и мобильная, и компьютерная ОС работают практически одинаково.

  2. «The little book about OS development». Еще одна книга о разработке операционных систем для компьютера с самого начала — с установки IDE и до самого конца — до запуска ОС.

 

Заключение

Как разработать свою операционную систему для телефона? Нужно основательно подготовиться и  быть готовым к очень продолжительной работе над своим программным продуктом. Разработка собственной ОС для телефона — это очень сложная задача, но даже она посильна, если есть должное желание и упорство для мотивации к работе.

  • Olek1

Как написать ОС под смартфон с нуля?

Всем привет! Захотелось написать ОС под смартфон, но информации по данной тематике совсем не нашел. Буду признателен, если объясните в чем разница разработки операционных систем под desktop и смартфоны.
Те, кто шарит в этом поделитесь источниками.

P.s. Знаю: Assembler, C, C++, C#, Python.


  • Вопрос задан

    более трёх лет назад

  • 10560 просмотров

В целом разработка ОС под смартфон будет отличаться от разработки ОС для десктопа в том плане, что вам нужно будет пересмотреть подход к работе с железом.
Главное отличие мобильного железа от десктопного в наличии ограничений по количеству потребляемой и рассеиваемой энергии.
Ваша задача будет заключаться в поиске оптимального способа использования аппаратных возможностей смартфона. Например отправлять все, что можно в спячку, когда со смартом ничего не происходит. Реагировать на аппаратные прерывания и т.д.
Плюс от смартфона требуется гарантированное время отклика. Оно не жесткое, к примеру 100мс, но смартфон должен отвечать на нажатие кнопок вне зависимости от того, какое приложение сейчас запущено.
Я бы рекомендовал брать какое-нибудь перспективное семейство устройств с прицелом на 5 лет и пилить под него.
Для вдохновления посмотрите на RTOS, RTX. Остерегайтесь кода Android и Tizen, там за основу взят Linux cо всеми его болячками.

Пригласить эксперта

Смартфон ничем в этом плане не отличается от компьютера принципиально, поэтому разницы нет. Если вы умеете писать ОС — можете написать ее и под смартфон.

Большинство проблем при написании такие же как и на других платформах — например различные процессоры и архитектуры.
Некоторые проблемы более специфические — например потребление энергии.

Напишите вначале такую ОС как DOS на PC, а потом беритесь за мобилки. Перейдите по ссылке https://www.bloomberg.com/news/articles/2018-07-19… почитайте что Google уже 2 года разрабатывает замену андроиду, и там целая комманда разработчиков, а вы один собрались это делать. Вы не сделаете стояющую ОС для смартфона даже до конца своих дней самостоятельно без чейто помощи. Начните делать её на гитхабе, и подключать других

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


  • Показать ещё
    Загружается…

04 мар. 2023, в 09:53

10000 руб./за проект

04 мар. 2023, в 09:46

10000 руб./за проект

04 мар. 2023, в 09:33

10000 руб./за проект

Минуточку внимания

Содержание

  • Создание прошивки для Android
    • Шаг 1: Установка Recovery
    • Шаг 2: Выбор прошивки
    • Шаг 3: Подготовка системы на ПК
    • Шаг 4: Использование Android Kitchen
    • Шаг 5: Сборка прошивки
    • Шаг 6: Установка прошивки
  • Заключение

Как самому сделать прошивку для Андроид

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

Создание прошивки для Android

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

Читайте также: Как восстановить прошивку на Android

Шаг 1: Установка Recovery

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

Установка кастомного рекавери на Android устройство

Подробнее: Как установить рекавери на Android

Шаг 2: Выбор прошивки

Помимо добавления загрузчика с возможностью сохранения доступа к файлам нужно найти прошивку, совместимую с вашим девайсом. В этом вопросе трудно дать какие-то конкретные советы, так как существует огромное количество смартфонов и не менее большой ассортимент прошивок. Проще всего найти подходящий вариант, посетив раздел «Android» на русскоязычном форуме 4PDA или на англоязычном ресурсе XDA Developers.

Просмотр списка прошивок на форуме 4PDA

Перейти к прошивкам на 4PDA
Перейти на форум XDA Developers

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

Шаг 3: Подготовка системы на ПК

Специальное ПО для компьютера, о котором пойдет речь в следующем разделе, в равной степени совместимо с ОС Windows, Linux и MacOS. Наиболее удобный метод сводится к использованию систем на основе Linux, в то время как на Виндовс потребуется ряд дополнительных действий и программ. В связи с куда большей распространенностью второго варианта, именно ОС Windows мы уделим внимание.

  1. Посетите официальный сайт Oracle и загрузите программное обеспечение JDK в соответствии с разрядностью вашей операционной системы.

    Перейти к скачиванию JDK

    Кликните по загруженному EXE-файлу и произведите инсталляцию программы.

  2. Установка JDK на компьютер

    Lumpics.ru

  3. Следом за JDK нужно скачать и установить Cygwin. Для этого посетите тему на форуме 4PDA по представленной ниже ссылке.

    Перейти к скачиванию Cygwin

  4. Откройте загруженный архив при помощи любого удобного архиватора и извлеките имеющиеся файлы.
  5. Извлечение папки Cygwin на компьютере

  6. Среди полученных файлов дважды кликните по «Setup», чтобы начать установку.
  7. Запуск файла установки Cygwin на компьютере

  8. На этапе «Choose A Download Source» выберите вариант «Install from Local Directory» и нажмите «Далее».
  9. Выбор локальной директории для Cygwin на компьютере

  10. В строке «Root Directory» путь оставьте без изменений, воспользовавшись кнопкой «Далее».
  11. Выбор папки для Cygwin на компьютере

  12. Дальше нужно изменить «Local Package Directory», указав папку Cygwin, которую вы извлекли из архива ранее. К примеру, в нашей ситуации она находится на рабочем столе, и потому путь выглядит так, как показано на скриншоте.
  13. Выбор папки с плагинами для Cygwin на компьютере

  14. Последним шагом является выбор компонентов в окне «Select Packages», которое появится практически сразу после начала установки. Кликните по строке «All», чтобы рядом с каждым пунктом появилась подпись «Install».
    Выделение плагинов для Cygwin на компьютере

    Дальнейшие действия по установке Cygwin производятся в автоматическом режиме.

    Установка Cygwin на компьютере

    По желанию можете создать на рабочем столе ярлык для более удобного запуска программы.

  15. Завершение установки Cygwin на компьютере

  16. Запустите программу с помощью созданного значка. В ОС Windows выше семерки используйте «Запуск от имени администратора».
    Запуск Cygwin от имени администратора на компьютере

    Дождитесь завершения создания директорий и файлов в консоли, после чего закройте Cygwin.

  17. Подготовка файлов Cygwin на компьютере

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

Шаг 4: Использование Android Kitchen

Программа Android Kitchen, так же известная как «кухня», представляет собой наиболее удобное средство для создания кастомных прошивок. Загрузить архив можно с официальной страницы на Github по ниже представленной ссылке. Лучше всего брать последнюю вышедшую версию ПО.

Перейти к скачиванию Android Kitchen

  1. Загрузив «кухню» на компьютер, извлеките папку из архива так же, как и на прошлом этапе.
  2. Извлечение папки Android Kitchen на компьютере

  3. Переименуйте папку в «kitchen» и с помощью комбинации клавиш «CTRL+X» подготовьте к переносу.
  4. Переименование папки Android Kitchen на компьютере

  5. Откройте «Локальный диск (C:)» и откройте папку по следующему пути: Cygwin/home/user. Нажмите сочетание клавиш «CTRL+V», чтобы добавить ранее извлеченную папку.

    Примечание: Вместо «user» папка будет названа в соответствии с именем пользовательской директории в системе.

  6. Перенос папки Kitchen на компьютере

  7. Переместите заранее скачанный файл прошивки, подходящей для вашего устройства, в папку «original_update». Эта директория расположена по следующему пути: Cygwin/home/user/kitchen/original_update.
  8. Перенос файла прошивки в папку Android Kitchen

  9. Вновь запустите Cygwin и последовательно воспользуйтесь следующими командами:

    cd kitchen
    ./menu

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

Закройте «кухню» и переходите к следующему этапу.

Шаг 5: Сборка прошивки

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

  1. В главном меню Android Kitchen введите «0» и нажмите «Enter», чтобы перейти к расширенному списку параметров.
    Переход к расширенным параметрам в Android Kitchen

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

  2. Для завершения нужно будет ввести «99» и нажать «Enter». Готовый файл будет находиться в папке «OUTPUT_ZIP» в пользовательской директории Cygwin.
  3. Работа с прошивкой через Android Kitchen

Завершив процедуру редактирования, можно приступать к прошивке устройства.

Шаг 6: Установка прошивки

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

Прошивка смартфона через CWM Recovery

Подробнее:
Как установить кастомную прошивку на Android
Инструкции по перепрошивке смартфонов

Заключение

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

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

Поскольку все необходимые строительные блоки доступны, возможно, вы задавались вопросом, насколько сложно создать свой собственный ПЗУ, собственную персонализированную версию Android! Это действительно возможно, читайте дальше, чтобы узнать больше.

Предупреждение

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

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

Было сказано, что. Если вы знакомы с написанием кода, если вы немного знаете о Make-файлах и компиляторах, то создание собственной версии Android может быть полезным опытом!

Предпосылки

Как создать свой собственный Android ROM

Теоретически можно было бы создать специальную прошивку Android для любого вычислительного устройства, способного работать с современной операционной системой. Однако, чтобы облегчить жизнь, мы ограничимся сборкой Android для устройств, которые поддерживают «из коробки», а именно для устройств Nexus. Для демонстрационной сборки я использовал Nexus 5X.

Чтобы собрать Android, вам понадобится доступ (и знакомство) с Linux-машиной или Mac. В обоих случаях вы будете часто использовать терминал, и вам нужно быть уверенным в командах оболочки. Я сделал свою первую сборку с использованием виртуальной машины Linux, однако она не распознала Nexus 5X в режиме загрузчика, поэтому мне не удалось прошить новую прошивку на устройстве. Затем я переключился на Mac, и он работал без особых проблем.

Вам понадобится 130 ГБ дискового пространства и, вероятно, около 8 ГБ ОЗУ. Я попытался собрать Android всего с 4 ГБ оперативной памяти и столкнулся с множеством проблем. Я также столкнулся с аналогичными проблемами с 8 ГБ оперативной памяти, однако, используя некоторые уловки (см. Ниже), я смог создать успешную сборку.

Научитесь терпению. Создать Android не так быстро. На синхронизацию исходного репозитория с моей локальной машиной ушло почти 24 часа! Кроме того, полная чистая сборка займет несколько часов. Даже после внесения незначительных изменений вам может потребоваться подождать от 10 до 20 минут для сборки. Все зависит от вашего оборудования, однако не ожидайте, что ваша новая версия Android будет запущена всего за несколько минут.

Версия Android для проекта с открытым исходным кодом Android не включает никаких сервисов Google. Так что таких вещей, как Google Play, YouTube, Gmail и Chrome, не будет. Есть способы прошить эти «гаппсы» на вашу собственную прошивку, но я оставлю вас, чтобы узнать, как это сделать. Подсказка: выполните поиск по запросу «установить gapps».

Когда начать

Основной процесс таков. Загрузите и соберите Android из Android Open Source Project, затем измените исходный код, чтобы получить свою собственную версию. Просто!

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

Я не буду дословно повторять здесь инструкции по сборке, однако общие шаги следующие:

  • Настройте среду сборки, включая установку правильных инструментов разработки, Java Development Kit и настройку всех путей и каталогов.
  • Возьмите исходный код – это делается с помощью инструмента «Репо» и git.
  • Получите проприетарные двоичные файлы – некоторые драйверы выпускаются только в двоичной форме.
  • Выберите цель – с помощью инструмента «обед».
  • Начните сборку – с помощью make и Джека.
  • Прошить сборку на свое устройство – с помощью adb и fastboot.

Советы и рекомендации по процессу сборки

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

Настройте среду сборки – Ubuntu 14.04 является рекомендуемой средой сборки для пользователей Linux и OS X 10.11 для пользователей Mac. Вам необходимо установить OpenJDK 8 в Linux и Oracles JDK 8 в OS X. В OS X вам также необходимо установить Macports вместе с Xcode и инструментами командной строки Xcode. Я использовал OS X 10.12, что вызвало небольшую проблему с устаревшими функциями системных вызовов в 10.12 OS X SDK. Работа здесь: http://palanceli.com/2016/09/25/2016/0925AOSPOnMac/

Возьмите исходный код – это простой шаг, но он занимает много времени. Для меня это заняло более 24 часов. Такая большая загрузка происходит только один раз, дальнейшая синхронизация с основным деревом исходных кодов будет постепенной.

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

Как создать свой собственный Android ROM

Выберите цель – для Nexus 5X используйте aosp_bullhead-user

Начать сборку – вы запускаете сборку с помощью make. GNU make может обрабатывать параллельные задачи с аргументом -jN, и обычно используется количество задач N, которое в 1-2 раза превышает количество аппаратных потоков на компьютере, используемом для сборки. Однако, если вы обнаружите, что ваша машина испытывает трудности в процессе сборки, попробуйте что-нибудь вроде «make -j2».

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

  • export ANDROID_JACK_VM_ARGS=”-Xmx4g -Dfile.encoding=UTF-8 -XX:+TieredCompilation”change the jack.server.max-service in $HOME/.jack-server/config.properties to 1

Если вы измените какую-либо конфигурацию сервера Джека (включая установку или изменение переменной ANDROID_JACK_VM_ARGS), вам нужно убить сервер Джека и снова запустить make. Используйте ./prebuilts/sdk/tools/jack-admin kill-server, чтобы остановить сервер Джека.

Если у вас возникнут какие-либо ошибки связи, связанные с сервером Jack, просто запустите сборку снова, это обычно исправляет.

Запишите сборку на свое устройство – вы найдете adb и fastboot в ./out/host/darwin-x86/bin/ или ./out/host/darwin-x86/bin/ для OS X или Linux соответственно.

Прошить это

Как создать свой собственный Android ROM

После того, как у вас будет успешная сборка и вы загрузите ее на свое устройство с помощью команды «fastboot flashall -w», перезагрузите устройство. Вы увидите ванильную версию AOSP. Нет сервисов Google, нет Play Store и только несколько основных приложений. Это основа Android.

Тем не менее, наши поздравления не заставят себя ждать. Вам удалось собрать Android из исходного кода и установить его на устройство. Это немалый подвиг.

Как создать свой собственный Android ROM

настройка

Теперь, когда у вас есть Android, вы можете приступить к его настройке и созданию собственного специализированного ПЗУ. На самом деле здесь все усложняется. Вы собираетесь повозиться с операционной системой Android, и проблема в том, что Android огромен. В моем рабочем каталоге более 120 ГБ данных. Это исходный код, графика, скомпилированные двоичные файлы, инструменты, все. Это много всего.

Итак, начнем с простого. Вот две простые настройки, которые помогут вам начать путь к тому, чтобы стать хакером прошивки Android!

Настройте приложение для обмена сообщениями

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

Основные приложения находятся в каталоге ./packages/apps/,  и нас интересует приложение обмена сообщениями в ./packages/apps/Messaging/. Просмотрите src / com / android / messaging / и отредактируйте BugleApplication.java. Вы можете редактировать его с помощью вашего любимого редактора графического интерфейса или, если вы хотите остаться в командной строке, используйте vi или nano .

BugleApplication.java – это точка входа для приложения обмена сообщениями. Для простоты мы собираемся добавить тост, который будет отображаться при первом запуске приложения. В верхней части файла под длинным списком операторов импорта добавьте эту строку:



import android.widget.Toast;

Теперь найдите функцию onCreate(). Ближе к концу функции, перед последним вызовом Trace.endSection (); добавьте следующие две строки:



Toast myToast = Toast.makeText(getApplicationContext(), "Welcome!", Toast.LENGTH_LONG);
myToast.show();

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

Как создать свой собственный Android ROM

Больше настроек

Любой уважающий себя кастомный дистрибутив Android должен включать некоторую информацию о самом ПЗУ. Для этого мы можем изменить встроенное приложение «Настройки» и добавить некоторую информацию в раздел «О телефоне». Для этого отредактируйте файл device_info_settings.xml из ./packages/apps/Settings/res/xml/ и добавьте следующие два раздела в конец файла перед последним тегом :



<!-- ROM name -->
<Preference android:key="rom_name"
android:enabled="false"
android:shouldDisableView="false"
android:title="ROM name"
android:summary="Whizz Bang Pop ROM"/>

<!-- ROM build version -->
<Preference android:key="rom_number"
android:enabled="false"
android:shouldDisableView="false"
android:title="ROM build number"
android:summary="7.0.1"/>

Сохраните файл, а затем восстановите и перепрограммируйте прошивку на вашем устройстве. После перезагрузки перейдите в Настройки-> О телефоне и прокрутите вниз:

Как создать свой собственный Android ROM

Вышеупомянутое изменение – это небольшая хитрость, поскольку на самом деле строки должны быть определены в strings.xml для английского и других языков. Если вы планируете серьезно заниматься разработкой AOSP, вам нужно делать все правильно!

Заворачивать

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

Источник записи: https://www.androidauthority.com

Введение

Существует три способа создания собственной прошивки для Android-коммуникатора: 1. Допиливание и компиляция операционной системы из исходников, публикуемых компанией Google или командой CyanogenMod. 2. Модификация стоковой прошивки коммуникатора. 3. Модификация сторонней прошивки, созданной с помощью первого или второго способа.

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

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

Как сделать прошивку на Андроид самому

Для того, чтобы прошивка получилась качественной и телефон не превратился в кирпич важно произвести ряд мер для подготовки к созданию обновленного Андроида. Понадобится компьютер с установленной на нем операционной системой Linux, лучше UBUNTU. Устанавливать желательно 64х разрядную систему под новые версии Андроид.

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

На жестком диске должно быть до 20 гигабайт свободного пространства. Это делается для того, чтобы сохранять исходники.

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

Выбираем подопытного

Итак, предположим, что наш коммуникатор уже зарутован и в загрузочную область записана консоль восстановления ClockworkMod, позволяющая устанавливать на аппарат любые прошивки без всяких ограничений (о том, как это сделать, мы писали в статье «Тотальное подчинение», опубликованной в октябрьском номере ][). Теперь мы хотим установить на устройство другую прошивку, да не абы какую, а с собственными модификациями, настройками и набором ПО. Поэтому нам нужен каркас, а именно чужая прошивка, стабильно работающая на нашем устройстве. Где ее взять?

Главное место обитания всех ромоделов — это, конечно же, форумы xda-developers.com. Там можно найти все что угодно для коммуникаторов, работающих под управлением iOS, Windows Mobile, Windows Phone и Android. Открываем сайт в браузере, жмем на раздел Forums и ищем в списках форумов свой коммуникатор. Далее заходим в соответствующий раздел Android Development и внимательно просматриваем список тем, содержащих в названии слово «[ROM]». Лучше найти какую-нибудь чистую прошивку с названием вроде «Pure Android 2.3 Rom» или порт CyanogenMod, хотя, в сущности, подойдет и любая другая (правда, возможно, придется отменять авторские изменения). Открываем тему, проматываем первый пост, находим где-то в конце ссылку на скачивание и загружаем ROM на свой комп.


Моды анимации загрузки с xda-developers

Другие статьи в выпуске:

Хакер #156. Взлом XML Encryption

  • Содержание выпуска
  • Подписка на «Хакер»

Теперь файл прошивки нужно вскрыть. Делается это с помощью самого обычного unzip:

$ mkdir ~/rom; cd ~/rom $ unzip ../путь/до/прошивки.zip

Общая структура каталогов и важные файлы

Набор файлов и каталогов, образовавшийся в результате выполнения предыдущей команды, и есть, в сущности, операционная система Android, причем ровно в том виде, в каком она будет размещена в NAND-памяти устройства. В зависимости от версии Android и фантазии автора, она может содержать разные наборы каталогов и файлов, однако в ней всегда присутствуют три обязательных объекта: META-INF, файл boot.img и директория system.

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

Файл boot.img содержит загрузочный образ, который включает в себя ядро Linux и образ initrd. Его можно распаковать, однако для нас он не несет особой пользы, так как почти любые системные параметры можно изменить с помощью файлов настроек и файловой системы /proc. Если же тебе требуется ядро, собранное с особыми параметрами, например с активированным планировщиком BFS или поддержкой NFS, то почти наверняка его можно найти на том же xda-developers и прошить с помощью ClockworkMod.

Наконец, каталог system — это то, ради чего все и затевалось. Содержимое этого каталога и представляет собой операционную систему Android без ядра Linux. Он содержит все, что нужно для работы ОС, а потому знать его структуру просто необходимо. Выглядит она так:

  • app — предустановленные приложения: телефон, калькулятор, календарь и т. д.
  • bin —аналог каталогов /bin и /usr/bin в Linux. Содержит различные системные компоненты, используемые более высокоуровневыми компонентами системы. Например, именно здесь лежит виртуальная машина dalvikvm.
  • etc — файлы настроек. Полный аналог /etc в Linux, используемый, однако, только системными компонентами. Приложения Android хранят настройки в каталоге /data/data.
  • fonts — шрифты. По умолчанию содержит только фирменные шрифты Droid (или Roboto в Android 4.0).
  • framework — наборы Java-классов, используемые системой и Android-софтом. Тут же лежит файл framework-res.apk, содержащий полное описание интерфейса операционной системы, включая все графические файлы.
  • lib — Linux-библиотеки, используемые низкоуровневыми компонентами системы. Аналог каталогов /lib и /usr/lib в Linux, включает такие стандартные библиотеки, как libc (правда, Android использует собственную Bionic вместо Glibc), libz (gzip-шифрование), libssl и другие.
  • media — медиафайлы: рингтоны, звуки уведомлений, звуки интерфейса и файлы анимации загрузки ОС.
  • tts — файлы, необходимые для работы синтезатора речи.
  • usr — необязательный каталог, который обычно содержит файлы, необходимые для работы софтин из каталога bin. По сути, аналог /usr/share.
  • vendor — файлы, поставляемые производителем аппарата. Обычно содержит бинарную firmware для различных «железных» компонентов, например модуля Wi-Fi.
  • xbin — необязательный каталог, который содержит все, что не вошло в bin. Как правило, используется для хранения полезных утилит, тем не менее необязательных для работы системы (top, текстовый редактор). CyanogenMod использует его для хранения инструментов администрирования: bash, ssh, powertop, busybox и т. д.
  • build.prop — файл, содержащий информацию о сборке, а также различные низкоуровневые настройки.

Редактирование с помощью компьютера

Необходимое программное обеспечение

Нам понадобится компьютер, устройство, файл прошивки и специальная программа под названием Android Kitchen (известная также как кухня). Файл прошивки можно найти на специализированных форумах, наиболее известные — англоязычный XDA Developers и русскоязычный 4PDA. В разделе вашей модели устройства можно найти ссылки на самые популярные и проверенные прошивки как официальные стоковые, так и неофициальные пользовательские.

Далее нужно установить кухню на свой компьютер. Лучше всего работать под Linux, но необходимые библиотеки можно поставить и в Windows. В этом случае можно выйти из ситуации установив Cygwin. Загрузите архив и следуйте пошаговой инструкции, помещённой в архиве. Перед этим потребуется установить также Java Platform (JDK) с официального сайта (https://www.oracle.com/technetwork/java/javase/downloads/index.html для Windows) или же в Центре приложений Ubuntu найти и скачать OpenJDK Java 6 Runtime либо похожее (для Linux). Второй вариант использования — установить Linux на виртуальную машину и управлять процессом через неё.

Модификация прошивки

Прошивки чаще всего распространяются в виде файла с расширением .img, реже — как ZIP-архив. В обоих случаях вам понадобится переместить файл с прошивкой в папку установленной кухни, чтобы она смогла импортировать её и начать с ней работу. Кухня должна быть установлена по пути c:/cygwin/home/user/ (при установке через Cygwin) или Файловая система/home/user/ (при работе через Linux).

  1. Запустите кухню через Cygwin или Linux-терминал с помощью команды cd kitchen, затем ./menu.
  2. Распакуйте архив в кухню, как уже писалось выше.
  3. После того как появится меню программы, перейдите в раздел 0. Advanced Options.
  4. После этого будет представлен список команд для модификации прошивки. Выберите именно ту, которая нужна вам. Можно добавить Busy Box, Root, Apps2SD, заменить стоковые приложения, различные анимации, освободить память устройства и многое другое.
  5. После окончания манипуляций запустите в главном команду 99. Build ROM from working folder (Построить прошивку с рабочей папки) и заберите ZIP-архив с OUTPUT_ZIP.

Прошивка устройства

Прошить устройство можно как через компьютер, так и без него. В первом случае нужно скачать программу для прошивки, обычно это Flash Tool или Odin, драйверы для вашей модели устройства и подготовить уже подправленный архив.

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

Собственный набор ПО

Каталог /system/app содержит все предустановленное в прошивку ПО. Удаляя и добавляя пакеты в этот каталог, мы можем изменить набор приложений, доступных «из коробки». Например, ни для кого не секрет, что стандартный ланчер Android (да и ADWLauncher в CyanogenMod) тормозит и имеет многочисленные недостатки. ОK, заменим его на LauncherPro:

$ rm system/app/Launcher.apk $ wget goo.gl/U9c54 -o system/app/LauncherPro.apk

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

Полезно поместить в прошивку одно из приложений для поиска утерянного смартфона (например, prey), тогда даже в случае сброса до заводских настроек оно останется в ОС и будет работать. Также можно заменить некоторое системное ПО, например добавить Dialer One вместо стандартного Phone.apk или Go SMS вместо sms.apk.

Как насчет системных Linux-приложений, например ssh-сервера или mc? Здесь тоже все просто. Собрать софтину для Android и процессора ARM можно с помощью комплекта NDK от Google, но большинство нужных приложений уже собрано до нас. Например, мы хотим предустановить mc в свою прошивку. Идем на xda-developers и выполняем поиск по запросу Midnight Commander. На первой же странице находим apk-пакет с установщиком и распаковываем его с помощью все того же unzip:

$ cd /tmp; unzip ~/NativnuxInstaller_1.1.apk

Видим в списке распакованных файлов assets/kits/mc-4.7.5.4-arm.tar.jet. Это архив tar.gz, который распаковывается в корень системы после установки apk-пакета (а точнее, после установки apk, запуска приложения и нажатия кнопки Install). Мы можем сразу распаковать его в нашу прошивку и получить предустановленный mc:

$ cd ~/rom $ tar -xzf /tmp/assets/kits/mc-4.7.5.4-arm.tar.jet

Теперь для запуска файлового менеджера на устройстве достаточно открыть терминал и набрать mc. Другие приложения могут распространяться в zip-архивах для прошивки с помощью ClockworkMod Recovery. Поместить их в свой мод еще проще, для этого достаточно перейти в корень прошивки (в данном случае ~/rom) и распаковать архив с помощью unzip.

Свежераспакованная прошивка

Редактирование без использования компьютера

Чтобы редактировать прошивку Андроид не используя компьютер, владелец телефона должен скачать ее в архиве. Запустить Total Commander, эта программа умеет работать с архивированными пакетами. Разархивировать пакет.

Что сделать дальше, описано ниже (необходимы рут-права):

  • Скачайте программу Nandroid backup с сайта и сделайте резервную копию.
  • Переходим в папку /system/app, вы можете удалить утилиты или добавить необходимые, которых не было.

  • Перезагружаем устройство. На этом редактирование закончится. Все должно заработать

Есть еще один вариант – если пошивка в формате zip.

В этом случае процедура идентична. Но перед и после процесса необходимо сначала распаковать, а затем запаковать без сжатия файл прошивки. С помощью Nandroid backup делаем бэкап, и шьем устройство через любое удобное приложение.

Внешний облик

Собственную прошивку чаще всего создают для того, чтобы изменить внешний облик Android по своему вкусу. Проделать эту операцию в Android, опять же, очень просто. Все настройки графического интерфейса Android хранятся в файле framework/framework-res.apk. Его можно распаковать с помощью утилиты apktool:

$ cd ~; wget goo.gl/hxz5l $ tar -xjf apktool1.4.1.tar.bz2 $ cd ~/rom/system/framework $ java -jar ~/apktool.jar d framework-res.apk

В результате в текущем каталоге должен появиться каталог framework-res, содержащий все файлы пакета. Наиболее интересные подкаталоги внутри него — это res/drawable-* и res/layout-*. Первый содержит все графические элементы в виде png-файлов для разных разрешений и положений экрана. Например, drawable-land-mdpi — это каталог с графическими ресурсами для экранов среднего разрешения, находящихся в горизонтальном положении (во время поворота экрана ОС переключается на использование других файлов). Разумеется, любой файл можно отредактировать или заменить другим.

Распаковываем framework-res.apk

Каталоги layout содержат описания графических элементов в формате XML (на самом деле они хранятся в бинарном формате AXML, но apktool преобразовал их в обычный XML). Формат описания достаточно прост и понятен, но с наскоку с ним разобраться трудно, особенно если не знать, где что находится. Поэтому мы снова обратимся к услугам обитателей форума xda-developers, которые уже успели придумать массу различных модификаций для графического интерфейса Android. Их легко найти с помощью поискового запроса «framework-res mod имя_устройства».

Обычно такие моды распространяются в виде готового файла framework-res.apk, который можно просто положить в свою прошивку. Если же ты хочешь найти конкретные отличия в содержимом, то мод можно распаковать и сравнить с твоим framework-res с помощью diff:

$ diff -R ~/framework-res ~/rom/system/framework/framework-res

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

Способы создания

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

  • Установить UBUNTU. Только на ней получится добротная прошивка. Скачать UBUNTU можно на официальном сайте.
  • Затем подготовить рабочий стол и освободить достаточно места, как было написано выше. После переходим к самой сборке.
  • Установить программу Java.
  • Скачать исходники можно с форума 4pda.

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

Конечно же отредактировать уже готовую сборку под себя гораздо проще. Для этого понадобится:

  • Установить ОС UBUNTU.
  • Скачать программы andimgtool и rkwintools. Они помогут вам расшифровать данные boot.img, recovery.img, system.img. а также и запаковать их.
  • Найти чистую прошивку. Главное, чтобы в названии были слова ROM. Сайт для загрузки выбираем на свое усмотрение, например desktoplinux.ru, или любой другой.

Выгодные подарки на День святого Валентина

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

WWW

goo.gl/tlHRo — набор советов по изменению framework-res.apk.
goo.gl/fTvz8 — простая анимация загрузки с логотипом Android.

goo.gl/Ya1fX — анимация загрузки с плазменным кругом.

goo.gl/P6JR — анимация загрузки в стиле IBM PC.

goo.gl/sGXwa — анимация загрузки Android Honeycomb.

После внесения модификаций можно собрать framework-res.apk с помощью все того же apktool. Однако для этой операции требуется утилита aapt из комплекта Android SDK, которую apktool использует для окончательной упаковки apk-файла. Ее можно получить и отдельно:

$ cd ~/bin; wget goo.gl/tC7k8

Теперь можно собрать файл:

$ cd ~/rom/system/framework $ java -jar ~/apktool.jar b framework-res $ cp framwork-res/dist/framework-res.apk . $ rm -rf framework-res

Следующий этап — это изменение анимации загрузки. Она хранится в виде обычных png-файлов, упакованных в архив system/media/bootanimation.zip. Распакуем его:

$ cd /tmp $ mkdir bootanimation; cd bootanimation $ unzip ~/rom/system/media/bootanimation.zip

Внутри находится файл desc.txt, описывающий анимацию в следующем формате:

Ширина Высота FPS p Порядок Пауза Каталог …

Стандартный вид этого файла:

480 800 30 p 1 0 part0 p 0 0 part1

Это значит, что изображение имеет размер 480 x 800, а скорость смены изображений (FPS) составляет 30 штук/с. Далее идет описание первой части анимации, файлы которой находятся в каталоге part0. Она проигрывается один раз (цифра 1 после p). Следующая часть (part1) проигрывается бесконечное число раз, пока аппарат не загрузится. Обычно каталог part0 содержит изображения, соответствующие первой части анимации, а part0 — все остальные изображения, которые проигрываются в цикле. Сами изображения должны быть одинакового размера, а их названия должны содержать числа в возрастающем порядке, например 0001.png, 0002.png и т. д.

Так как анимация загрузки имеет очень простой формат, ее довольно легко сделать. Достаточно преобразовать видеоролик в png-изображения с помощью mencoder (в desc.txt необходимо выставить значение FPS 24):

$ mplayer -nosound -vo png:z=9 video.avi

Но и это будет лишним. Участники форума xda-developers наделали столько анимаций, что необходимость работы руками отпадает вовсе. Ссылки на интересные анимации приведены в конце статьи.

Низкоуровневые настройки

Последнее, о чем я хотел бы рассказать в статье, — это редактирование низкоуровневых настроек. В Android для этого есть файл system/build.prop, который хранит информацию о сборке прошивки и настройки для конкретных устройств. Добавив в этот файл те или иные строки, можно изменить функционирование Android, ускорить его работу или уменьшить расход батареи. Ниже приведены наиболее интересные настройки.

  1. Запрет выгрузки рабочего стола из памяти: ro.HOME_APP_ADJ=1
    Опция позволяет сделать работу с устройством более удобной за счет мгновенного доступа к рабочему столу в любое время. Не рекомендуется использовать для устройств с малым объемом памяти.
  2. Повышение качества сохраняемых JPG-файлов: ro.media.enc.jpeg.quality=100
    Позволяет сделать снимки камеры более четкими, но существенно повышает нагрузку на ЦП.
  3. Отключение анимации загрузки для ускорения загрузки операционной системы: debug.sf.nobootanimation=1
  4. Возложение части работы по отрисовке интерфейса на GPU: debug.sf.hw=1
    Позволяет сделать интерфейс более быстрым и плавным.
  5. Блокировка извещения об активном режиме отладки (при подключении к компу с помощью USB): persist.adb.notify=0
  6. Устранение проблемы с возникновением черного экрана после завершения звонка: ro.lge.proximity.delay=25 mot.proximity.delay=25
  7. Включение подсветки клавиш управления сразу после включения экрана: ro.mot.buttonlight.timeout=0

Помимо всего этого, многие пользователи также рекомендуют применять следующие комбинации флагов:

  1. Уменьшение времени отклика сенсорного экрана: debug.performance.tuning=1 video.accelerate.hw=1 windowsmgr.max_events_per_sec=150
  2. Увеличение времени жизни батареи: wifi.supplicant_scan_interval=180 pm.sleep_mode=1 ro.ril.disable.power.collapse=0
  3. Твики 3G-модуля: ro.ril.hsxpa=2 ro.ril.gprsclass=10 ro.ril.hep=1 ro.ril.enable.dtm=1 ro.ril.hsdpa.category=10 ro.ril.enable.a53=1 ro.ril.enable.3g.prefix=1 ro.ril.htcmaskw1.bitmask=4294967295 ro.ril.htcmaskw1=14449 ro.ril.hsupa.category=5
  4. Улучшение производительности сети: net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

Все эти строки необходимо просто поместить в файл system/build.prop и сохранить.

Сборка

ОК, мы внесли необходимые изменения, внедрили свои приложения, твикнули систему и теперь должны создать готовый к прошивке образ ОС. В этом нам поможет утилита testsign. Сначала следует запаковать прошивку с помощью zip:

$ cd ~/rom; zip -r my-rom.zip *

Теперь необходимо подписать архив, чтобы Recovery смог его установить:

$ wget goo.gl/OyBBk $ java -classpath testsign.jar testsign my-rom.zip my-rom-signed.zip

После этого закидываем архив my-rom-signed.zip на карту памяти устройства и выключаем аппарат. Чтобы попасть в Recovery, включаем аппарат с зажатой клавишей уменьшения громкости (для некоторых устройств процедура может отличаться).

Далее с помощью клавиш управления громкостью выбираем пункт «Wipe data/factory reset», нажимаем клавишу включения (в Recovery это аналог ), выбираем Yes и снова жмем .

Теперь переходим в пункт «Install zip from sdcard», а затем в «Choose zip from sdcard», находим my-rom-sign.zip на SD-карте и выбираем Yes. После завершения установки выбираем «Reboot system now».

REPO

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

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

создать кастомную прошивку через Dsixda

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

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

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

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

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

установка Ubuntu

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

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

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

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

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

шаг2-установить java

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

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

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

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

android-kitchen

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

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

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

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

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

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

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

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

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    The Android kernel helps the applications to communicate with the hardware components of the device.

    For example:

    1. Most of us are familiar with game mode. What it does is instructs the processor and the graphics processing unit to run at their maximum frequencies.
    2. Another example is power saver mode. It instructs the processor and the graphics processing unit to run at their minimum frequencies.

    Need to compile our own kernel: Compiling our own kernel might prove very useful as:

    • The user experience can be further optimized as per the need using our own kernel
    • It can also help in Open Source Development.

    Steps to compile our own kernel:

    1. Prerequisites: Below are the prerequisites required to compile our own Android Kernel:
      • Ubuntu or any other Linux based OS
      • Familiar with basic Linux Commands
      • Familiar with Github
      • Device source code

      Note: This article is for a device with a 64bit Snapdragon SOC

    2. Install Dependencies Open the terminal and paste the following:

      sudo apt-get install

           git ccache automake flex lzop bison

           gperf build-essential zip curl

               zlib1g-dev zlib1g-dev:i386

           g++-multilib python-networkx 

               libxml2-utils bzip2 libbz2-dev

           libbz2-1.0 libghc-bzlib-dev 

               squashfs-tools pngcrush

           schedtool dpkg-dev liblz4-tool 

               make optipng maven libssl-dev

           pwgen libswitch-perl policycoreutils 

               minicom libxml-sax-base-perl

           libxml-simple-perl bc

               libc6-dev-i386 lib32ncurses5-dev

           x11proto-core-dev libx11-dev 

               lib32z-dev libgl1-mesa-dev xsltproc unzip

    3. Download Required Files:
      • Clone the device source on local disk:

        mkdir mykernel

          git clone {link to your device kernel source}

      • Download a compatible GCC toolchain. In this article, AOSP’s GCC is used.

        cd mykernel

           git clone https://android.googlesource.com/platform/

                     prebuilts/gcc/linux-x86/aarch64/

                     aarch64-linux-android-4.9

           toolchain

      • Download a compatible CLANG toolchain. In this article, AOSP’s CLANG is used.
      • Move the downloaded file in the mykernel folder and then extract using the following command:

        tar vxzf linux-x86-android-9.0.0_r48-clang-4691093.tar.gz

    4. Compiling The Kernel:

      cd mykernel

      rm -rf out

      mkdir out

      export ARCH=arm64

      export SUBARCH=arm64

      export DTC_EXT=dtc

      make O=out ARCH=arm64 {device defconfig}

      PATH="${PWD}/bin:${PWD}/toolchain/bin:${PATH}"

      make -j$(nproc --all) O=out

                            ARCH=arm64

                            CC=clang

                            CLANG_TRIPLE=aarch64-linux-gnu-

                            CROSS_COMPILE=aarch64-linux-android-

                            | tee kernel.log

      Here, replace the {device defconfig} with the name of your config file. You can find it in /arch/arm64/configs folder.

    5. Booting The Compiled Kernel:
      • Browse to /out/arch/arm64/boot and find the Image-dtb file (compiled zImage) and copy the file.
      • Download Android Image Kitchen and decompile your stock boot image. Once you decompile it you’ll find the stock zImage in the decompiled folder. Replace it with the one you copied earlier and recompile the boot image.
      • Flash via fastboot using the following command:

        fastboot flash boot mykernel.img

    6. Dealing with the encountered errors: A kernel.log file will be generated in mykernel folder. Find the line which says error and search for the solution. Also please don’t forget to attach the log file when posting in forums for help.

    This will be the basic kernel, and more features can be added once it boots successfully.

    Понравилась статья? Поделить с друзьями:
  • Как написать свою нейросеть на python
  • Как написать свою научную статью
  • Как написать свою музыку поп
  • Как написать свою музыку на телефоне
  • Как написать свою музыку на компьютере