...
🤳 Блог Android новостей, посвященный советам экспертов, новостям, обзорам, телефонам Android, приложениям, инструкциям, планшетам и мобильным телефонам.

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

3 405

Одна из ключевых особенностей 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

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